From c6c3ba95f8266f4884f18635790a84868740b89a Mon Sep 17 00:00:00 2001 From: amal Date: Mon, 8 Dec 2025 11:04:03 +0800 Subject: [PATCH 1/3] upd: update data pengaduan by jenna AI --- src/server/routes/pengaduan_route.ts | 66 ++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/src/server/routes/pengaduan_route.ts b/src/server/routes/pengaduan_route.ts index 37ed7fe..6c382a4 100644 --- a/src/server/routes/pengaduan_route.ts +++ b/src/server/routes/pengaduan_route.ts @@ -289,6 +289,72 @@ const PengaduanRoute = new Elysia({ description: `tool untuk update status pengaduan` } }) + .post("/update", async ({ body }) => { + const { noPengaduan, judul, detail, lokasi, namaGambar } = body + let dataUpdate = {} + + const cek = await prisma.pengaduan.count({ + where: { + noPengaduan, + } + }) + + + if (!cek) { + return { success: false, message: 'gagal update status pengaduan' } + } + + 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 + }) + + 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 }) => { const { id } = query From 9430ad3728959232f6cdfc428c39d733ac26da70 Mon Sep 17 00:00:00 2001 From: amal Date: Mon, 8 Dec 2025 11:37:16 +0800 Subject: [PATCH 2/3] upd: update data pengaduan dari wawrga --- src/server/routes/pengaduan_route.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/server/routes/pengaduan_route.ts b/src/server/routes/pengaduan_route.ts index 6c382a4..47e2c87 100644 --- a/src/server/routes/pengaduan_route.ts +++ b/src/server/routes/pengaduan_route.ts @@ -293,15 +293,18 @@ const PengaduanRoute = new Elysia({ const { noPengaduan, judul, detail, lokasi, namaGambar } = body let dataUpdate = {} - const cek = await prisma.pengaduan.count({ + const cek = await prisma.pengaduan.findFirst({ where: { noPengaduan, + }, + select: { + id: true } }) if (!cek) { - return { success: false, message: 'gagal update status pengaduan' } + return { success: false, message: 'gagal update status pengaduan, nomer ' + noPengaduan + ' tidak ditemukan' } } if (judul) { @@ -327,6 +330,15 @@ const PengaduanRoute = new Elysia({ 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({ From c256f4b729537f530629904761746c05d29e8cea Mon Sep 17 00:00:00 2001 From: amal Date: Mon, 8 Dec 2025 11:49:24 +0800 Subject: [PATCH 3/3] upd: api jenna ai Deskripsi: - create pengaduan pake nama dan nomer hp dari header No Issues --- src/server/routes/pengaduan_route.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/server/routes/pengaduan_route.ts b/src/server/routes/pengaduan_route.ts index 47e2c87..b554794 100644 --- a/src/server/routes/pengaduan_route.ts +++ b/src/server/routes/pengaduan_route.ts @@ -107,8 +107,10 @@ const PengaduanRoute = new Elysia({ // --- PENGADUAN --- - .post("/create", async ({ body }) => { - const { judulPengaduan, detailPengaduan, lokasi, namaGambar, kategoriId, namaWarga, noTelepon } = body + .post("/create", async ({ body, headers }) => { + const { judulPengaduan, detailPengaduan, lokasi, namaGambar, kategoriId } = body + const namaWarga = headers["x-user"] || "" + const noTelepon = headers["x-phone"] || "" let imageFix = namaGambar const noPengaduan = await generateNoPengaduan() let idCategoryFix = kategoriId @@ -220,16 +222,16 @@ const PengaduanRoute = new Elysia({ description: "ID atau nama kategori pengaduan (contoh: kebersihan, keamanan, lainnya)" })), - namaWarga: t.String({ - examples: ["budiman"], - description: "Nama warga yang melapor" - }), + // namaWarga: t.String({ + // examples: ["budiman"], + // description: "Nama warga yang melapor" + // }), - noTelepon: t.String({ - error: "Nomor telepon harus diisi", - examples: ["08123456789", "+628123456789"], - description: "Nomor telepon warga pelapor" - }), + // noTelepon: t.String({ + // error: "Nomor telepon harus diisi", + // examples: ["08123456789", "+628123456789"], + // description: "Nomor telepon warga pelapor" + // }), }), detail: {