diff --git a/package.json b/package.json index ea863c92..e7c8ee09 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "desa-darmasaba", - "version": "0.1.19", + "version": "0.1.20", "private": true, "scripts": { "dev": "next dev", diff --git a/src/app/api/[[...slugs]]/_lib/desa/berita/del.ts b/src/app/api/[[...slugs]]/_lib/desa/berita/del.ts index 0e31e421..a11680d3 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/berita/del.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/berita/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; -import fs from "fs/promises"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const beritaDelete = async (context: Context) => { const id = context.params?.id as string; @@ -21,14 +20,15 @@ const beritaDelete = async (context: Context) => { // 2. BARU HAPUS FILE if (berita.image) { try { - const filePath = path.join(berita.image.path, berita.image.name); - await fs.unlink(filePath); + // Hapus dari MinIO + await minio.removeObject(MINIO_BUCKET, `${berita.image.path}/${berita.image.name}`); + // Hapus dari database await prisma.fileStorage.delete({ where: { id: berita.image.id }, }); } catch (err) { - console.error("Gagal hapus file image:", err); + console.error("Gagal hapus file image dari MinIO/DB:", err); } } diff --git a/src/app/api/[[...slugs]]/_lib/desa/berita/updt.ts b/src/app/api/[[...slugs]]/_lib/desa/berita/updt.ts index 67d76444..a82f8b02 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/berita/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/berita/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; import { Prisma } from "@prisma/client"; -import fs from "fs/promises"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = { id: string; @@ -50,8 +49,7 @@ async function beritaUpdate(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/desa/gallery/foto/del.ts b/src/app/api/[[...slugs]]/_lib/desa/gallery/foto/del.ts index 859c1a4b..4b4c4a71 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/gallery/foto/del.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/gallery/foto/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; -import fs from "fs/promises"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const galleryFotoDelete = async (context: Context) => { const id = context.params?.id as string; @@ -30,8 +29,7 @@ const galleryFotoDelete = async (context: Context) => { // Hapus file gambar dari filesystem jika ada if (foto.imageGalleryFoto) { try { - const filePath = path.join(foto.imageGalleryFoto.path, foto.imageGalleryFoto.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${foto.imageGalleryFoto.path}/${foto.imageGalleryFoto.name}`); await prisma.fileStorage.delete({ where: { id: foto.imageGalleryFoto.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/desa/gallery/foto/updt.ts b/src/app/api/[[...slugs]]/_lib/desa/gallery/foto/updt.ts index bd012f74..de46ac7c 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/gallery/foto/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/gallery/foto/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; import { Context } from "elysia"; -import fs from "fs/promises"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.GalleryFotoGetPayload<{ select: { @@ -48,8 +47,7 @@ async function galleryFotoUpdate(context: Context) { const oldImage = existing.imageGalleryFoto; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/desa/layanan/pelayanan_surat_keterangan/del.ts b/src/app/api/[[...slugs]]/_lib/desa/layanan/pelayanan_surat_keterangan/del.ts index 2ecabb01..577a7fec 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/layanan/pelayanan_surat_keterangan/del.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/layanan/pelayanan_surat_keterangan/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const pelayananSuratKeteranganDelete = async (context: Context) => { const id = context.params?.id as string; @@ -31,8 +30,7 @@ const pelayananSuratKeteranganDelete = async (context: Context) => { // Hapus file gambar dari filesystem jika ada if (pelayananSuratKeterangan.image) { try { - const filePath = path.join(pelayananSuratKeterangan.image.path, pelayananSuratKeterangan.image.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${pelayananSuratKeterangan.image.path}/${pelayananSuratKeterangan.image.name}`); await prisma.fileStorage.delete({ where: { id: pelayananSuratKeterangan.image.id }, }); @@ -43,8 +41,7 @@ const pelayananSuratKeteranganDelete = async (context: Context) => { if (pelayananSuratKeterangan.image2) { try { - const filePath = path.join(pelayananSuratKeterangan.image2.path, pelayananSuratKeterangan.image2.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${pelayananSuratKeterangan.image2.path}/${pelayananSuratKeterangan.image2.name}`); await prisma.fileStorage.delete({ where: { id: pelayananSuratKeterangan.image2.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/desa/layanan/pelayanan_surat_keterangan/updt.ts b/src/app/api/[[...slugs]]/_lib/desa/layanan/pelayanan_surat_keterangan/updt.ts index da9729ad..618daa0b 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/layanan/pelayanan_surat_keterangan/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/layanan/pelayanan_surat_keterangan/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; -import path from "path"; -import fs from "fs/promises"; import { Context } from "elysia"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.PelayananSuratKeteranganGetPayload<{ select: { @@ -34,6 +33,7 @@ export default async function updatePelayananSuratKeterangan(context: Context) { where: { id }, include: { image: true, + image2: true, } }); @@ -53,8 +53,7 @@ export default async function updatePelayananSuratKeterangan(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); @@ -65,11 +64,10 @@ export default async function updatePelayananSuratKeterangan(context: Context) { } if (existing.image2Id && existing.image2Id !== image2Id) { - const oldImage = existing.image; + const oldImage = existing.image2; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/desa/musik/del.ts b/src/app/api/[[...slugs]]/_lib/desa/musik/del.ts index 1235986f..8df528f6 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/musik/del.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/musik/del.ts @@ -1,6 +1,6 @@ import { Context } from "elysia"; import prisma from "@/lib/prisma"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const musikDelete = async (context: Context) => { const { id } = context.params as { id: string }; @@ -18,9 +18,7 @@ const musikDelete = async (context: Context) => { // 2. HAPUS FILE AUDIO (jika ada) if (musik.audioFile) { try { - const fs = await import("fs/promises"); - const filePath = path.join(musik.audioFile.path, musik.audioFile.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${musik.audioFile.path}/${musik.audioFile.name}`); await prisma.fileStorage.delete({ where: { id: musik.audioFile.id }, @@ -33,9 +31,7 @@ const musikDelete = async (context: Context) => { // 3. HAPUS FILE COVER (jika ada) if (musik.coverImage) { try { - const fs = await import("fs/promises"); - const filePath = path.join(musik.coverImage.path, musik.coverImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${musik.coverImage.path}/${musik.coverImage.name}`); await prisma.fileStorage.delete({ where: { id: musik.coverImage.id }, diff --git a/src/app/api/[[...slugs]]/_lib/desa/penghargaan/del.ts b/src/app/api/[[...slugs]]/_lib/desa/penghargaan/del.ts index 72f8222a..bbf46573 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/penghargaan/del.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/penghargaan/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; -import fs from "fs/promises"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const penghargaanDelete = async (context: Context) => { const id = context.params?.id as string; @@ -29,8 +28,7 @@ const penghargaanDelete = async (context: Context) => { if (penghargaan.image) { try { - const filePath = path.join(penghargaan.image.path, penghargaan.image.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${penghargaan.image.path}/${penghargaan.image.name}`); await prisma.fileStorage.delete({ where: { id: penghargaan.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/desa/penghargaan/updt.ts b/src/app/api/[[...slugs]]/_lib/desa/penghargaan/updt.ts index 82a4e1a3..9ec8dd4c 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/penghargaan/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/penghargaan/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; -import path from "path"; -import fs from "fs/promises"; import { Context } from "elysia"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.PenghargaanGetPayload<{ select: { @@ -60,8 +59,7 @@ try { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/desa/potensi/del.ts b/src/app/api/[[...slugs]]/_lib/desa/potensi/del.ts index d3e17c64..e4fe7072 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/potensi/del.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/potensi/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; -import path from "path"; import { Context } from "elysia"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const potensiDesaDelete = async (context: Context) => { const id = context.params?.id as string; @@ -31,8 +30,7 @@ const potensiDesaDelete = async (context: Context) => { // Hapus file gambar dari filesystem jika ada if (potensiDesa.image) { try { - const filePath = path.join(potensiDesa.image.path, potensiDesa.image.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${potensiDesa.image.path}/${potensiDesa.image.name}`); await prisma.fileStorage.delete({ where: { id: potensiDesa.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/desa/potensi/updt.ts b/src/app/api/[[...slugs]]/_lib/desa/potensi/updt.ts index dd33ab8d..dacc1e2f 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/potensi/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/potensi/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.PotensiDesaGetPayload<{ select: { @@ -54,8 +53,7 @@ export default async function potensiDesaUpdate(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/desa/profile/profile-mantan-perbekel/del.ts b/src/app/api/[[...slugs]]/_lib/desa/profile/profile-mantan-perbekel/del.ts index 78f1dbd3..57eb57e1 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/profile/profile-mantan-perbekel/del.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/profile/profile-mantan-perbekel/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; -import fs from "fs/promises"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const profileMantanPerbekelDelete = async (context: Context) => { const id = context.params?.id as string; @@ -30,8 +29,7 @@ const profileMantanPerbekelDelete = async (context: Context) => { // Hapus file gambar dari filesystem jika ada if (foto.image) { try { - const filePath = path.join(foto.image.path, foto.image.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${foto.image.path}/${foto.image.name}`); await prisma.fileStorage.delete({ where: { id: foto.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/desa/profile/profile-mantan-perbekel/updt.ts b/src/app/api/[[...slugs]]/_lib/desa/profile/profile-mantan-perbekel/updt.ts index 8b99f07d..cde4b2fb 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/profile/profile-mantan-perbekel/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/profile/profile-mantan-perbekel/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; import { Context } from "elysia"; -import fs from "fs/promises"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.PerbekelDariMasaKeMasaGetPayload<{ select: { @@ -46,8 +45,7 @@ export default async function profileMantanPerbekelUpdate(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/desa/profile/profilePerbekel/update.ts b/src/app/api/[[...slugs]]/_lib/desa/profile/profilePerbekel/update.ts index 00bec4ed..100865d1 100644 --- a/src/app/api/[[...slugs]]/_lib/desa/profile/profilePerbekel/update.ts +++ b/src/app/api/[[...slugs]]/_lib/desa/profile/profilePerbekel/update.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.ProfilPerbekelGetPayload<{ select: { @@ -64,8 +63,7 @@ export default async function profilePerbekelUpdate(context: Context) { const oldImage = exisitng.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/inovasi/desa-digital/del.ts b/src/app/api/[[...slugs]]/_lib/inovasi/desa-digital/del.ts index 8a9d4178..2ab93c3f 100644 --- a/src/app/api/[[...slugs]]/_lib/inovasi/desa-digital/del.ts +++ b/src/app/api/[[...slugs]]/_lib/inovasi/desa-digital/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; -import fs from "fs/promises"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; export default async function desaDigitalDelete(context: Context) { const id = context.params?.id as string; @@ -29,11 +28,7 @@ export default async function desaDigitalDelete(context: Context) { if (desaDigital.image) { try { - const filePath = path.join( - desaDigital.image.path, - desaDigital.image.name - ); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${desaDigital.image.path}/${desaDigital.image.name}`); await prisma.fileStorage.delete({ where: { id: desaDigital.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/inovasi/desa-digital/updt.ts b/src/app/api/[[...slugs]]/_lib/inovasi/desa-digital/updt.ts index 697807fc..b29bfcb8 100644 --- a/src/app/api/[[...slugs]]/_lib/inovasi/desa-digital/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/inovasi/desa-digital/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.DesaDigitalGetPayload<{ select: { @@ -58,8 +57,7 @@ export default async function desaDigitalUpdate(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/inovasi/info-teknologi/del.ts b/src/app/api/[[...slugs]]/_lib/inovasi/info-teknologi/del.ts index 065471d9..23eb4ac4 100644 --- a/src/app/api/[[...slugs]]/_lib/inovasi/info-teknologi/del.ts +++ b/src/app/api/[[...slugs]]/_lib/inovasi/info-teknologi/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; -import fs from "fs/promises"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; export default async function infoTeknoDelete(context: Context) { const id = context.params?.id as string; @@ -29,11 +28,7 @@ export default async function infoTeknoDelete(context: Context) { if (infoTekno.image) { try { - const filePath = path.join( - infoTekno.image.path, - infoTekno.image.name - ); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${infoTekno.image.path}/${infoTekno.image.name}`); await prisma.fileStorage.delete({ where: { id: infoTekno.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/inovasi/info-teknologi/updt.ts b/src/app/api/[[...slugs]]/_lib/inovasi/info-teknologi/updt.ts index 263d7e81..493fc6bf 100644 --- a/src/app/api/[[...slugs]]/_lib/inovasi/info-teknologi/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/inovasi/info-teknologi/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.InfoTeknoGetPayload<{ select: { @@ -58,8 +57,7 @@ export default async function infoTeknoUpdate(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/inovasi/kolaborasi-inovasi/mitra-kolaborasi/del.ts b/src/app/api/[[...slugs]]/_lib/inovasi/kolaborasi-inovasi/mitra-kolaborasi/del.ts index 04dc8f4f..bce9dde4 100644 --- a/src/app/api/[[...slugs]]/_lib/inovasi/kolaborasi-inovasi/mitra-kolaborasi/del.ts +++ b/src/app/api/[[...slugs]]/_lib/inovasi/kolaborasi-inovasi/mitra-kolaborasi/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; -import fs from "fs/promises"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; export default async function mitraKolaborasiDelete(context: Context) { const id = context.params?.id as string; @@ -29,11 +28,7 @@ export default async function mitraKolaborasiDelete(context: Context) { if (mitraKolaborasi.image) { try { - const filePath = path.join( - mitraKolaborasi.image.path, - mitraKolaborasi.image.name - ); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${mitraKolaborasi.image.path}/${mitraKolaborasi.image.name}`); await prisma.fileStorage.delete({ where: { id: mitraKolaborasi.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/inovasi/kolaborasi-inovasi/mitra-kolaborasi/updt.ts b/src/app/api/[[...slugs]]/_lib/inovasi/kolaborasi-inovasi/mitra-kolaborasi/updt.ts index f3edbecc..001da590 100644 --- a/src/app/api/[[...slugs]]/_lib/inovasi/kolaborasi-inovasi/mitra-kolaborasi/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/inovasi/kolaborasi-inovasi/mitra-kolaborasi/updt.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; -import fs from "fs/promises"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = { id: string; @@ -12,12 +11,12 @@ export default async function mitraKolaborasiUpdate(context: Context) { try { const id = context.params?.id as string; const body = (await context.body) as Omit; - + const { name, imageId } = body; - + if (!id) { return new Response(JSON.stringify({ success: false, @@ -29,14 +28,14 @@ export default async function mitraKolaborasiUpdate(context: Context) { } }) } - + const existing = await prisma.mitraKolaborasi.findUnique({ where: {id}, include: { image: true, } }) - + if (!existing) { return new Response(JSON.stringify({ success: false, @@ -48,13 +47,12 @@ export default async function mitraKolaborasiUpdate(context: Context) { } }) } - + if (existing.imageId && existing.imageId !== imageId) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); @@ -63,7 +61,7 @@ export default async function mitraKolaborasiUpdate(context: Context) { } } } - + const updated = await prisma.mitraKolaborasi.update({ where: { id }, data: { @@ -71,7 +69,6 @@ export default async function mitraKolaborasiUpdate(context: Context) { imageId, } }) - return new Response(JSON.stringify({ success: true, message: "Mitra kolaborasi berhasil diupdate", diff --git a/src/app/api/[[...slugs]]/_lib/inovasi/layanan-online-desa/pengaduan-masyarakat/del.ts b/src/app/api/[[...slugs]]/_lib/inovasi/layanan-online-desa/pengaduan-masyarakat/del.ts index e47fd8d4..b06eb40a 100644 --- a/src/app/api/[[...slugs]]/_lib/inovasi/layanan-online-desa/pengaduan-masyarakat/del.ts +++ b/src/app/api/[[...slugs]]/_lib/inovasi/layanan-online-desa/pengaduan-masyarakat/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; -import fs from "fs/promises"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; export default async function pengaduanMasyarakatDelete(context: Context) { const id = context.params?.id as string; @@ -25,8 +24,7 @@ export default async function pengaduanMasyarakatDelete(context: Context) { if (pengaduan.image) { try { - const filePath = path.join(pengaduan.image.path, pengaduan.image.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${pengaduan.image.path}/${pengaduan.image.name}`); await prisma.fileStorage.delete({ where: { id: pengaduan.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/keamanan/keamanan-lingkungan/del.ts b/src/app/api/[[...slugs]]/_lib/keamanan/keamanan-lingkungan/del.ts index a7a5a7fa..4ed81bbf 100644 --- a/src/app/api/[[...slugs]]/_lib/keamanan/keamanan-lingkungan/del.ts +++ b/src/app/api/[[...slugs]]/_lib/keamanan/keamanan-lingkungan/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const keamananLingkunganDelete = async (context: Context) => { const id = context.params?.id as string; @@ -30,8 +29,7 @@ const keamananLingkunganDelete = async (context: Context) => { // Hapus file gambar dari filesystem jika ada if (keamananLingkungan.image) { try { - const filePath = path.join(keamananLingkungan.image.path, keamananLingkungan.image.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${keamananLingkungan.image.path}/${keamananLingkungan.image.name}`); await prisma.fileStorage.delete({ where: { id: keamananLingkungan.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/keamanan/keamanan-lingkungan/updt.ts b/src/app/api/[[...slugs]]/_lib/keamanan/keamanan-lingkungan/updt.ts index b60cbdf0..35a12fff 100644 --- a/src/app/api/[[...slugs]]/_lib/keamanan/keamanan-lingkungan/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/keamanan/keamanan-lingkungan/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; -import path from "path"; -import fs from "fs/promises"; import { Context } from "elysia"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.KeamananLingkunganGetPayload<{ select: { @@ -59,8 +58,7 @@ export default async function updateKeamananLingkungan(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/keamanan/tips-keamanan/del.ts b/src/app/api/[[...slugs]]/_lib/keamanan/tips-keamanan/del.ts index 261deff2..5daa5dcf 100644 --- a/src/app/api/[[...slugs]]/_lib/keamanan/tips-keamanan/del.ts +++ b/src/app/api/[[...slugs]]/_lib/keamanan/tips-keamanan/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const menuTipsKeamananDelete = async (context: Context) => { const id = context.params?.id as string; @@ -30,8 +29,7 @@ const menuTipsKeamananDelete = async (context: Context) => { // Hapus file gambar dari filesystem jika ada if (tipsKeamanan.image) { try { - const filePath = path.join(tipsKeamanan.image.path, tipsKeamanan.image.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${tipsKeamanan.image.path}/${tipsKeamanan.image.name}`); await prisma.fileStorage.delete({ where: { id: tipsKeamanan.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/keamanan/tips-keamanan/updt.ts b/src/app/api/[[...slugs]]/_lib/keamanan/tips-keamanan/updt.ts index 5cbed4b9..ef605a7e 100644 --- a/src/app/api/[[...slugs]]/_lib/keamanan/tips-keamanan/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/keamanan/tips-keamanan/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; -import path from "path"; -import fs from "fs/promises"; import { Context } from "elysia"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type MenuTipsKeamananUpdate = Prisma.MenuTipsKeamananGetPayload<{ @@ -62,8 +61,7 @@ export default async function menuTipsKeamananUpdate(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/kesehatan/info-wabah-penyakit/del.ts b/src/app/api/[[...slugs]]/_lib/kesehatan/info-wabah-penyakit/del.ts index 79f87a1c..b9532bc8 100644 --- a/src/app/api/[[...slugs]]/_lib/kesehatan/info-wabah-penyakit/del.ts +++ b/src/app/api/[[...slugs]]/_lib/kesehatan/info-wabah-penyakit/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; -import fs from "fs/promises"; import { Context } from "elysia"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const infoWabahPenyakitDelete = async (context: Context) => { const id = context.params?.id as string; @@ -28,8 +27,7 @@ const infoWabahPenyakitDelete = async (context: Context) => { // Hapus file gambar dari filesystem jika ada if (infoWabahPenyakit.image) { try { - const filePath = path.join(infoWabahPenyakit.image.path, infoWabahPenyakit.image.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${infoWabahPenyakit.image.path}/${infoWabahPenyakit.image.name}`); await prisma.fileStorage.delete({ where: { id: infoWabahPenyakit.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/kesehatan/info-wabah-penyakit/updt.ts b/src/app/api/[[...slugs]]/_lib/kesehatan/info-wabah-penyakit/updt.ts index 3cfdaab7..05ac3814 100644 --- a/src/app/api/[[...slugs]]/_lib/kesehatan/info-wabah-penyakit/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/kesehatan/info-wabah-penyakit/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.InfoWabahPenyakitGetPayload<{ select: { @@ -61,8 +60,7 @@ export default async function infoWabahPenyakitUpdate(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/kesehatan/kontak-darurat/del.ts b/src/app/api/[[...slugs]]/_lib/kesehatan/kontak-darurat/del.ts index c878ffa5..8b531551 100644 --- a/src/app/api/[[...slugs]]/_lib/kesehatan/kontak-darurat/del.ts +++ b/src/app/api/[[...slugs]]/_lib/kesehatan/kontak-darurat/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; -import fs from "fs/promises"; import { Context } from "elysia"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const kontakDaruratDelete = async (context: Context) => { const id = context.params?.id as string; @@ -28,8 +27,7 @@ const kontakDaruratDelete = async (context: Context) => { // Hapus file gambar dari filesystem jika ada if (kontakDarurat.image) { try { - const filePath = path.join(kontakDarurat.image.path, kontakDarurat.image.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${kontakDarurat.image.path}/${kontakDarurat.image.name}`); await prisma.fileStorage.delete({ where: { id: kontakDarurat.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/kesehatan/kontak-darurat/updt.ts b/src/app/api/[[...slugs]]/_lib/kesehatan/kontak-darurat/updt.ts index f61c6ffc..aa10abc9 100644 --- a/src/app/api/[[...slugs]]/_lib/kesehatan/kontak-darurat/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/kesehatan/kontak-darurat/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.KontakDaruratGetPayload<{ select: { @@ -60,8 +59,7 @@ export default async function kontakDaruratUpdate(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/kesehatan/penanganan-darurat/del.ts b/src/app/api/[[...slugs]]/_lib/kesehatan/penanganan-darurat/del.ts index 50089f9a..7f2e7072 100644 --- a/src/app/api/[[...slugs]]/_lib/kesehatan/penanganan-darurat/del.ts +++ b/src/app/api/[[...slugs]]/_lib/kesehatan/penanganan-darurat/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; -import fs from "fs/promises"; import { Context } from "elysia"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const penangananDaruratDelete = async (context: Context) => { const id = context.params?.id as string; @@ -27,11 +26,7 @@ const penangananDaruratDelete = async (context: Context) => { // Hapus file gambar dari filesystem jika ada if (penangananDarurat.image) { try { - const filePath = path.join( - penangananDarurat.image.path, - penangananDarurat.image.name - ); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${penangananDarurat.image.path}/${penangananDarurat.image.name}`); await prisma.fileStorage.delete({ where: { id: penangananDarurat.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/kesehatan/penanganan-darurat/updt.ts b/src/app/api/[[...slugs]]/_lib/kesehatan/penanganan-darurat/updt.ts index 53acac3c..fccac538 100644 --- a/src/app/api/[[...slugs]]/_lib/kesehatan/penanganan-darurat/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/kesehatan/penanganan-darurat/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.PenangananDaruratGetPayload<{ select: { @@ -58,8 +57,7 @@ export default async function penangananDaruratUpdate(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/kesehatan/posyandu/del.ts b/src/app/api/[[...slugs]]/_lib/kesehatan/posyandu/del.ts index d5aa434c..555012f4 100644 --- a/src/app/api/[[...slugs]]/_lib/kesehatan/posyandu/del.ts +++ b/src/app/api/[[...slugs]]/_lib/kesehatan/posyandu/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; -import fs from "fs/promises"; import { Context } from "elysia"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const posyanduDelete = async (context: Context) => { const id = context.params?.id as string; @@ -28,8 +27,7 @@ const posyanduDelete = async (context: Context) => { // Hapus file gambar dari filesystem jika ada if (posyandu.image) { try { - const filePath = path.join(posyandu.image.path, posyandu.image.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${posyandu.image.path}/${posyandu.image.name}`); await prisma.fileStorage.delete({ where: { id: posyandu.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/kesehatan/posyandu/updt.ts b/src/app/api/[[...slugs]]/_lib/kesehatan/posyandu/updt.ts index 238301e8..9c400e15 100644 --- a/src/app/api/[[...slugs]]/_lib/kesehatan/posyandu/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/kesehatan/posyandu/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.PosyanduGetPayload<{ select: { @@ -63,8 +62,7 @@ export default async function posyanduUpdate(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/kesehatan/program-kesehatan/del.ts b/src/app/api/[[...slugs]]/_lib/kesehatan/program-kesehatan/del.ts index 7eccaa36..ede9d6e2 100644 --- a/src/app/api/[[...slugs]]/_lib/kesehatan/program-kesehatan/del.ts +++ b/src/app/api/[[...slugs]]/_lib/kesehatan/program-kesehatan/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; -import fs from "fs/promises"; import { Context } from "elysia"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const programKesehatanDelete = async (context: Context) => { const id = context.params?.id as string; @@ -28,8 +27,7 @@ const programKesehatanDelete = async (context: Context) => { // Hapus file gambar dari filesystem jika ada if (programKesehatan.image) { try { - const filePath = path.join(programKesehatan.image.path, programKesehatan.image.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${programKesehatan.image.path}/${programKesehatan.image.name}`); await prisma.fileStorage.delete({ where: { id: programKesehatan.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/kesehatan/program-kesehatan/updt.ts b/src/app/api/[[...slugs]]/_lib/kesehatan/program-kesehatan/updt.ts index 0033b87c..f7220d74 100644 --- a/src/app/api/[[...slugs]]/_lib/kesehatan/program-kesehatan/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/kesehatan/program-kesehatan/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.ProgramKesehatanGetPayload<{ select: { @@ -61,8 +60,7 @@ export default async function programKesehatanUpdate(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/kesehatan/puskesmas/del.ts b/src/app/api/[[...slugs]]/_lib/kesehatan/puskesmas/del.ts index 7809dffe..72be5a98 100644 --- a/src/app/api/[[...slugs]]/_lib/kesehatan/puskesmas/del.ts +++ b/src/app/api/[[...slugs]]/_lib/kesehatan/puskesmas/del.ts @@ -1,7 +1,6 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; const puskesmasDelete = async (context: Context) => { const id = context.params?.id as string; @@ -27,8 +26,7 @@ const puskesmasDelete = async (context: Context) => { if (puskesmas.image) { try { - const filePath = path.join(puskesmas.image.path, puskesmas.image.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${puskesmas.image.path}/${puskesmas.image.name}`); await prisma.fileStorage.delete({ where: { id: puskesmas.image.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/kesehatan/puskesmas/updt.ts b/src/app/api/[[...slugs]]/_lib/kesehatan/puskesmas/updt.ts index e8ba06f0..4fa2bde4 100644 --- a/src/app/api/[[...slugs]]/_lib/kesehatan/puskesmas/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/kesehatan/puskesmas/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.PuskesmasGetPayload<{ select: { @@ -65,8 +64,7 @@ export default async function puskesmasUpdate(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/landing_page/profile/pejabat-desa/updt.ts b/src/app/api/[[...slugs]]/_lib/landing_page/profile/pejabat-desa/updt.ts index c09fb0c3..b88f6e33 100644 --- a/src/app/api/[[...slugs]]/_lib/landing_page/profile/pejabat-desa/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/landing_page/profile/pejabat-desa/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; import { Context } from "elysia"; -import fs from "fs/promises"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.PejabatDesaGetPayload<{ select: { @@ -62,8 +61,7 @@ export default async function pejabatDesaUpdate(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); diff --git a/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/pegawai/updt.ts b/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/pegawai/updt.ts index 8ed3bb8c..e2ad9915 100644 --- a/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/pegawai/updt.ts +++ b/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/pegawai/updt.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Prisma } from "@prisma/client"; import { Context } from "elysia"; -import fs from "fs/promises"; -import path from "path"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.PegawaiPPIDGetPayload<{ select: { @@ -80,13 +79,12 @@ export default async function pegawaiUpdate(context: Context) { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }); } catch (error) { - console.error("Gagal hapus gambar lama:", error); + console.error("Gagal hapus gambar lama dari MinIO/DB:", error); } } } diff --git a/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/update.ts b/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/update.ts index 6af97693..a9f1af06 100644 --- a/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/update.ts +++ b/src/app/api/[[...slugs]]/_lib/ppid/struktur_ppid/update.ts @@ -1,8 +1,7 @@ import prisma from "@/lib/prisma"; import { Context } from "elysia"; -import path from "path"; -import fs from "fs/promises"; import { Prisma } from "@prisma/client"; +import minio, { MINIO_BUCKET } from "@/lib/minio"; type FormUpdate = Prisma.StrukturPPIDGetPayload<{ select: { @@ -62,13 +61,12 @@ try { const oldImage = existing.image; if (oldImage) { try { - const filePath = path.join(oldImage.path, oldImage.name); - await fs.unlink(filePath); + await minio.removeObject(MINIO_BUCKET, `${oldImage.path}/${oldImage.name}`); await prisma.fileStorage.delete({ where: { id: oldImage.id }, }) } catch (error) { - console.error("Gagal hapus gambar lama:", error); + console.error("Gagal hapus gambar lama dari MinIO/DB:", error); } } }