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.
This commit is contained in:
Daeng Deni Mardaeni
2025-03-03 15:43:39 +07:00
parent e55184591c
commit 3c5e4a7df6

View File

@@ -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);
}
}