This commit is contained in:
bipproduction
2025-10-12 21:49:54 +08:00
parent 86d5b435f7
commit 9850fab34d
44 changed files with 8533 additions and 2108 deletions

View File

@@ -50,7 +50,7 @@ export async function convertOpenApiToMcp(baseUrl: string): Promise<McpManifest>
for (const [method, def] of Object.entries<any>(methods)) {
const tags = def.tags || ["default"]
const tag = tags[0]
const operationId = def.operationId || `${method}_${path.replace(/[\/{}]/g, "_")}`
const operationId = def.operationId || `${method}_${path.replace(/\//g, "_")}`
manifest.capabilities[tag] ??= {}

View File

@@ -16,7 +16,7 @@ type JWT = {
const ApiKeyRoute = new Elysia({
prefix: '/apikey',
detail: { tags: ['apikey'] },
tags: ["apikey"],
})
.post(
'/create',

View File

@@ -2,9 +2,7 @@
import { jwt as jwtPlugin, type JWTPayloadSpec } from '@elysiajs/jwt'
import Elysia, { t, type Cookie, type HTTPHeaders, type StatusMap } from 'elysia'
import { type ElysiaCookie } from 'elysia/cookies'
import { prisma } from '@/server/lib/prisma'
import type { User } from 'generated/prisma'
const secret = process.env.JWT_SECRET
if (!secret) {
@@ -109,7 +107,7 @@ async function login({
const Auth = new Elysia({
prefix: '/auth',
detail: { description: 'Auth API', summary: 'Auth API', tags: ['auth'] },
tags: ["auth"],
})
.use(
jwtPlugin({

View File

@@ -2,7 +2,8 @@ import Elysia, { t } from "elysia";
import { prisma } from "../lib/prisma";
const CredentialRoute = new Elysia({
prefix: "/credential"
prefix: "/credential",
tags: ["credential"],
})
.post("/create", async (ctx) => {
const { name, value } = ctx.body
@@ -26,7 +27,7 @@ const CredentialRoute = new Elysia({
description: 'create credential',
}
})
.get("/list", async (ctx) => {
.get("/list", async () => {
const list = await prisma.credential.findMany()
return {
message: "success",
@@ -40,7 +41,7 @@ const CredentialRoute = new Elysia({
})
.delete("/rm", async (ctx) => {
const { id } = ctx.body
const rm = await prisma.credential.delete({
await prisma.credential.delete({
where: {
id: id
}

View File

@@ -5,34 +5,6 @@ const url = "https://cld-dkr-makuro-seafile.wibudev.com/api2"
const TOKEN = "fa49bf1774cad2ec89d2882ae2c6ac1f5d7df445"
const REPO_ID = "de64ff3c-0081-45f3-a5a6-6c799a098649"
const pengaduanDesa: string[] = [
"Pengaduan Pelayanan Publik Desa",
"Pengaduan Bantuan Sosial (Bansos)",
"Pengaduan Penyalahgunaan Dana Desa",
"Pengaduan Infrastruktur Rusak (jalan, jembatan, saluran air)",
"Pengaduan Lingkungan (sampah, pencemaran, banjir)",
"Pengaduan Keamanan dan Ketertiban",
"Pengaduan Sengketa Tanah Desa",
"Pengaduan Ketenagakerjaan (tenaga kerja lokal, proyek desa)",
"Pengaduan Disiplin Aparat Desa",
"Pengaduan Administrasi Kependudukan (KTP, KK, surat menyurat)",
"Pengaduan Layanan Kesehatan Masyarakat",
"Pengaduan Pendidikan (sekolah, bantuan siswa miskin)",
"Pengaduan Usaha Mikro dan UMKM Desa",
"Pengaduan Kegiatan Bumdes",
"Pengaduan Pungutan Liar atau Gratifikasi",
"Pengaduan Kekerasan Rumah Tangga atau Sosial",
"Pengaduan Pelanggaran Adat dan Norma Sosial",
"Pengaduan Proyek Pembangunan Tidak Transparan",
"Pengaduan Bencana Alam dan Penanganannya",
"Pengaduan Diskriminasi atau Ketidakadilan Sosial",
"Pengaduan Pelanggaran Hak Tanah Kas Desa",
"Pengaduan Penyaluran Air dan Irigasi",
"Pengaduan Akses Internet atau Telekomunikasi Desa",
"Pengaduan Fasilitas Umum Tidak Layak",
"Pengaduan Kegiatan Tidak Berizin di Wilayah Desa"
] as const;
const DarmasabaRoute = new Elysia({
prefix: "/darmasaba",

View File

@@ -0,0 +1,52 @@
import Elysia, { t } from "elysia";
const layanan = `
KTP
Kartu Keluarga
surat keterangan domisili
surat pengantar nikah
akta kelahiran
akta kematian
surat pindah penduduk
surat keterangan usaha
surat keterangan tidak mampu
surat keterangan waris
surat perizinan usaha kecil
`
const LayananRoute = new Elysia({
prefix: "layanan",
tags: ["layanan"],
})
.get("/list", () => {
return {
success: true,
data: layanan.split("\n")
}
}, {
detail: {
summary: "list",
description: "list layanan yang ada",
}
})
.post("create-ktp", () => {
return {
success: true,
data: ""
}
}, {
body: t.Object({
jenis: t.Union([
t.Literal("ktp"),
t.Literal("kk"),
]),
nama: t.String(),
deskripsi: t.String(),
}),
detail: {
summary: "create",
description: "create layanan",
}
})
export default LayananRoute

View File

@@ -0,0 +1,51 @@
import Elysia, { t } from "elysia";
import type { User } from "generated/prisma";
import { prisma } from "../lib/prisma";
const UserRoute = new Elysia({
prefix: "user",
tags: ["user"],
})
.get('/find', (ctx) => {
const { user } = ctx as any
return {
user: user as User
}
}, {
detail: {
summary: "find",
description: "find user",
}
})
.post("/upsert", async (ctx) => {
const { name, phone } = ctx.body
const upsert = await prisma.user.upsert({
where: {
phone
},
update: {
name
},
create: {
name,
phone
}
})
return {
success: true,
upsert
}
}, {
body: t.Object({
name: t.String({ minLength: 1, error: "name is required" }),
phone: t.String({ minLength: 1, error: "phone is required" })
}),
detail: {
summary: "upsert",
description: "upsert user",
}
})
export default UserRoute