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:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user