Files
jenna-mcp/src/index.tsx
amal 487395bdb3 upd: notif warga
Deskripsi:
- tolak pengaduan
- terima pengaduan
- kerjakan pengaduan
- pengaduan selesai

NO Issues
2026-01-02 14:52:00 +08:00

88 lines
2.5 KiB
TypeScript

import cors from "@elysiajs/cors";
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 ConfigurationDesaRoute from "./server/routes/configuration_desa_route";
import CredentialRoute from "./server/routes/credential_route";
import DarmasabaRoute from "./server/routes/darmasaba_route";
import DashboardRoute from "./server/routes/dashboard_route";
import LayananRoute from "./server/routes/layanan_route";
import { MCPRoute } from "./server/routes/mcp_route";
import PelayananRoute from "./server/routes/pelayanan_surat_route";
import PengaduanRoute from "./server/routes/pengaduan_route";
import SendWaRoute from "./server/routes/send_wa_route";
import SuratRoute from "./server/routes/surat_route";
import TestPengaduanRoute from "./server/routes/test_pengaduan";
import UserRoute from "./server/routes/user_route";
import WargaRoute from "./server/routes/warga_route";
const Docs = new Elysia({
tags: ["docs"],
}).use(
Swagger({
path: "/docs",
}),
);
const Api = new Elysia({
prefix: "/api",
tags: ["api"],
})
.use(DashboardRoute)
.use(PengaduanRoute)
.use(PelayananRoute)
.use(ConfigurationDesaRoute)
.use(WargaRoute)
.use(SuratRoute)
.use(TestPengaduanRoute)
.use(apiAuth)
.use(ApiKeyRoute)
.use(DarmasabaRoute)
.use(CredentialRoute)
.use(UserRoute)
.use(LayananRoute)
.use(AduanRoute)
.use(SendWaRoute);
const app = new Elysia()
.use(Api)
.use(Docs)
.use(Auth)
.use(
cors({
origin: "*",
methods: ["GET", "POST", "OPTIONS"],
allowedHeaders: ["Content-Type"],
}),
)
.get(
"/.well-known/mcp.json",
async () => {
const baseUrl = process.env.BUN_PUBLIC_BASE_URL!;
return await convertOpenApiToMcp(baseUrl);
},
{
detail: {
description: "MCP manifest",
tags: ["MCP"],
},
},
)
.use(MCPRoute)
.get("/*", html)
.onRequest(({ set }) => {
set.headers["Access-Control-Allow-Origin"] = "*";
set.headers["Access-Control-Allow-Methods"] = "GET, POST, OPTIONS";
set.headers["Access-Control-Allow-Headers"] = "Content-Type";
})
.listen(3000, () => {
console.log("Server running at http://localhost:3000");
});
export type ServerApp = typeof app;