From 3c5e4a7df6b0739a2bfb9525a90def8c18762442 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Mon, 3 Mar 2025 15:43:39 +0700 Subject: [PATCH] fix(debiture): tambahkan validasi sebelum menghapus debitur - Periksa apakah pengguna adalah administrator sebelum menghapus debitur. - Pastikan debitur ditemukan sebelum melakukan penghapusan. - Cek apakah debitur memiliki permohonan aktif untuk mencegah penghapusan. - Kembalikan respons JSON yang sesuai untuk setiap kondisi. --- app/Http/Controllers/DebitureController.php | 22 ++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/DebitureController.php b/app/Http/Controllers/DebitureController.php index b429265..94768ac 100644 --- a/app/Http/Controllers/DebitureController.php +++ b/app/Http/Controllers/DebitureController.php @@ -93,13 +93,29 @@ public function destroy($id) { try { - // Delete from database + // Periksa apakah pengguna adalah administrator + if (!auth()->user()->hasRole('administrator')) { + return response()->json(['success' => false, 'message' => 'Hanya administrator yang dapat menghapus debitur'], 403); + } + + // Temukan debitur $debitur = Debiture::find($id); + + if (!$debitur) { + return response()->json(['success' => false, 'message' => 'Debitur tidak ditemukan'], 404); + } + + // Periksa apakah debitur memiliki permohonan aktif + if ($debitur->permohonan()->exists()) { + return response()->json(['success' => false, 'message' => 'Tidak dapat menghapus debitur yang masih memiliki permohonan aktif'], 400); + } + + // Hapus dari database $debitur->delete(); - echo json_encode(['success' => true, 'message' => 'Debitur deleted successfully']); + return response()->json(['success' => true, 'message' => 'Debitur berhasil dihapus']); } catch (Exception $e) { - echo json_encode(['success' => false, 'message' => 'Failed to delete debitur']); + return response()->json(['success' => false, 'message' => 'Gagal menghapus debitur: ' . $e->getMessage()], 500); } }