3.0 KiB
3.0 KiB
Audit detail: Json.php (CI3)
Path sumber: bij.mwp.co.id/application/controllers/Json.php
Base class: MY_Controller → MX_Controller (HMVC; Json tidak memakai Ion Auth untuk request API).
Ringkasan eksekutif
- 22 method publik (termasuk
index). - Hampir semua endpoint: POST
token(+ field lain), balasan JSON, headerAccess-Control-Allow-Origin: *. - Tidak ada layer Model; semua interaksi DB di controller.
Tabel per method
| Method | Login/token | Pegawai | Mobile | DB langsung | Catatan refactor |
|---|---|---|---|---|---|
index |
— | — | — | Tidak | Hanya pesan tolak |
login_w_token |
Ya | Ya | Ya | Ya | Update last_login; unset field sensitif |
login |
Ya | Ya | Ya | Ya | MD5 password; token random di DB |
profil |
token | Ya | Ya | Ya | Banyak join logika jadwal/libur/cuti; kompleks |
save_cuti |
token | Ya | Ya | Ya | Base64 file + insert cuti + cuti_dokumen |
batalkan_cuti |
token | Ya | Ya | Ya | Update status |
save_aktifitas |
token | Ya | Ya | Ya | Upload + aktifitas_harian |
save_masuk |
token | Ya | Ya | Ya | Jadwal dinamis kolom {N}_in; update presensi |
save_pulang |
token | Ya | Ya | Ya | Verifikasi waktu pulang; cek field toleransi |
save_istirahat |
token | Ya | Ya | Ya | Update partial presensi; variabel $ist bisa tak terdefinisi jika kedua POST kosong |
presensi_today |
token | Ya | Ya | Ya | Insert default presensi jika belum ada; serialize($jadwal) |
presensi |
token | Ya | Ya | Ya | Riwayat 20 hari |
daftar_today |
token | Ya | Ya | Ya | Join pegawai/jabatan/presensi; tanggal di string SQL |
berita |
token | — | Ya | Ya | Pagination dari/jumlah |
cuti |
token | Ya | Ya | Ya | N+1 query dokumen per baris cuti |
lembur |
token | Ya | Ya | Ya | — |
libur |
token | — | Ya | Ya | Semua libur (tidak difilter pegawai) |
aktifitas |
token | Ya | Ya | Ya | — |
save_pp |
token | Ya | Ya | Ya | Hapus foto lama unlink; update pegawai.photo |
save_password |
token | Ya | Ya | Ya | Bandingkan MD5 password lama |
Query / DB — pola yang dipakai
pegawai: hampir selalu filtertokenatau kredensial login.- Lookup terkait:
kantor,jabatan,unit_kerja,lembur,dilapangan,libur,cuti,jadwal,presensi,berita,cuti_dokumen,aktifitas_harian.
Private helpers
generateRandomString— untuk suffix token setelah login.utf8ize— rekursif array/string; memakaiutf8_encodepada string (perlu pengganti di PHP 8+).
Prioritas implementasi di CI4 (usulan)
login,login_w_token,profilpresensi_today,save_masuk,save_pulang,save_istirahatsave_cuti,cuti,batalkan_cuti- Sisanya menurut frekuensi pemakaian aplikasi mobile.
Implementasi CI4: app/Controllers/Api/MobileJsonController.php + app/Services/Mobile/MobileJsonService.php (lihat juga json_api_map.md).