Tampilan UI Admin PPID IKM & API
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import path from "path";
|
||||
import { Context } from "vm";
|
||||
import { Context } from "elysia";
|
||||
import fs from "fs/promises";
|
||||
|
||||
const potensiDesaDelete = async (context: Context) => {
|
||||
|
||||
@@ -11,17 +11,20 @@ type FormCreate = Prisma.GrafikBerdasarkanJenisKelaminGetPayload<{
|
||||
export default async function grafikBerdasarkanJenisKelaminCreate(context: Context) {
|
||||
const body = context.body as FormCreate;
|
||||
|
||||
await prisma.grafikBerdasarkanJenisKelamin.create({
|
||||
const created = await prisma.grafikBerdasarkanJenisKelamin.create({
|
||||
data: {
|
||||
perempuan: body.perempuan,
|
||||
laki: body.laki,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
perempuan: true,
|
||||
laki: true,
|
||||
}
|
||||
});
|
||||
return {
|
||||
success: true,
|
||||
message: "Success create grafik berdasarkan jenis kelamin",
|
||||
data: {
|
||||
...body,
|
||||
},
|
||||
data: created,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Context } from "elysia";
|
||||
|
||||
export default async function grafikBerdasarkanJenisKelaminDelete(context: Context) {
|
||||
const {id} = context.params as {id: string}
|
||||
|
||||
try {
|
||||
const existingData = await prisma.grafikBerdasarkanJenisKelamin.findUnique({
|
||||
where: {
|
||||
id: id,
|
||||
}
|
||||
})
|
||||
|
||||
if (!existingData) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
data: null,
|
||||
}
|
||||
}
|
||||
|
||||
await prisma.grafikBerdasarkanJenisKelamin.delete({
|
||||
where: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Data berhasil dihapus",
|
||||
data: {
|
||||
id: id,
|
||||
deleted: true,
|
||||
},
|
||||
}
|
||||
} catch (error) {
|
||||
return {
|
||||
success: false,
|
||||
message: error instanceof Error ? error.message : "Unknown error",
|
||||
data: null,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function grafikBerdasarakanJenisKelaminFindById(
|
||||
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.grafikBerdasarkanJenisKelamin.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,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
import Elysia, { t } from "elysia";
|
||||
import grafikBerdasarkanJenisKelaminCreate from "./create";
|
||||
import grafikBerdasarkanJenisKelaminFindMany from "./find-many";
|
||||
import grafikBerdasarakanJenisKelaminFindById from "./find-by-id";
|
||||
import grafikBerdasarakanJenisKelaminUpdate from "./update";
|
||||
import grafikBerdasarkanJenisKelaminDelete from "./del";
|
||||
|
||||
|
||||
const GrafikBerdasarkanJenisKelamin = new Elysia({
|
||||
@@ -8,10 +11,28 @@ const GrafikBerdasarkanJenisKelamin = new Elysia({
|
||||
tags: ["PPID/IKM/grafikberdasarkanjeniskelamin"],
|
||||
})
|
||||
.get("/find-many", grafikBerdasarkanJenisKelaminFindMany)
|
||||
.get("/:id", async (context) => {
|
||||
const response = await grafikBerdasarakanJenisKelaminFindById(new Request(context.request))
|
||||
return response
|
||||
})
|
||||
.put("/:id", grafikBerdasarakanJenisKelaminUpdate, {
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
body: t.Object({
|
||||
perempuan: t.String(),
|
||||
laki: t.String(),
|
||||
}),
|
||||
})
|
||||
.post("/create", grafikBerdasarkanJenisKelaminCreate, {
|
||||
body: t.Object({
|
||||
perempuan: t.String(),
|
||||
laki: t.String(),
|
||||
}),
|
||||
})
|
||||
.delete("/del/:id", grafikBerdasarkanJenisKelaminDelete, {
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
});
|
||||
export default GrafikBerdasarkanJenisKelamin;
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Context } from "elysia";
|
||||
|
||||
export default async function grafikBerdasarakanJenisKelaminUpdate(
|
||||
context: Context
|
||||
) {
|
||||
const id = context.params?.id;
|
||||
|
||||
if (!id) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Id tidak ditemukan",
|
||||
}
|
||||
}
|
||||
|
||||
const {perempuan, laki} = context.body as {
|
||||
perempuan: string;
|
||||
laki: string;
|
||||
}
|
||||
|
||||
const existing = await prisma.grafikBerdasarkanJenisKelamin.findUnique({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
})
|
||||
|
||||
if (!existing) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
}
|
||||
}
|
||||
|
||||
const updated = await prisma.grafikBerdasarkanJenisKelamin.update({
|
||||
where: {
|
||||
id
|
||||
},
|
||||
data: {
|
||||
perempuan: perempuan,
|
||||
laki: laki,
|
||||
},
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Data berhasil diupdate",
|
||||
data: updated,
|
||||
}
|
||||
}
|
||||
@@ -13,19 +13,24 @@ type FormCreate = Prisma.GrafikBerdasarkanUmurGetPayload<{
|
||||
export async function grafikBerdasarkanUmurCreate(context: Context) {
|
||||
const body = context.body as FormCreate;
|
||||
|
||||
await prisma.grafikBerdasarkanUmur.create({
|
||||
const created = await prisma.grafikBerdasarkanUmur.create({
|
||||
data: {
|
||||
remaja: body.remaja,
|
||||
dewasa: body.dewasa,
|
||||
orangtua: body.orangtua,
|
||||
lansia: body.lansia,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
remaja: true,
|
||||
dewasa: true,
|
||||
orangtua: true,
|
||||
lansia: true,
|
||||
}
|
||||
});
|
||||
return {
|
||||
success: true,
|
||||
message: "Success create grafik berdasarkan umur",
|
||||
data: {
|
||||
...body,
|
||||
},
|
||||
data: created,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
import prisma from "@/lib/prisma"
|
||||
import { Context } from "elysia"
|
||||
|
||||
export default async function grafikBerdasarkanUmurDelete(context: Context) {
|
||||
const {id} = context.params as {id: string}
|
||||
|
||||
try {
|
||||
const existingData = await prisma.grafikBerdasarkanUmur.findUnique({
|
||||
where: {
|
||||
id: id,
|
||||
}
|
||||
})
|
||||
|
||||
if (!existingData) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
data: null,
|
||||
}
|
||||
}
|
||||
|
||||
await prisma.grafikBerdasarkanUmur.delete({
|
||||
where: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Data berhasil dihapus",
|
||||
data: {
|
||||
id: id,
|
||||
deleted: true,
|
||||
},
|
||||
}
|
||||
} catch (error) {
|
||||
return {
|
||||
success: false,
|
||||
message: error instanceof Error ? error.message : "Unknown error",
|
||||
data: null,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function grafikBerdasarakanUmurFindById(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.grafikBerdasarkanUmur.findUnique({
|
||||
where: { id },
|
||||
});
|
||||
|
||||
if (!data) {
|
||||
return Response.json({
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
data: null,
|
||||
}, { status: 404 });
|
||||
}
|
||||
|
||||
return Response.json({
|
||||
success: true,
|
||||
message: "Berhasil mengambil data berdasarkan ID",
|
||||
data: data,
|
||||
}, { status: 200 });
|
||||
} catch (error) {
|
||||
console.error("Error fetching grafik berdasarkan umur:", error);
|
||||
return Response.json({
|
||||
success: false,
|
||||
message: error instanceof Error ? error.message : "Unknown error",
|
||||
}, { status: 500 });
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,42 @@
|
||||
import Elysia, { t } from "elysia";
|
||||
import { grafikBerdasarkanUmurFindMany } from "./find-many";
|
||||
import { grafikBerdasarkanUmurCreate } from "./create";
|
||||
import grafikBerdasarakanUmurUpdate from "./update";
|
||||
import grafikBerdasarakanUmurFindById from "./find-by-id";
|
||||
import grafikBerdasarkanUmurDelete from "./del";
|
||||
|
||||
const GrafikBerdasarkanUmur = new Elysia({
|
||||
prefix: "/grafikberdasarkanumur",
|
||||
tags: ["PPID/IKM/grafikberdasarkanumur"]
|
||||
prefix: "/grafikberdasarkanumur",
|
||||
tags: ["PPID/IKM/grafikberdasarkanumur"],
|
||||
})
|
||||
.get("/find-many", grafikBerdasarkanUmurFindMany)
|
||||
.post("/create", grafikBerdasarkanUmurCreate, {
|
||||
body: t.Object({
|
||||
remaja: t.String(),
|
||||
dewasa: t.String(),
|
||||
orangtua: t.String(),
|
||||
lansia: t.String(),
|
||||
}),
|
||||
});
|
||||
.get("/find-many", grafikBerdasarkanUmurFindMany)
|
||||
.post("/create", grafikBerdasarkanUmurCreate, {
|
||||
body: t.Object({
|
||||
remaja: t.String(),
|
||||
dewasa: t.String(),
|
||||
orangtua: t.String(),
|
||||
lansia: t.String(),
|
||||
}),
|
||||
})
|
||||
.get("/:id", async (context) => {
|
||||
const response = await grafikBerdasarakanUmurFindById(new Request(context.request))
|
||||
return response
|
||||
})
|
||||
.put("/:id", grafikBerdasarakanUmurUpdate, {
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
body: t.Object({
|
||||
remaja: t.String(),
|
||||
dewasa: t.String(),
|
||||
orangtua: t.String(),
|
||||
lansia: t.String(),
|
||||
}),
|
||||
})
|
||||
.delete("/del/:id", grafikBerdasarkanUmurDelete, {
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
});
|
||||
|
||||
export default GrafikBerdasarkanUmur;
|
||||
export default GrafikBerdasarkanUmur;
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Context } from "elysia";
|
||||
|
||||
export default async function grafikBerdasarakanUmurUpdate(context: Context) {
|
||||
const id = context.params?.id;
|
||||
|
||||
if (!id) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Id tidak ditemukan",
|
||||
}
|
||||
}
|
||||
|
||||
const {remaja, dewasa, orangtua, lansia} = context.body as {
|
||||
remaja: string;
|
||||
dewasa: string;
|
||||
orangtua: string;
|
||||
lansia: string;
|
||||
}
|
||||
|
||||
const existing = await prisma.grafikBerdasarkanUmur.findUnique({
|
||||
where: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
|
||||
if (!existing) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Grafik tidak ditemukan"
|
||||
}
|
||||
}
|
||||
|
||||
const updated = await prisma.grafikBerdasarkanUmur.update({
|
||||
where: {
|
||||
id: id
|
||||
},
|
||||
data: {
|
||||
remaja: remaja,
|
||||
dewasa: dewasa,
|
||||
orangtua: orangtua,
|
||||
lansia: lansia,
|
||||
},
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Data berhasil diupdate",
|
||||
data: updated,
|
||||
}
|
||||
}
|
||||
@@ -11,17 +11,20 @@ type FormCreate = Prisma.IndeksKepuasanMasyarakatGetPayload<{
|
||||
export default async function grafikHasilKepuasanMasyarakatCreate(context: Context) {
|
||||
const body = context.body as FormCreate;
|
||||
|
||||
await prisma.indeksKepuasanMasyarakat.create({
|
||||
const created = await prisma.indeksKepuasanMasyarakat.create({
|
||||
data: {
|
||||
label: body.label,
|
||||
kepuasan: body.kepuasan,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
label: true,
|
||||
kepuasan: true,
|
||||
}
|
||||
});
|
||||
return {
|
||||
success: true,
|
||||
message: "Success create grafik hasil kepuasan masyarakat",
|
||||
data: {
|
||||
...body,
|
||||
},
|
||||
data: created,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
import prisma from "@/lib/prisma"
|
||||
import { Context } from "elysia"
|
||||
|
||||
export default async function grafikHasilKepuasanMasyarakatDelete(context: Context) {
|
||||
const {id} = context.params as {id: string}
|
||||
|
||||
try {
|
||||
const existingData = await prisma.indeksKepuasanMasyarakat.findUnique({
|
||||
where: {
|
||||
id: id,
|
||||
}
|
||||
})
|
||||
|
||||
if (!existingData) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
data: null,
|
||||
}
|
||||
}
|
||||
|
||||
await prisma.indeksKepuasanMasyarakat.delete({
|
||||
where: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Data berhasil dihapus",
|
||||
data: {
|
||||
id: id,
|
||||
deleted: true,
|
||||
},
|
||||
}
|
||||
} catch (error) {
|
||||
return {
|
||||
success: false,
|
||||
message: error instanceof Error ? error.message : "Unknown error",
|
||||
data: null,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function handler(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.indeksKepuasanMasyarakat.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 });
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,38 @@
|
||||
import Elysia, { t } from "elysia";
|
||||
import grafikHasilKepuasanMasyarakatCreate from "./create";
|
||||
import grafikHasilKepuasanMasyarakatFindMany from "./find-many";
|
||||
import grafikHasilKepuasanMasyarakatFindById from "./find-by-id";
|
||||
import grafikHasilKepuasanMasyarakatUpdate from "./update";
|
||||
import grafikHasilKepuasanMasyarakatDelete from "./del";
|
||||
|
||||
const GrafikHasilKepuasanMasyarakat = new Elysia({
|
||||
prefix: "/grafikhasilkepuasamanmasyarakat",
|
||||
tags: ["PPID/IKM/grafikhasilkepuasanmasyarakat"],
|
||||
})
|
||||
.get("/find-many", grafikHasilKepuasanMasyarakatFindMany)
|
||||
.get("/:id", async (context) => {
|
||||
const response = await grafikHasilKepuasanMasyarakatFindById(new Request(context.request))
|
||||
return response
|
||||
})
|
||||
.put("/:id", grafikHasilKepuasanMasyarakatUpdate, {
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
body: t.Object({
|
||||
label: t.String(),
|
||||
kepuasan: t.String(),
|
||||
}),
|
||||
})
|
||||
.post("/create", grafikHasilKepuasanMasyarakatCreate, {
|
||||
body: t.Object({
|
||||
label: t.String(),
|
||||
kepuasan: t.String(),
|
||||
}),
|
||||
})
|
||||
.delete("/del/:id", grafikHasilKepuasanMasyarakatDelete, {
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
});
|
||||
|
||||
export default GrafikHasilKepuasanMasyarakat;
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Context } from "elysia";
|
||||
|
||||
export default async function grafikHasilKepuasanMasyarakatUpdate(context: Context) {
|
||||
const id = context.params?.id;
|
||||
|
||||
if (!id) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Id tidak ditemukan",
|
||||
}
|
||||
}
|
||||
|
||||
const {label, kepuasan} = context.body as {
|
||||
label: string;
|
||||
kepuasan: string;
|
||||
}
|
||||
|
||||
const existing = await prisma.indeksKepuasanMasyarakat.findUnique({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
})
|
||||
|
||||
if (!existing) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
}
|
||||
}
|
||||
|
||||
const updated = await prisma.indeksKepuasanMasyarakat.update({
|
||||
where: { id },
|
||||
data: {
|
||||
label,
|
||||
kepuasan,
|
||||
},
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Data berhasil diupdate",
|
||||
data: updated,
|
||||
}
|
||||
}
|
||||
@@ -2,30 +2,16 @@ import prisma from "@/lib/prisma";
|
||||
import { Prisma } from "@prisma/client";
|
||||
import { Context } from "elysia";
|
||||
|
||||
type FormCreate = Prisma.GrafikBerdasarkanRespondenGetPayload<{
|
||||
select: {
|
||||
sangatbaik: true;
|
||||
baik: true;
|
||||
kurangbaik: true;
|
||||
tidakbaik: true
|
||||
};
|
||||
}>;
|
||||
export default async function grafikRespondenCreate(context: Context) {
|
||||
const body = context.body as FormCreate;
|
||||
const body = context.body as Prisma.GrafikBerdasarkanRespondenCreateInput;
|
||||
|
||||
await prisma.grafikBerdasarkanResponden.create({
|
||||
data: {
|
||||
sangatbaik: body.sangatbaik,
|
||||
baik: body.baik,
|
||||
kurangbaik: body.kurangbaik,
|
||||
tidakbaik: body.tidakbaik,
|
||||
},
|
||||
const created = await prisma.grafikBerdasarkanResponden.create({
|
||||
data: body,
|
||||
});
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Success create grafik berdasarkan responden",
|
||||
data: {
|
||||
...body,
|
||||
},
|
||||
data: created, // ini termasuk id
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
import prisma from "@/lib/prisma"
|
||||
import { Context } from "elysia"
|
||||
|
||||
export default async function grafikRespondenDelete(context: Context) {
|
||||
const { id } = context.params as { id: string }
|
||||
|
||||
try {
|
||||
const existingData = await prisma.grafikBerdasarkanResponden.findUnique({
|
||||
where: {
|
||||
id: id,
|
||||
}
|
||||
})
|
||||
|
||||
if (!existingData) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
data: null,
|
||||
}
|
||||
}
|
||||
|
||||
await prisma.grafikBerdasarkanResponden.delete({
|
||||
where: {
|
||||
id: id
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Data berhasil dihapus",
|
||||
data: null,
|
||||
}
|
||||
} catch (error) {
|
||||
return {
|
||||
success: false,
|
||||
message: error instanceof Error ? error.message : "Unknown error",
|
||||
data: null,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
|
||||
export default async function grafikRespondenFindById(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.grafikBerdasarkanResponden.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,
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,29 @@
|
||||
import Elysia, { t } from "elysia";
|
||||
import grafikRespondenCreate from "./create";
|
||||
import grafikRespondenFindMany from "./find-many";
|
||||
import grafikRespondenFindById from "./find-by-id";
|
||||
import grafikRespondenUpdate from "./update";
|
||||
import grafikRespondenDelete from "./del";
|
||||
|
||||
const GrafikBerdasarkanResponden = new Elysia({
|
||||
prefix: "/grafikberdasarkanresponden",
|
||||
tags: ["PPID/IKM/grafikberdasarkanresponden"]
|
||||
})
|
||||
.get("/:id", async (context) => {
|
||||
const response = await grafikRespondenFindById(new Request(context.request))
|
||||
return response
|
||||
})
|
||||
.put("/:id", grafikRespondenUpdate, {
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
body: t.Object({
|
||||
sangatbaik: t.String(),
|
||||
baik: t.String(),
|
||||
kurangbaik: t.String(),
|
||||
tidakbaik: t.String(),
|
||||
}),
|
||||
})
|
||||
.get("/find-many", grafikRespondenFindMany)
|
||||
.post("/create", grafikRespondenCreate, {
|
||||
body: t.Object({
|
||||
@@ -15,6 +33,11 @@ const GrafikBerdasarkanResponden = new Elysia({
|
||||
tidakbaik: t.String(),
|
||||
}),
|
||||
})
|
||||
.delete("/del/:id", grafikRespondenDelete, {
|
||||
params: t.Object({
|
||||
id: t.String(),
|
||||
}),
|
||||
})
|
||||
|
||||
|
||||
export default GrafikBerdasarkanResponden
|
||||
@@ -0,0 +1,49 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { Context } from "elysia";
|
||||
|
||||
export default async function grafikRespondenUpdate(context: Context) {
|
||||
const id = context.params?.id;
|
||||
|
||||
if(!id) {
|
||||
return {
|
||||
success: false,
|
||||
message: "ID tidak ditemukan"
|
||||
}
|
||||
}
|
||||
|
||||
const {sangatbaik, baik, kurangbaik, tidakbaik} = context.body as {
|
||||
sangatbaik: string;
|
||||
baik: string;
|
||||
kurangbaik: string;
|
||||
tidakbaik: string;
|
||||
}
|
||||
|
||||
const existing = await prisma.grafikBerdasarkanResponden.findUnique({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
})
|
||||
|
||||
if (!existing) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Data tidak ditemukan",
|
||||
}
|
||||
}
|
||||
|
||||
const updated = await prisma.grafikBerdasarkanResponden.update({
|
||||
where: { id },
|
||||
data: {
|
||||
sangatbaik,
|
||||
baik,
|
||||
kurangbaik,
|
||||
tidakbaik,
|
||||
},
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Data berhasil diupdate",
|
||||
data: updated,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user