UI & API Menu Keamanan, Kontak Darurat

This commit is contained in:
2025-07-02 14:10:22 +08:00
parent 1c5e4410c4
commit 406c6f3c9f
13 changed files with 916 additions and 151 deletions

View File

@@ -1,5 +1,7 @@
import prisma from "@/lib/prisma";
import { Context } from "elysia";
import fs from "fs/promises";
import path from "path";
export default async function kontakDaruratKeamananDelete(context: Context){
const id = context.params?.id as string;
@@ -19,6 +21,10 @@ export default async function kontakDaruratKeamananDelete(context: Context){
const kontakDaruratKeamanan = await prisma.kontakDaruratKeamanan.findUnique({
where: { id },
include: {
kontakItems: true,
image: true,
}
});
if (!kontakDaruratKeamanan) {
@@ -28,12 +34,25 @@ export default async function kontakDaruratKeamananDelete(context: Context){
};
}
if (kontakDaruratKeamanan.image) {
try {
const filePath = path.join(kontakDaruratKeamanan.image.path, kontakDaruratKeamanan.image.name);
await fs.unlink(filePath);
await prisma.fileStorage.delete({
where: { id: kontakDaruratKeamanan.image.id },
});
} catch (err) {
console.error("Gagal hapus file image:", err);
}
}
await prisma.kontakDaruratKeamanan.delete({
where: { id },
});
return {
status: 200,
body: "Kontak darurat keamanan berhasil dihapus",
success: true,
message: "Kontak darurat keamanan berhasil dihapus",
};
}

View File

@@ -31,7 +31,11 @@ export default async function kontakDaruratKeamananFindUnique(
const data = await prisma.kontakDaruratKeamanan.findUnique({
where: { id },
include: {
kontakItems: true,
kontakItems: {
include: {
image: true,
},
},
image: true,
},
});

View File

@@ -6,7 +6,7 @@ import kontakDaruratKeamananFindUnique from "./findUnique";
import kontakDaruratKeamananUpdate from "./updt";
const KontakDaruratKeamanan = new Elysia({
prefix: "/kontak-darurat-keamanan",
prefix: "/kontakdaruratkeamanan",
tags: ["Keamanan/Kontak Darurat"],
})
.get("/find-many", kontakDaruratKeamananFindMany)