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: {
|
detail: {
|
||||||
summary: "Update Status Pengajuan Pelayanan Surat",
|
summary: "Update Status Pengajuan Pelayanan Surat",
|
||||||
description: `tool untuk 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"]
|
tags: ["mcp"]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -599,7 +599,6 @@ const PengaduanRoute = new Elysia({
|
|||||||
detail: {
|
detail: {
|
||||||
summary: "Upload File (FormData)",
|
summary: "Upload File (FormData)",
|
||||||
description: "Tool untuk upload file ke folder tujuan dengan memakai FormData",
|
description: "Tool untuk upload file ke folder tujuan dengan memakai FormData",
|
||||||
// tags: ["mcp"],
|
|
||||||
consumes: ["multipart/form-data"]
|
consumes: ["multipart/form-data"]
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@@ -643,7 +642,6 @@ const PengaduanRoute = new Elysia({
|
|||||||
detail: {
|
detail: {
|
||||||
summary: "Upload File (FormData)",
|
summary: "Upload File (FormData)",
|
||||||
description: "Tool untuk upload file ke folder tujuan dengan memakai FormData",
|
description: "Tool untuk upload file ke folder tujuan dengan memakai FormData",
|
||||||
// tags: ["mcp"],
|
|
||||||
consumes: ["multipart/form-data"]
|
consumes: ["multipart/form-data"]
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@@ -685,7 +683,6 @@ const PengaduanRoute = new Elysia({
|
|||||||
detail: {
|
detail: {
|
||||||
summary: "Upload File (Base64)",
|
summary: "Upload File (Base64)",
|
||||||
description: "Tool untuk upload file ke Seafile dalam format Base64",
|
description: "Tool untuk upload file ke Seafile dalam format Base64",
|
||||||
// tags: ["mcp"],
|
|
||||||
consumes: ["multipart/form-data"]
|
consumes: ["multipart/form-data"]
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user