### 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