diff --git a/README.md b/README.md index 346ce73..c262549 100644 --- a/README.md +++ b/README.md @@ -189,40 +189,61 @@ Jika tidak menyertakan token atau token salah, API akan mengembalikan response ` ## ๐Ÿ“ก Daftar Endpoint -| Endpoint | Method | Auth | Fungsi | +Base URL default: + +```bash +http://localhost:8080 +``` + +Jika menjalankan server dengan port lain, misalnya `py app.py --port 5000`, ganti `8080` menjadi `5000`. + +Semua request ke endpoint API wajib menyertakan header autentikasi: + +```bash +Authorization: Bearer secret123 +``` + +### Ringkasan Endpoint + +| Method | URL | Auth | Fungsi | |---|---|---|---| -| `/` | `GET` | Tidak | Halaman playground UI | -| `/api/enroll` | `GET` | Ya | List semua enrollment | -| `/api/enroll?id=` | `GET` | Ya | Mendapatkan detail enrollment berdasarkan ID | -| `/api/enroll` | `POST` | Ya | Tambah, edit, atau hapus enrollment | +| `GET` | `/api/enroll` | Ya | List semua enrollment | +| `GET` | `/api/enroll?id=` | Ya | Mendapatkan detail enrollment berdasarkan ID | +| `POST` | `/api/enroll` | Ya | Tambah enrollment baru | +| `POST` | `/api/enroll` | Ya | Edit enrollment berdasarkan `id` | +| `POST` | `/api/enroll` | Ya | Hapus enrollment berdasarkan `id` | + +Endpoint `POST /api/enroll` dapat menerima data dalam format: + +- Form URL-encoded +- JSON --- -## ๐Ÿงฌ Database Schema +## ๐Ÿงช Detail Endpoint -Tabel: `enroll` +### 1. `GET /api/enroll` โ€” List Semua Enrollment -| Kolom | Tipe | Keterangan | -|---|---|---| -| `id` | INTEGER | Primary key, auto-increment | -| `type` | TEXT | Tipe enrollment, hanya boleh `Annually` atau `Monthly` | -| `service` | TEXT | Paket layanan, hanya boleh `Lite`, `Value`, atau `Pro` | -| `user` | TEXT | Nama pengguna | +**Method:** `GET` ---- +**URL:** -## ๐Ÿงช Penggunaan Endpoint +```bash +http://localhost:8080/api/enroll +``` -### 1. List Semua Enrollment +**Autentikasi:** wajib -**Request** +**Parameter request:** tidak ada + +**Contoh request:** ```bash curl -H "Authorization: Bearer secret123" \ http://localhost:8080/api/enroll ``` -**Response** +**Response sukses:** ```json { @@ -243,18 +264,42 @@ curl -H "Authorization: Bearer secret123" \ } ``` +**Response error jika token tidak valid:** + +```json +{ + "error": "invalid token" +} +``` + --- -### 2. Detail Enrollment Berdasarkan ID +### 2. `GET /api/enroll?id=` โ€” Detail Enrollment Berdasarkan ID -**Request** +**Method:** `GET` + +**URL:** + +```bash +http://localhost:8080/api/enroll?id=1 +``` + +**Autentikasi:** wajib + +**Parameter request:** + +| Parameter | Tipe | Wajib | Keterangan | +|---|---|---|---| +| `id` | integer | Ya | ID enrollment yang ingin dicari | + +**Contoh request:** ```bash curl -H "Authorization: Bearer secret123" \ "http://localhost:8080/api/enroll?id=1" ``` -**Response** +**Response sukses:** ```json { @@ -267,7 +312,7 @@ curl -H "Authorization: Bearer secret123" \ } ``` -Jika ID tidak ditemukan: +**Response jika ID tidak ditemukan:** ```json { @@ -277,12 +322,30 @@ Jika ID tidak ditemukan: --- -### 3. Tambah Enrollment Baru +### 3. `POST /api/enroll` โ€” Tambah Enrollment Baru -Endpoint `POST /api/enroll` dapat menerima data dalam format form-urlencoded atau JSON. +**Method:** `POST` + +**URL:** + +```bash +http://localhost:8080/api/enroll +``` + +**Autentikasi:** wajib + +**Request body:** + +| Field | Wajib | Keterangan | +|---|---|---| +| `type` | Ya | Harus `Annually` atau `Monthly` | +| `service` | Ya | Harus `Lite`, `Value`, atau `Pro` | +| `user` | Ya | Nama pengguna | #### Menggunakan Form Data +**Contoh request:** + ```bash curl -X POST http://localhost:8080/api/enroll \ -H "Authorization: Bearer secret123" \ @@ -293,6 +356,8 @@ curl -X POST http://localhost:8080/api/enroll \ #### Menggunakan JSON +**Contoh request:** + ```bash curl -X POST http://localhost:8080/api/enroll \ -H "Authorization: Bearer secret123" \ @@ -304,7 +369,7 @@ curl -X POST http://localhost:8080/api/enroll \ }' ``` -**Response** +**Response sukses:** ```json { @@ -313,14 +378,43 @@ curl -X POST http://localhost:8080/api/enroll \ } ``` +**Response error jika field wajib kosong:** + +```json +{ + "error": "type, service, user are required" +} +``` + --- -### 4. Edit Enrollment +### 4. `POST /api/enroll` โ€” Edit Enrollment -Untuk melakukan edit, kirim field `id` bersama data baru. +**Method:** `POST` + +**URL:** + +```bash +http://localhost:8080/api/enroll +``` + +**Autentikasi:** wajib + +**Request body:** + +| Field | Wajib | Keterangan | +|---|---|---| +| `id` | Ya | ID enrollment yang ingin diubah | +| `type` | Ya | Harus `Annually` atau `Monthly` | +| `service` | Ya | Harus `Lite`, `Value`, atau `Pro` | +| `user` | Ya | Nama pengguna | + +> Jangan kirim `action=remove` jika ingin melakukan edit. Kirim `action=remove` hanya untuk menghapus data. #### Menggunakan Form Data +**Contoh request:** + ```bash curl -X POST http://localhost:8080/api/enroll \ -H "Authorization: Bearer secret123" \ @@ -332,6 +426,8 @@ curl -X POST http://localhost:8080/api/enroll \ #### Menggunakan JSON +**Contoh request:** + ```bash curl -X POST http://localhost:8080/api/enroll \ -H "Authorization: Bearer secret123" \ @@ -344,7 +440,7 @@ curl -X POST http://localhost:8080/api/enroll \ }' ``` -**Response** +**Response sukses:** ```json { @@ -353,17 +449,39 @@ curl -X POST http://localhost:8080/api/enroll \ } ``` +**Response jika ID tidak ditemukan:** + +```json +{ + "error": "not found" +} +``` + --- -### 5. Hapus Enrollment +### 5. `POST /api/enroll` โ€” Hapus Enrollment -Untuk menghapus data, gunakan `POST /api/enroll` dengan field: +**Method:** `POST` -- `id` -- `action=remove` +**URL:** + +```bash +http://localhost:8080/api/enroll +``` + +**Autentikasi:** wajib + +**Request body:** + +| Field | Wajib | Keterangan | +|---|---|---| +| `id` | Ya | ID enrollment yang ingin dihapus | +| `action` | Ya | Harus bernilai `remove` | #### Menggunakan Form Data +**Contoh request:** + ```bash curl -X POST http://localhost:8080/api/enroll \ -H "Authorization: Bearer secret123" \ @@ -373,6 +491,8 @@ curl -X POST http://localhost:8080/api/enroll \ #### Menggunakan JSON +**Contoh request:** + ```bash curl -X POST http://localhost:8080/api/enroll \ -H "Authorization: Bearer secret123" \ @@ -383,7 +503,7 @@ curl -X POST http://localhost:8080/api/enroll \ }' ``` -**Response** +**Response sukses:** ```json { @@ -392,6 +512,14 @@ curl -X POST http://localhost:8080/api/enroll \ } ``` +**Response jika ID tidak ditemukan:** + +```json +{ + "error": "not found" +} +``` + --- ## ๐Ÿง  Logika `POST /api/enroll`