From a253d40d19ef0fad5c7211b1d2ea597b7dd1a4fc Mon Sep 17 00:00:00 2001 From: amaliadwiy Date: Tue, 25 Nov 2025 14:58:40 +0800 Subject: [PATCH 1/2] upd: api jenna ai Deskripsi: - tambah pengaduan NO Issues --- src/server/routes/pengaduan_route.ts | 50 +++++++++++----------------- 1 file changed, 19 insertions(+), 31 deletions(-) diff --git a/src/server/routes/pengaduan_route.ts b/src/server/routes/pengaduan_route.ts index 9fa4c4f..8d61182 100644 --- a/src/server/routes/pengaduan_route.ts +++ b/src/server/routes/pengaduan_route.ts @@ -107,11 +107,11 @@ const PengaduanRoute = new Elysia({ // --- PENGADUAN --- .post("/create", async ({ body }) => { - const { judulPengaduan, detailPengaduan, lokasi, namaGambar, kategoriId, wargaId, noTelepon } = body + const { judulPengaduan, detailPengaduan, lokasi, namaGambar, kategoriId, namaWarga, noTelepon } = body let imageFix = namaGambar const noPengaduan = await generateNoPengaduan() let idCategoryFix = kategoriId - let idWargaFix = wargaId + let idWargaFix = "" if (idCategoryFix) { const category = await prisma.categoryPengaduan.findUnique({ @@ -138,38 +138,26 @@ const PengaduanRoute = new Elysia({ idCategoryFix = "lainnya" } - - - const warga = await prisma.warga.findUnique({ + const nomorHP = normalizePhoneNumber({ phone: noTelepon }) + const dataWarga = await prisma.warga.upsert({ where: { - id: wargaId, + phone: nomorHP + }, + create: { + name: namaWarga, + phone: nomorHP, + }, + update: { + name: namaWarga, + phone: nomorHP, + }, + select: { + id: true } }) - if (!warga) { - const nomorHP = normalizePhoneNumber({ phone: noTelepon }) - const cariWarga = await prisma.warga.findUnique({ - where: { - phone: nomorHP, - } - }) + idWargaFix = dataWarga.id - if (!cariWarga) { - const wargaCreate = await prisma.warga.create({ - data: { - name: wargaId, - phone: nomorHP, - }, - select: { - id: true - } - }) - idWargaFix = wargaCreate.id - } else { - idWargaFix = cariWarga.id - } - - } const pengaduan = await prisma.pengaduan.create({ data: { @@ -228,9 +216,9 @@ const PengaduanRoute = new Elysia({ description: "ID atau nama kategori pengaduan (contoh: kebersihan, keamanan, lainnya)" })), - wargaId: t.Optional(t.String({ + namaWarga: t.Optional(t.String({ examples: ["budiman"], - description: "ID unik warga yang melapor (jika sudah terdaftar)" + description: "Nama warga yang melapor" })), noTelepon: t.String({ From 94e7604afb1fda32133c47699ff6aae236c5a5e6 Mon Sep 17 00:00:00 2001 From: amaliadwiy Date: Tue, 25 Nov 2025 15:01:01 +0800 Subject: [PATCH 2/2] upd: api jenna ai Deskripsi: - tambah pengaduan NO Issues --- src/server/routes/pengaduan_route.ts | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/src/server/routes/pengaduan_route.ts b/src/server/routes/pengaduan_route.ts index 8d61182..7ca9882 100644 --- a/src/server/routes/pengaduan_route.ts +++ b/src/server/routes/pengaduan_route.ts @@ -230,23 +230,7 @@ const PengaduanRoute = new Elysia({ detail: { summary: "Buat Pengaduan Warga", - description: ` -Endpoint ini digunakan untuk membuat data pengaduan (laporan) baru dari warga. - -Alur proses: -1. Sistem memvalidasi kategori pengaduan berdasarkan ID. - - Jika ID kategori tidak ditemukan, sistem akan mencari berdasarkan nama kategori. - - Jika tetap tidak ditemukan, kategori akan diset menjadi "lainnya". -2. Sistem memvalidasi data warga berdasarkan ID. - - Jika warga tidak ditemukan, sistem akan mencari berdasarkan nomor telepon. - - Jika tetap tidak ditemukan, data warga baru akan dibuat secara otomatis. -3. Sistem menghasilkan nomor pengaduan unik (noPengaduan). -4. Data pengaduan akan disimpan ke database, termasuk judul, detail, lokasi, gambar (opsional), dan data warga. -5. Sistem juga membuat catatan riwayat awal pengaduan dengan deskripsi "Pengaduan dibuat". - -Respon: -- success: true jika pengaduan berhasil dibuat. -- message: berisi pesan sukses dan nomor pengaduan yang dapat digunakan untuk melacak status pengaduan.`, + description: `Endpoint ini digunakan untuk membuat data pengaduan (laporan) baru dari warga`, tags: ["mcp"] } })