Merge pull request 'upd: api jenna ai' (#76) from amalia/12-des-25 into main
Reviewed-on: http://wibugit.wibudev.com/wibu/jenna-mcp/pulls/76
This commit is contained in:
@@ -728,6 +728,170 @@ const PelayananRoute = new Elysia({
|
||||
detail: {
|
||||
summary: "Update Status Pengajuan Pelayanan Surat",
|
||||
description: `tool untuk update status pengajuan pelayanan surat`,
|
||||
}
|
||||
})
|
||||
.post("/update", async ({ body }) => {
|
||||
const { nomerPengajuan, syaratDokumen, dataText } = body
|
||||
let dataUpdate = []
|
||||
|
||||
const pengajuan = await prisma.pelayananAjuan.findFirst({
|
||||
where: {
|
||||
noPengajuan: nomerPengajuan,
|
||||
}
|
||||
})
|
||||
|
||||
if (!pengajuan) {
|
||||
return { success: false, message: 'data pengajuan surat tidak ditemukan' }
|
||||
}
|
||||
|
||||
if (dataText && dataText.length > 0) {
|
||||
for (const item of dataText) {
|
||||
dataUpdate.push(item.jenis)
|
||||
const hasil = await prisma.dataTextPelayanan.findFirst({
|
||||
where: {
|
||||
idPengajuanLayanan: pengajuan.id,
|
||||
jenis: item.jenis,
|
||||
}
|
||||
})
|
||||
|
||||
const upd = await prisma.dataTextPelayanan.upsert({
|
||||
where: {
|
||||
id: hasil?.id
|
||||
},
|
||||
update: {
|
||||
value: item.value,
|
||||
},
|
||||
create: {
|
||||
value: item.value,
|
||||
jenis: item.jenis,
|
||||
idPengajuanLayanan: pengajuan.id,
|
||||
idCategory: pengajuan.idCategory,
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (syaratDokumen && syaratDokumen.length > 0) {
|
||||
for (const item of syaratDokumen) {
|
||||
dataUpdate.push(item.jenis)
|
||||
const hasil = await prisma.syaratDokumenPelayanan.findFirst({
|
||||
where: {
|
||||
idPengajuanLayanan: pengajuan.id,
|
||||
jenis: item.jenis,
|
||||
}
|
||||
})
|
||||
|
||||
const upd = await prisma.syaratDokumenPelayanan.upsert({
|
||||
where: {
|
||||
id: hasil?.id
|
||||
},
|
||||
update: {
|
||||
value: item.value,
|
||||
},
|
||||
create: {
|
||||
value: item.value,
|
||||
jenis: item.jenis,
|
||||
idPengajuanLayanan: pengajuan.id,
|
||||
idCategory: pengajuan.idCategory,
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
const keys = dataUpdate.join(", ");
|
||||
|
||||
if (pengajuan.status != "ditolak" && pengajuan.status != "antrian") {
|
||||
return { success: false, message: 'pengajuan surat tidak dapat diupdate karena status ' + pengajuan.status }
|
||||
}
|
||||
|
||||
if (pengajuan.status == "ditolak") {
|
||||
const updStatus = await prisma.pelayananAjuan.update({
|
||||
where: {
|
||||
id: pengajuan.id,
|
||||
},
|
||||
data: {
|
||||
status: "antrian",
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const history = await prisma.historyPelayanan.create({
|
||||
data: {
|
||||
idPengajuanLayanan: pengajuan.id,
|
||||
deskripsi: `Pengajuan surat diupdate oleh warga (data yg diupdate: ${keys})`,
|
||||
status: "antrian",
|
||||
}
|
||||
})
|
||||
|
||||
return { success: true, message: 'pengajuan surat sudah diperbarui' }
|
||||
|
||||
}, {
|
||||
body: t.Object({
|
||||
nomerPengajuan: t.String({
|
||||
error: "nomer pengajuan harus diisi",
|
||||
description: "Nomer pengajuan yang ingin diupdate"
|
||||
}),
|
||||
dataText: t.Optional(t.Array(
|
||||
t.Object({
|
||||
jenis: t.String({
|
||||
description: "Jenis field yang dibutuhkan oleh kategori pelayanan. Biasanya dinamis.",
|
||||
examples: ["nama", "jenis kelamin", "tempat tanggal lahir", "negara", "agama", "status perkawinan", "alamat", "pekerjaan", "jenis usaha", "alamat usaha"],
|
||||
error: "jenis harus diisi"
|
||||
}),
|
||||
value: t.String({
|
||||
description: "Isi atau nilai dari jenis field terkait.",
|
||||
examples: ["Budi Santoso", "Laki-laki", "Denpasar, 28 Februari 1990", "Indonesia", "Islam", "Belum menikah", "Jl. Mawar No. 10", "Karyawan Swasta", "usaha makanan", "Jl. Melati No. 21"],
|
||||
error: "value harus diisi"
|
||||
}),
|
||||
}),
|
||||
{
|
||||
description: "Kumpulan data text dinamis sesuai kategori layanan.",
|
||||
examples: [
|
||||
[
|
||||
{ jenis: "nama", value: "Budi Santoso" },
|
||||
{ jenis: "jenis kelamin", value: "Laki-laki" },
|
||||
{ jenis: "tempat tanggal lahir", value: "Denpasar, 28 Februari 1990" },
|
||||
{ jenis: "negara", value: "Indonesia" },
|
||||
{ jenis: "agama", value: "Islam" },
|
||||
{ jenis: "status perkawinan", value: "Belum menikah" },
|
||||
{ jenis: "alamat", value: "Jl. Mawar No. 10" },
|
||||
{ jenis: "pekerjaan", value: "Karyawan Swasta" },
|
||||
{ jenis: "jenis usaha", value: "usaha makanan" },
|
||||
{ jenis: "alamat usaha", value: "Jl. Melati No. 21" },
|
||||
]
|
||||
],
|
||||
}
|
||||
)),
|
||||
syaratDokumen: t.Optional(t.Array(
|
||||
t.Object({
|
||||
jenis: t.String({
|
||||
description: "Jenis dokumen persyaratan yang diminta oleh kategori layanan.",
|
||||
examples: ["ktp", "kk", "surat_pengantar_rt"],
|
||||
error: "jenis harus diisi"
|
||||
}),
|
||||
value: t.String({
|
||||
description: "Nama file atau identifier file dokumen yang diupload.",
|
||||
examples: ["ktp_budi.png", "kk_budi.png"],
|
||||
error: "value harus diisi"
|
||||
}),
|
||||
}),
|
||||
{
|
||||
description: "Kumpulan dokumen yang wajib diupload sesuai persyaratan layanan.",
|
||||
examples: [
|
||||
[
|
||||
{ jenis: "pengantar kelian", value: "pengantar_kelurahan_budi.png" },
|
||||
{ jenis: "ktp/kk", value: "kk_budi.png" },
|
||||
{ jenis: "foto lokasi", value: "foto_lokasi_budi.png" }
|
||||
]
|
||||
],
|
||||
}
|
||||
)),
|
||||
}),
|
||||
detail: {
|
||||
summary: "Update Data Pengajuan Pelayanan Surat",
|
||||
description: `tool untuk update data pengajuan pelayanan surat`,
|
||||
tags: ["mcp"]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -599,7 +599,6 @@ const PengaduanRoute = new Elysia({
|
||||
detail: {
|
||||
summary: "Upload File (FormData)",
|
||||
description: "Tool untuk upload file ke folder tujuan dengan memakai FormData",
|
||||
// tags: ["mcp"],
|
||||
consumes: ["multipart/form-data"]
|
||||
},
|
||||
})
|
||||
@@ -643,7 +642,6 @@ const PengaduanRoute = new Elysia({
|
||||
detail: {
|
||||
summary: "Upload File (FormData)",
|
||||
description: "Tool untuk upload file ke folder tujuan dengan memakai FormData",
|
||||
// tags: ["mcp"],
|
||||
consumes: ["multipart/form-data"]
|
||||
},
|
||||
})
|
||||
@@ -685,7 +683,6 @@ const PengaduanRoute = new Elysia({
|
||||
detail: {
|
||||
summary: "Upload File (Base64)",
|
||||
description: "Tool untuk upload file ke Seafile dalam format Base64",
|
||||
// tags: ["mcp"],
|
||||
consumes: ["multipart/form-data"]
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user