# Pemetaan API mobile (`Json.php` → CI4)

Semua endpoint: **POST**, header respons **`Content-Type: application/json`**, **`Access-Control-Allow-Origin: *`**.

**URL CI4:**

- `POST {baseURL}api/mobile/{method}`
- Alias: `POST {baseURL}json/{method}` (sama dengan path CI3 `json/{method}`)

## Ringkasan method

| Method CI3 | Handler CI4 | Input POST utama | Output utama |
|------------|---------------|-------------------|--------------|
| `login_w_token` | `login_w_token` | `token` | `{status,pesan}` |
| `login` | `login` | `username`, `password` | `{status,pesan,token?}` |
| `profil` | `profil` | `token` | `{status,pesan,pegawai?}` |
| `save_cuti` | `save_cuti` | `token`, `nama_photo`, `photo` (base64), `tanggal`, `alasan`, `tipe` | `{status,pesan}` |
| `batalkan_cuti` | `batalkan_cuti` | `token`, `id` | `{status,pesan}` |
| `save_aktifitas` | `save_aktifitas` | `token`, `nama_photo`, `photo`, `tanggal`, `deksripsi` | `{status,pesan}` |
| `save_masuk` | `save_masuk` | `token`, `nama_photo`, `photo`, `lat`, `lng`, `jarak` | `{status,pesan}` |
| `save_pulang` | `save_pulang` | sama seperti masuk | `{status,pesan}` |
| `save_istirahat` | `save_istirahat` | `token`, `mulai`, `selesai` | `{status,pesan}` |
| `presensi_today` | `presensi_today` | `token` | `{status,pesan,data?}` |
| `presensi` | `presensi` | `token` | `{status,pesan,data?}` |
| `daftar_today` | `daftar_today` | `token` | `{status,pesan,data?}` |
| `berita` | `berita` | `token`, `dari`, `jumlah` | `{status,pesan,data?}` |
| `cuti` | `cuti` | `token`, `dari`, `jumlah` | `{status,pesan,data?}` |
| `lembur` | `lembur` | `token`, `dari`, `jumlah` | `{status,pesan,data?}` |
| `libur` | `libur` | `token` | `{status,pesan,data?}` |
| `aktifitas` | `aktifitas` | `token`, `dari`, `jumlah` | `{status,pesan,data?}` |
| `save_pp` | `save_pp` | `token`, `nama_photo`, `photo` | `{status,pesan}` |
| `save_password` | `save_password` | `token`, `pass_lama`, `pass_baru` | `{status,pesan}` |

`status`: **1** sukses, **0** gagal / tidak berubah (sesuai pola legacy).

## Implementasi CI4

- Controller: `app/Controllers/Api/MobileJsonController.php`
- Layanan: `app/Services/Mobile/MobileJsonService.php`
- Encoding JSON: `app/Libraries/LegacyUtf8Encoder.php`

## Peningkatan terjadwal (tidak mengubah kontrak sekarang)

- Ganti MD5 setelah mobile mendukung algoritma baru.
- Token → JWT / hash penyimpanan.
- Pecah service menjadi model per tabel + transaksi.
