amalia/08-des-25 #59
@@ -107,8 +107,10 @@ const PengaduanRoute = new Elysia({
|
|||||||
|
|
||||||
|
|
||||||
// --- PENGADUAN ---
|
// --- PENGADUAN ---
|
||||||
.post("/create", async ({ body }) => {
|
.post("/create", async ({ body, headers }) => {
|
||||||
const { judulPengaduan, detailPengaduan, lokasi, namaGambar, kategoriId, namaWarga, noTelepon } = body
|
const { judulPengaduan, detailPengaduan, lokasi, namaGambar, kategoriId } = body
|
||||||
|
const namaWarga = headers["x-user"] || ""
|
||||||
|
const noTelepon = headers["x-phone"] || ""
|
||||||
let imageFix = namaGambar
|
let imageFix = namaGambar
|
||||||
const noPengaduan = await generateNoPengaduan()
|
const noPengaduan = await generateNoPengaduan()
|
||||||
let idCategoryFix = kategoriId
|
let idCategoryFix = kategoriId
|
||||||
@@ -220,16 +222,16 @@ const PengaduanRoute = new Elysia({
|
|||||||
description: "ID atau nama kategori pengaduan (contoh: kebersihan, keamanan, lainnya)"
|
description: "ID atau nama kategori pengaduan (contoh: kebersihan, keamanan, lainnya)"
|
||||||
})),
|
})),
|
||||||
|
|
||||||
namaWarga: t.String({
|
// namaWarga: t.String({
|
||||||
examples: ["budiman"],
|
// examples: ["budiman"],
|
||||||
description: "Nama warga yang melapor"
|
// description: "Nama warga yang melapor"
|
||||||
}),
|
// }),
|
||||||
|
|
||||||
noTelepon: t.String({
|
// noTelepon: t.String({
|
||||||
error: "Nomor telepon harus diisi",
|
// error: "Nomor telepon harus diisi",
|
||||||
examples: ["08123456789", "+628123456789"],
|
// examples: ["08123456789", "+628123456789"],
|
||||||
description: "Nomor telepon warga pelapor"
|
// description: "Nomor telepon warga pelapor"
|
||||||
}),
|
// }),
|
||||||
}),
|
}),
|
||||||
|
|
||||||
detail: {
|
detail: {
|
||||||
@@ -289,6 +291,84 @@ const PengaduanRoute = new Elysia({
|
|||||||
description: `tool untuk update status pengaduan`
|
description: `tool untuk update status pengaduan`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
.post("/update", async ({ body }) => {
|
||||||
|
const { noPengaduan, judul, detail, lokasi, namaGambar } = body
|
||||||
|
let dataUpdate = {}
|
||||||
|
|
||||||
|
const cek = await prisma.pengaduan.findFirst({
|
||||||
|
where: {
|
||||||
|
noPengaduan,
|
||||||
|
},
|
||||||
|
select: {
|
||||||
|
id: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
if (!cek) {
|
||||||
|
return { success: false, message: 'gagal update status pengaduan, nomer ' + noPengaduan + ' tidak ditemukan' }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (judul) {
|
||||||
|
dataUpdate = { title: judul }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (detail) {
|
||||||
|
dataUpdate = { ...dataUpdate, detail }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lokasi) {
|
||||||
|
dataUpdate = { ...dataUpdate, location: lokasi }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (namaGambar) {
|
||||||
|
dataUpdate = { ...dataUpdate, image: namaGambar }
|
||||||
|
}
|
||||||
|
|
||||||
|
const pengaduan = await prisma.pengaduan.updateMany({
|
||||||
|
where: {
|
||||||
|
noPengaduan
|
||||||
|
},
|
||||||
|
data: dataUpdate
|
||||||
|
})
|
||||||
|
|
||||||
|
const keys = Object.keys(dataUpdate).join(", ");
|
||||||
|
|
||||||
|
await prisma.historyPengaduan.create({
|
||||||
|
data: {
|
||||||
|
idPengaduan: cek.id,
|
||||||
|
deskripsi: `Pengaduan diupdate oleh warga (data yg diupdate: ${keys})`,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return { success: true, message: 'pengaduan dengan nomer ' + noPengaduan + ' sudah diupdate' }
|
||||||
|
}, {
|
||||||
|
body: t.Object({
|
||||||
|
noPengaduan: t.String({
|
||||||
|
error: "nomer pengaduan harus diisi",
|
||||||
|
description: "Nomer pengaduan yang ingin diupdate"
|
||||||
|
}),
|
||||||
|
judul: t.Optional(t.String({
|
||||||
|
error: "judul harus diisi",
|
||||||
|
description: "Judul pengaduan yang ingin diupdate"
|
||||||
|
})),
|
||||||
|
detail: t.Optional(t.String({
|
||||||
|
description: "detail pengaduan yang ingin diupdate"
|
||||||
|
})),
|
||||||
|
lokasi: t.Optional(t.String({
|
||||||
|
description: "lokasi pengaduan yang ingin diupdate"
|
||||||
|
})),
|
||||||
|
namaGambar: t.Optional(t.String({
|
||||||
|
description: "Nama file gambar yang telah diupload untuk update data pengaduan"
|
||||||
|
})),
|
||||||
|
}),
|
||||||
|
|
||||||
|
detail: {
|
||||||
|
summary: "Update Data Pengaduan",
|
||||||
|
description: `tool untuk update data pengaduan`,
|
||||||
|
tags: ["mcp"]
|
||||||
|
}
|
||||||
|
})
|
||||||
.get("/detail", async ({ query }) => {
|
.get("/detail", async ({ query }) => {
|
||||||
const { id } = query
|
const { id } = query
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user