2024-09-05 10:54:53 +08:00

55 lines
1.7 KiB
JavaScript

export default defineEventHandler(async (event) => {
const { noSiri } = event.context.params; // Extract the noSiri from the URL
const body = await readBody(event); // Read the request body
const { ringkasanKenyataanKes, noKertasSiasatan, noLaporanPolis } = body;
// 1. Validate the input fields (all three fields must be provided)
if (!ringkasanKenyataanKes || !noKertasSiasatan || !noLaporanPolis) {
return {
statusCode: 400,
message:
"Setiap medan mandatori yang bertanda * telah diisi. (Ralat CMN-E001)",
};
}
try {
// 2. Check if the permohonan exists by its `no_siri`
const existingPermohonan = await prisma.permohonan.findUnique({
where: { no_siri: noSiri },
});
// If no `permohonan` is found, return a 404 error
if (!existingPermohonan) {
return {
statusCode: 404,
message: `Permohonan with noSiri ${noSiri} not found.`,
};
}
// 3. Proceed to update only the allowed fields (ringkasanKenyataanKes, noKertasSiasatan, noLaporanPolis)
const updatedPermohonan = await prisma.permohonan.update({
where: { no_siri: noSiri },
data: {
ringkasan_kenyataan_kes: ringkasanKenyataanKes,
no_kertas_siasatan: noKertasSiasatan,
no_laporan_polis: noLaporanPolis,
modified_at: new Date(), // Update the modified_at timestamp
},
});
// 4. Return success response
return {
statusCode: 200,
message: "Permohonan telah berjaya dikemaskini.",
data: updatedPermohonan,
};
} catch (error) {
console.error("Error updating permohonan:", error);
return {
statusCode: 500,
message: "Gagal mengemaskini permohonan. Sila cuba lagi.",
};
}
});