Skip to content

Refactor Import Validation using FormRequest Classes#1457

Open
habibie11 wants to merge 11 commits intodevfrom
code-quality
Open

Refactor Import Validation using FormRequest Classes#1457
habibie11 wants to merge 11 commits intodevfrom
code-quality

Conversation

@habibie11
Copy link
Contributor

issue #1432

Deskripsi Ringkas

Pull Request ini bertujuan untuk merapikan logika validasi pada fitur pendataan (import) dengan memindahkan validasi inline dari Controller ke dalam FormRequest class. Langkah ini dilakukan untuk memperbersih kode di Controller (DRY), meningkatkan keterbacaan, dan memudahkan pemeliharaan di masa mendatang.

Perubahan Utama

  1. Validasi Terpusat:
    • Membuat base class ImportExcelRequest untuk aturan dasar import file Excel.
    • Membuat 11 class FormRequest khusus (seperti ImportAKIAKBRequest, ImportPendudukRequest, dll.) yang menangani aturan spesifik untuk masing-masing modul.
  2. Pembersihan Controller:
    • Menghapus blok $this->validate() pada 8 Controller utama (AKIAKBController, PendudukController, ImunisasiController, dll.) dan menggantinya dengan type-hinted FormRequest.
  3. Peningkatan Fitur Upload:
    • Memperbarui trait HandlesFileUpload dengan penambahan validasi MIME type yang lebih ketat dan secure filename generation.
  4. Pesan Error Bahasa Indonesia:
    • Menambahkan method messages() pada setiap request untuk memberikan pesan kesalahan yang lebih ramah pengguna dalam Bahasa Indonesia.

Modul yang Terdampak

  • Data Penduduk (ZIP & Excel)
  • AKI & AKB
  • Epidemi Penyakit
  • Imunisasi
  • Toilet & Sanitasi
  • Fasilitas PAUD & Putus Sekolah
  • Anggaran & Realisasi
  • Laporan APBDes & Program Bantuan

Manfaat

  • Kode Lebih Bersih: Controller sekarang hanya fokus pada logika bisnis (proses import).
  • Konsistensi: Aturan validasi yang sama dapat digunakan kembali dengan mudah.
  • Keamanan: Validasi file yang lebih ketat melalui trait yang telah diperbarui.

Hasil test aplikasi tidak ada error
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant