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