- **Perbaikan Struktural:** - Melakukan perapihan kode dengan konsistensi indentasi dan penyusunan namespace seluruh file. - Menambahkan dan mengimpor namespace baru seperti `Throwable`, `InvalidArgumentException`, dan `Exception`. - **Peningkatan Readability:** - Menambahkan format dan penyesuaian pada komentar, khususnya penjelasan method dan atribut. - Menggunakan alignment untuk parameter pada log dan constructor untuk meningkatkan keterbacaan. - **Pengelolaan Job:** - Menambahkan logging detail saat memulai, menjalankan, hingga menyelesaikan job. - Menambahkan penanganan proses tiap akun dalam batch, termasuk logging sukses/gagal dan pembaruan status log. - **Penanganan Error:** - Menambahkan rollback database jika terjadi exception pada saat proses pengiriman email. - Melakukan logging error dengan detail tambahan termasuk pesan dan trace. - **Penambahan Utility:** - Menambahkan metode reusable seperti `updateLogStatus` untuk update status log dengan parameter dinamis. - Menambahkan validasi seperti pengecekan eksistensi file PDF dan email terkait sebelum pengiriman. - **Peningkatan Proses Batch:** - Menambahkan pengelolaan batch berbasis properti `batchId` untuk tracking. - Memperbaiki handle retries dan status akhir batch secara komprehensif (completed, failed). - Menambahkan logging agregat untuk jumlah akun yang diproses dan tingkat keberhasilan. - **Peningkatan Validasi Email:** - Menambahkan skenario untuk pengambilan email dari `stmt_email` atau fallback ke data customer jika tersedia. - Menambahkan peringatan saat akun tertentu tidak memiliki email yang valid. - **Pemeliharaan File PDF:** - Mengecek keberadaan file PDF terkait sebelum proses pengiriman. - Menampilkan log error jika file tidak ditemukan. - **Peningkatan Retry dan Logging Gagal:** - Implementasi metode `failed()` untuk logging pada job yang gagal permanen. - Menangani detail error dan rollback pada level tiap akun dan batch. Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
16 KiB
16 KiB