tambahan
This commit is contained in:
@@ -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] ??= {}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ type JWT = {
|
||||
|
||||
const ApiKeyRoute = new Elysia({
|
||||
prefix: '/apikey',
|
||||
detail: { tags: ['apikey'] },
|
||||
tags: ["apikey"],
|
||||
})
|
||||
.post(
|
||||
'/create',
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
52
src/server/routes/layanan_route.ts
Normal file
52
src/server/routes/layanan_route.ts
Normal 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
|
||||
51
src/server/routes/user_route.ts
Normal file
51
src/server/routes/user_route.ts
Normal 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
|
||||
Reference in New Issue
Block a user