From 30fbed73c92cbc90cc64fe2c7a65cfc4adf6c613 Mon Sep 17 00:00:00 2001 From: nico Date: Fri, 24 Apr 2026 12:19:24 +0800 Subject: [PATCH] fix(admin): resolve 404 on kategoriProduk API and correct Valtio state endpoint mismatches - Created missing API endpoint - Corrected UMKM and Produk update/delete routes in Valtio state to match Elysia API: - UMKM Update: - UMKM Delete: - Produk Update: - Produk Delete: --- .../(dashboard)/_state/ekonomi/umkm/umkm.ts | 8 ++--- .../api/[[...slugs]]/_lib/ekonomi/index.ts | 2 ++ .../_lib/ekonomi/kategori-produk.ts | 31 +++++++++++++++++++ 3 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 src/app/api/[[...slugs]]/_lib/ekonomi/kategori-produk.ts diff --git a/src/app/admin/(dashboard)/_state/ekonomi/umkm/umkm.ts b/src/app/admin/(dashboard)/_state/ekonomi/umkm/umkm.ts index 64224734..fb5e0086 100644 --- a/src/app/admin/(dashboard)/_state/ekonomi/umkm/umkm.ts +++ b/src/app/admin/(dashboard)/_state/ekonomi/umkm/umkm.ts @@ -132,7 +132,7 @@ export const umkmState = proxy({ if (!cek.success) return toast.error("Cek kembali form anda"); this.loading = true; try { - const res = await fetch(`/api/ekonomi/umkm/update/${id}`, { + const res = await fetch(`/api/ekonomi/umkm/${id}`, { method: "PUT", headers: { "Content-Type": "application/json" }, body: JSON.stringify(this.form) @@ -157,7 +157,7 @@ export const umkmState = proxy({ async submit(id: string) { this.loading = true; try { - const res = await fetch(`/api/ekonomi/umkm/delete/${id}`, { + const res = await fetch(`/api/ekonomi/umkm/del/${id}`, { method: "DELETE" }); const result = await res.json(); @@ -263,7 +263,7 @@ export const umkmState = proxy({ if (!cek.success) return toast.error("Cek kembali form anda"); this.loading = true; try { - const res = await fetch(`/api/ekonomi/umkm/produk/update/${id}`, { + const res = await fetch(`/api/ekonomi/umkm/produk/${id}`, { method: "PUT", headers: { "Content-Type": "application/json" }, body: JSON.stringify(this.form) @@ -283,7 +283,7 @@ export const umkmState = proxy({ async submit(id: string) { this.loading = true; try { - const res = await fetch(`/api/ekonomi/umkm/produk/delete/${id}`, { + const res = await fetch(`/api/ekonomi/umkm/produk/del/${id}`, { method: "DELETE" }); const result = await res.json(); diff --git a/src/app/api/[[...slugs]]/_lib/ekonomi/index.ts b/src/app/api/[[...slugs]]/_lib/ekonomi/index.ts index dbb9c22c..42daa93f 100644 --- a/src/app/api/[[...slugs]]/_lib/ekonomi/index.ts +++ b/src/app/api/[[...slugs]]/_lib/ekonomi/index.ts @@ -9,6 +9,7 @@ import DemografiPekerjaan from "./demografi-pekerjaan"; import JumlahPengangguran from "./jumlah-pengangguran"; import PendapatanAsliDesa from "./pendapatan-asli-desa"; import StrukturOrganisasi from "./struktur-bumdes"; +import KategoriProduk from "./kategori-produk"; import Umkm from "./umkm"; import ProdukUmkm from "./umkm/produk"; import PenjualanProduk from "./umkm/penjualan"; @@ -21,6 +22,7 @@ const Ekonomi = new Elysia({ .use(LowonganKerja) .use(ProgramKemiskinan) .use(StrukturOrganisasi) +.use(KategoriProduk) .use(Umkm) .use(ProdukUmkm) .use(PenjualanProduk) diff --git a/src/app/api/[[...slugs]]/_lib/ekonomi/kategori-produk.ts b/src/app/api/[[...slugs]]/_lib/ekonomi/kategori-produk.ts new file mode 100644 index 00000000..3fd7fb26 --- /dev/null +++ b/src/app/api/[[...slugs]]/_lib/ekonomi/kategori-produk.ts @@ -0,0 +1,31 @@ +import prisma from "@/lib/prisma"; +import Elysia from "elysia"; + +const KategoriProduk = new Elysia({ + prefix: "/kategoriproduk", +}) + .get("/find-many-all", async () => { + try { + const data = await prisma.kategoriProduk.findMany({ + where: { + isActive: true, + deletedAt: null, + }, + orderBy: { nama: 'asc' }, + }); + + return { + success: true, + message: "Berhasil mengambil semua kategori produk", + data, + }; + } catch (e) { + console.error("Error di KategoriProduk find-many-all:", e); + return { + success: false, + message: "Gagal mengambil data kategori produk", + }; + } + }); + +export default KategoriProduk;