UI & API Submenu Sektor Unggulan, Menu Ekonomi
This commit is contained in:
@@ -7,6 +7,7 @@ import StrukturOrganisasi from "./struktur-organisasi";
|
||||
import GrafikUsiaKerjaYangMenganggur from "./usia-kerja-yang-menganggur";
|
||||
import GrafikMenganggurBerdasarkanPendidikan from "./usia-kerja-yang-menganggur/pengangguran-berdasrkan-pendidikan";
|
||||
import JumlahPendudukMiskin from "./jumlah-penduduk-miskin";
|
||||
import SektorUnggulanDesa from "./sektor-unggulan-desa";
|
||||
|
||||
const Ekonomi = new Elysia({
|
||||
prefix: "/api/ekonomi",
|
||||
@@ -20,5 +21,6 @@ const Ekonomi = new Elysia({
|
||||
.use(GrafikUsiaKerjaYangMenganggur)
|
||||
.use(GrafikMenganggurBerdasarkanPendidikan)
|
||||
.use(JumlahPendudukMiskin)
|
||||
.use(SektorUnggulanDesa)
|
||||
|
||||
export default Ekonomi
|
||||
@@ -0,0 +1,33 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Prisma } from "@prisma/client";
|
||||
import { Context } from "elysia";
|
||||
|
||||
type FormCreate = Prisma.SektorUnggulanDesaGetPayload<{
|
||||
select: {
|
||||
name: true;
|
||||
description: true;
|
||||
value: true;
|
||||
}
|
||||
}>;
|
||||
export default async function sektorUnggulanDesaCreate(context: Context) {
|
||||
const body = context.body as FormCreate;
|
||||
|
||||
const created = await prisma.sektorUnggulanDesa.create({
|
||||
data: {
|
||||
name: body.name,
|
||||
description: body.description,
|
||||
value: body.value,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
name: true,
|
||||
description: true,
|
||||
value: true,
|
||||
}
|
||||
});
|
||||
return {
|
||||
success: true,
|
||||
message: "Success create sektor unggulan desa",
|
||||
data: created,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
import prisma from "@/lib/prisma"
|
||||
import { Context } from "elysia"
|
||||
|
||||
export default async function sektorUnggulanDesaDelete(context: Context) {
|
||||
const {id} = context.params as {id: string}
|
||||
|
||||
try {
|
||||
const existingData = await prisma.sektorUnggulanDesa.findUnique({
|
||||
where: {
|
||||
id: id,
|
||||
}
|
||||
})
|
||||
|
||||
if (!existingData) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
data: null,
|
||||
}
|
||||
}
|
||||
|
||||
await prisma.sektorUnggulanDesa.delete({
|
||||
where: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Data berhasil dihapus",
|
||||
data: {
|
||||
id: id,
|
||||
deleted: true,
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error deleting data:", error);
|
||||
return {
|
||||
success: false,
|
||||
message: "Gagal menghapus data",
|
||||
data: null,
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function sektorUnggulanDesaFindMany() {
|
||||
const res = await prisma.sektorUnggulanDesa.findMany();
|
||||
return {
|
||||
data: res,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function sektorUnggulanDesaFindUnique(request: Request) {
|
||||
const url = new URL(request.url);
|
||||
const pathSegments = url.pathname.split('/');
|
||||
const id = pathSegments[pathSegments.length - 1];
|
||||
|
||||
if (!id) {
|
||||
return Response.json({
|
||||
success: false,
|
||||
message: "ID tidak boleh kosong",
|
||||
}, { status: 400 });
|
||||
}
|
||||
|
||||
try {
|
||||
if (typeof id !== 'string') {
|
||||
return Response.json({
|
||||
success: false,
|
||||
message: "ID tidak valid",
|
||||
}, { status: 400 });
|
||||
}
|
||||
|
||||
const data = await prisma.sektorUnggulanDesa.findUnique({
|
||||
where: { id },
|
||||
});
|
||||
|
||||
if (!data) {
|
||||
return Response.json({
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
}, { status: 404 });
|
||||
}
|
||||
|
||||
return Response.json({
|
||||
success: true,
|
||||
message: "Berhasil mengambil data berdasarkan ID",
|
||||
data,
|
||||
}, { status: 200 });
|
||||
} catch (e) {
|
||||
console.error("Find by ID error:", e);
|
||||
return Response.json({
|
||||
success: false,
|
||||
message: "Gagal mengambil data: " + (e instanceof Error ? e.message : 'Unknown error'),
|
||||
}, { status: 500 });
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
import Elysia, { t } from "elysia";
|
||||
import sektorUnggulanDesaFindMany from "./findMany";
|
||||
import sektorUnggulanDesaFindUnique from "./findUnique";
|
||||
import sektorUnggulanDesaCreate from "./create";
|
||||
import sektorUnggulanDesaUpdate from "./updt";
|
||||
import sektorUnggulanDesaDelete from "./del";
|
||||
|
||||
const SektorUnggulanDesa = new Elysia({
|
||||
prefix: "/sektourunggulandesa",
|
||||
tags: ["Ekonomi/Sektor Unggulan Desa"],
|
||||
})
|
||||
.get("/find-many", sektorUnggulanDesaFindMany)
|
||||
.get("/:id", async (context) => {
|
||||
const response = await sektorUnggulanDesaFindUnique(new Request(context.request));
|
||||
return response;
|
||||
})
|
||||
.post("/create", sektorUnggulanDesaCreate, {
|
||||
body: t.Object({
|
||||
name: t.String(),
|
||||
description: t.String(),
|
||||
value: t.Number(),
|
||||
}),
|
||||
})
|
||||
.put("/:id", sektorUnggulanDesaUpdate, {
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
body: t.Object({
|
||||
name: t.String(),
|
||||
description: t.String(),
|
||||
value: t.Number(),
|
||||
}),
|
||||
})
|
||||
.delete("/del/:id", sektorUnggulanDesaDelete, {
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
});
|
||||
export default SektorUnggulanDesa;
|
||||
@@ -0,0 +1,49 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Context } from "elysia";
|
||||
|
||||
export default async function sektorUnggulanDesaUpdate(context: Context) {
|
||||
const id = context.params?.id;
|
||||
|
||||
if (!id) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Id tidak ditemukan",
|
||||
}
|
||||
}
|
||||
|
||||
const {name, description, value} = context.body as {
|
||||
name: string;
|
||||
description: string;
|
||||
value: number;
|
||||
}
|
||||
|
||||
const existing = await prisma.sektorUnggulanDesa.findUnique({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
})
|
||||
|
||||
if (!existing) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
}
|
||||
}
|
||||
|
||||
const updated = await prisma.sektorUnggulanDesa.update({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
data: {
|
||||
name,
|
||||
description,
|
||||
value,
|
||||
},
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Data berhasil diupdate",
|
||||
data: updated,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user