Files
BE_CPONE/application/controllers/website/prices.http
2026-04-27 10:26:26 +07:00

372 lines
9.7 KiB
HTTP

### Variabel Global
@baseUrl = https://cpone.aplikasi.web.id/one-api/website/price/
@adminApiKey = 7a9b8c7d6e5f4g3h2i1j0k9l8m7n6o5p4q3r2s1t0u9v8w7x6y5z4a3b2c1d0
@userApiKey = 7a9b8c7d6e5f4g3h2i1j0k9l8m7n6o5p4q3r2s1t0u9v8w7x6y5z4a3b2c1d0
### 1. GET Semua Data Cabang
GET {{baseUrl}}/get_branches
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 1. GET Semua Data Kategori
# Permission yang dibutuhkan: prices:read
GET {{baseUrl}}/get_category
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 2. GET Data Harga Single
# Permission yang dibutuhkan: prices:read
GET {{baseUrl}}/get_single_price?limit=20&page=1
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 2.1. GET Data Harga Single dengan Filter Kategori
# Permission yang dibutuhkan: prices:read
GET {{baseUrl}}/get_single_price?limit=20&page=1&category=A05
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 2.2. GET Data Harga Single dengan Filter Kategori dan Search
# Permission yang dibutuhkan: prices:read
GET {{baseUrl}}/get_single_price?limit=20&page=1&category=01&search=hema
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 3. GET Data Harga Packet
# Permission yang dibutuhkan: prices:read
GET {{baseUrl}}/get_packet_price?limit=20&page=1
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 4. POST Menambahkan Data Harga Baru
# Permission yang dibutuhkan: prices:write
POST {{baseUrl}}/prices
Authorization: Bearer {{adminApiKey}}
Content-Type: application/json
Accept: application/json
{
"name": "Smartphone XYZ",
"price": 2500000,
"category": "elektronik"
}
### 5. PUT Memperbarui Data Harga
# Permission yang dibutuhkan: prices:write
PUT {{baseUrl}}/prices/1
Authorization: Bearer {{adminApiKey}}
Content-Type: application/json
Accept: application/json
{
"name": "Smartphone XYZ Updated",
"price": 2750000,
"category": "elektronik"
}
### 6. PATCH Memperbarui Sebagian Data Harga
# Permission yang dibutuhkan: prices:write
PATCH {{baseUrl}}/prices/1
Authorization: Bearer {{adminApiKey}}
Content-Type: application/json
Accept: application/json
{
"price": 2650000
}
### 7. DELETE Menghapus Data Harga
# Permission yang dibutuhkan: prices:delete
DELETE {{baseUrl}}/prices/1
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 8. Mencoba Akses dengan API Key Tidak Valid
GET {{baseUrl}}/prices
Authorization: Bearer invalid_api_key
Accept: application/json
### 9. Mencoba Akses Tanpa API Key
GET {{baseUrl}}/prices
Accept: application/json
### 10. Mencoba Akses dengan API Key yang Tidak Memiliki Permission
# API key ini diasumsikan tidak memiliki permission prices:delete
DELETE {{baseUrl}}/prices/1
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 11. Testing Rate Limit
# Mengirim beberapa request berturut-turut dengan cepat untuk menguji rate limiting
GET {{baseUrl}}/prices
Authorization: Bearer {{adminApiKey}}
Accept: application/json
###
GET {{baseUrl}}/prices
Authorization: Bearer {{adminApiKey}}
Accept: application/json
###
GET {{baseUrl}}/prices
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 12. Mencoba Mencari Data dengan Query Search
# Permission yang dibutuhkan: prices:read
GET {{baseUrl}}/prices?search=smartphone
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 13. Mencoba Sorting Data
# Permission yang dibutuhkan: prices:read
GET {{baseUrl}}/prices?sort=price&order=desc
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 14. Testing API Key dengan Permission Produk
# Permission yang dibutuhkan: products:read
GET {{baseUrl}}/products?limit=10&offset=0
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 15. Testing API Key dengan Permission Batch (Bulk)
# Permission yang dibutuhkan: prices:write
POST {{baseUrl}}/prices/batch
Authorization: Bearer {{adminApiKey}}
Content-Type: application/json
Accept: application/json
{
"items": [
{
"name": "Produk 1",
"price": 100000,
"category": "elektronik"
},
{
"name": "Produk 2",
"price": 200000,
"category": "elektronik"
},
{
"name": "Produk 3",
"price": 300000,
"category": "elektronik"
}
]
}
### 16. Testing API Key dengan Filtering Lebih Kompleks
# Permission yang dibutuhkan: prices:read
GET {{baseUrl}}/prices?category=elektronik&min_price=100000&max_price=5000000&sort=price&order=asc
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 17. Testing Export Data
# Permission yang dibutuhkan: prices:export
GET {{baseUrl}}/prices/export?format=csv
Authorization: Bearer {{adminApiKey}}
Accept: application/octet-stream
### 18. Testing dengan Format XML (Jika API Mendukung)
# Permission yang dibutuhkan: prices:read
GET {{baseUrl}}/prices?limit=10&offset=0
Authorization: Bearer {{adminApiKey}}
Accept: application/xml
### 19. Testing API Key dengan Permission Batch (Bulk)
# Permission yang dibutuhkan: prices:write
POST {{baseUrl}}/prices/batch
Authorization: Bearer {{adminApiKey}}
### 1. Generate API Key Baru (Admin Permission)
# Permission yang dibutuhkan: api_keys:create
POST {{baseUrl}}/api-keys/generate
Authorization: Bearer {{adminApiKey}}
Content-Type: application/json
Accept: application/json
{
"name": "API Key untuk Mobile App",
"user_id": 123,
"permissions": {
"prices": "read",
"products": "read",
"cart": "read,write",
"orders": "read,write"
},
"expires_in_days": 365,
"rate_limit": 100,
"description": "API Key untuk aplikasi mobile dengan akses terbatas"
}
### 2. Generate API Key dengan Full Access (Super Admin)
# Permission yang dibutuhkan: api_keys:create
POST {{baseUrl}}/api-keys/generate
Authorization: Bearer {{adminApiKey}}
Content-Type: application/json
Accept: application/json
{
"name": "Full Access API Key",
"user_id": 1,
"permissions": {
"*": "*"
},
"expires_in_days": null,
"rate_limit": 1000,
"description": "API Key dengan akses penuh untuk administrator sistem"
}
### 3. Generate API Key dengan Permission Spesifik
# Permission yang dibutuhkan: api_keys:create
POST {{baseUrl}}/api-keys/generate
Authorization: Bearer {{adminApiKey}}
Content-Type: application/json
Accept: application/json
{
"name": "Analytics API Key",
"user_id": 456,
"permissions": {
"prices": "read",
"products": "read",
"reports": "read",
"statistics": "read"
},
"expires_in_days": 180,
"rate_limit": 500,
"description": "API Key untuk keperluan analisis data"
}
### 4. Generate API Key untuk Partner External
# Permission yang dibutuhkan: api_keys:create
POST {{baseUrl}}/api-keys/generate
Authorization: Bearer {{adminApiKey}}
Content-Type: application/json
Accept: application/json
{
"name": "Partner Integration API Key",
"user_id": 789,
"permissions": {
"prices": {
"actions": ["read"],
"conditions": {
"categories": [1, 2, 3],
"visibility": "public"
}
},
"products": {
"actions": ["read"],
"conditions": {
"visibility": "public"
}
},
"orders": {
"actions": ["read-limited", "create"],
"conditions": {
"partner_id": 789
}
}
},
"expires_in_days": 90,
"rate_limit": 200,
"description": "API Key untuk integrasi dengan partner dengan akses terbatas"
}
### 5. Dapatkan Daftar API Key yang Aktif (Admin Only)
# Permission yang dibutuhkan: api_keys:read
GET {{baseUrl}}/api-keys
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 6. Dapatkan Detail API Key Tertentu
# Permission yang dibutuhkan: api_keys:read
GET {{baseUrl}}/api-keys/123
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 7. Menonaktifkan API Key
# Permission yang dibutuhkan: api_keys:write
PUT {{baseUrl}}/api-keys/123/deactivate
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 8. Memperbarui Permission API Key
# Permission yang dibutuhkan: api_keys:write
PUT {{baseUrl}}/api-keys/123/permissions
Authorization: Bearer {{adminApiKey}}
Content-Type: application/json
Accept: application/json
{
"permissions": {
"prices": "read,write",
"products": "read",
"orders": "read,write,delete"
}
}
### 9. Memperpanjang Masa Berlaku API Key
# Permission yang dibutuhkan: api_keys:write
PUT {{baseUrl}}/api-keys/123/extend
Authorization: Bearer {{adminApiKey}}
Content-Type: application/json
Accept: application/json
{
"additional_days": 180
}
### 10. Menghapus API Key (Soft Delete)
# Permission yang dibutuhkan: api_keys:delete
DELETE {{baseUrl}}/api-keys/123
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 11. Mendapatkan API Key Milik User Tertentu
# Permission yang dibutuhkan: api_keys:read
GET {{baseUrl}}/api-keys/user/456
Authorization: Bearer {{adminApiKey}}
Accept: application/json
### 12. Mendapatkan API Key Milik User Saat Ini
# User dapat melihat API key miliknya sendiri
GET {{baseUrl}}/api-keys/me
Authorization: Bearer {{userApiKey}}
Accept: application/json
### 13. Membuat API Key untuk Self (User Membuat untuk Dirinya Sendiri)
# Permission yang diperlukan: api_keys:create-self
POST {{baseUrl}}/api-keys/generate-self
Authorization: Bearer {{userApiKey}}
Content-Type: application/json
Accept: application/json
{
"name": "My Personal API Key",
"permissions": {
"prices": "read",
"products": "read",
"cart": "read,write",
"orders": "read,write"
},
"expires_in_days": 365,
"description": "API Key untuk penggunaan pribadi"
}
### 14. Validasi API Key
# Endpoint untuk mengecek apakah API key valid dan mengambil informasi permission
GET {{baseUrl}}/api-keys/validate
Authorization: Bearer {{userApiKey}}
Accept: application/json
### 15. Dapatkan Statistik Penggunaan API Key
# Permission yang dibutuhkan: api_keys:read, statistics:read
GET {{baseUrl}}/api-keys/123/usage
Authorization: Bearer {{adminApiKey}}
Accept: application/json