From 73bf785d13d44c0c16814246d8e8dbaa00a912fc Mon Sep 17 00:00:00 2001 From: amaliadwiy Date: Fri, 31 Oct 2025 12:09:31 +0800 Subject: [PATCH] upd: pelayanan Deskripsi : - api category pelayanan list - api category pelayanan create - api category pelayanan update - api category pelayanan delete No Issues --- src/index.tsx | 8 +- src/server/routes/pelayanan_surat_route.ts | 106 +++++++++++++++++++++ 2 files changed, 111 insertions(+), 3 deletions(-) create mode 100644 src/server/routes/pelayanan_surat_route.ts diff --git a/src/index.tsx b/src/index.tsx index eaf7d2b..10e4028 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,17 +1,18 @@ import Swagger from "@elysiajs/swagger"; import Elysia from "elysia"; import html from "./index.html"; +import { convertOpenApiToMcp } from "./server/lib/mcp-converter"; import { apiAuth } from "./server/middlewares/apiAuth"; +import AduanRoute from "./server/routes/aduan_route"; import ApiKeyRoute from "./server/routes/apikey_route"; import Auth from "./server/routes/auth_route"; import CredentialRoute from "./server/routes/credential_route"; import DarmasabaRoute from "./server/routes/darmasaba_route"; -import { convertOpenApiToMcp } from "./server/lib/mcp-converter"; -import UserRoute from "./server/routes/user_route"; import LayananRoute from "./server/routes/layanan_route"; -import AduanRoute from "./server/routes/aduan_route"; import { MCPRoute } from "./server/routes/mcp_route"; +import PelayananRoute from "./server/routes/pelayanan_surat_route"; import PengaduanRoute from "./server/routes/pengaduan_route"; +import UserRoute from "./server/routes/user_route"; const Docs = new Elysia({ tags: ["docs"], @@ -26,6 +27,7 @@ const Api = new Elysia({ tags: ["api"], }) .use(PengaduanRoute) + .use(PelayananRoute) .use(apiAuth) .use(ApiKeyRoute) .use(DarmasabaRoute) diff --git a/src/server/routes/pelayanan_surat_route.ts b/src/server/routes/pelayanan_surat_route.ts new file mode 100644 index 0000000..c6680f5 --- /dev/null +++ b/src/server/routes/pelayanan_surat_route.ts @@ -0,0 +1,106 @@ +import Elysia, { t } from "elysia" +import { prisma } from "../lib/prisma" + +const PelayananRoute = new Elysia({ + prefix: "pelayanan", + tags: ["pelayanan"], +}) + + // --- KATEGORI PELAYANAN --- + .get("/category", async () => { + const data = await prisma.categoryPelayanan.findMany({ + where: { + isActive: true + } + }) + return data + }, { + detail: { + summary: "List Kategori Pelayanan Surat", + description: `tool untuk mendapatkan list kategori pelayanan surat`, + tags: ["mcp"] + } + }) + .post("/category/create", async ({ body }) => { + const { name, syaratDokumen, dataText } = body + + await prisma.categoryPelayanan.create({ + data: { + name, + syaratDokumen, + dataText, + } + }) + + return ` + ${JSON.stringify(body)} + + kategori pelayanan surat sudah dibuat` + }, { + body: t.Object({ + name: t.String({ minLength: 1, error: "name harus diisi" }), + syaratDokumen: t.Array(t.String({ minLength: 1, error: "syaratDokumen harus diisi" })), + dataText: t.Array(t.String({ minLength: 1, error: "dataText harus diisi" })), + }), + detail: { + summary: "buat kategori pelayanan surat", + description: `tool untuk membuat kategori pelayanan surat` + } + }) + .post("/category/update", async ({ body }) => { + const { id, name, syaratDokumen, dataText } = body + + await prisma.categoryPelayanan.update({ + where: { + id, + }, + data: { + name, + syaratDokumen, + dataText, + } + }) + + return ` + ${JSON.stringify(body)} + + kategori pelayanan surat sudah diperbarui` + }, { + body: t.Object({ + id: t.String({ minLength: 1, error: "id harus diisi" }), + name: t.String({ minLength: 1, error: "name harus diisi" }), + syaratDokumen: t.Array(t.String({ minLength: 1, error: "syaratDokumen harus diisi" })), + dataText: t.Array(t.String({ minLength: 1, error: "dataText harus diisi" })), + }), + detail: { + summary: "update kategori pelayanan surat", + description: `tool untuk update kategori pelayanan surat` + } + }) + .post("/category/delete", async ({ body }) => { + const { id } = body + + await prisma.categoryPelayanan.update({ + where: { + id, + }, + data: { + isActive: false + } + }) + + return ` + ${JSON.stringify(body)} + + kategori pelayanan surat sudah dihapus` + }, { + body: t.Object({ + id: t.String({ minLength: 1, error: "id harus diisi" }), + }), + detail: { + summary: "delete kategori pelayanan surat", + description: `tool untuk delete kategori pelayanan surat` + } + }) + +export default PelayananRoute -- 2.49.1