From 236d6cfc723a26d7053aed149bb2c683bf075166 Mon Sep 17 00:00:00 2001 From: amaliadwiy Date: Wed, 19 Nov 2025 17:39:27 +0800 Subject: [PATCH] upd: api pengaduan Deskripsi: - update api tambah pengaduan - update api pelayanan surat No Issues --- src/server/routes/pelayanan_surat_route.ts | 2 +- src/server/routes/pengaduan_route.ts | 47 +++++++++++----------- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/server/routes/pelayanan_surat_route.ts b/src/server/routes/pelayanan_surat_route.ts index 4dbfbd3..50afd21 100644 --- a/src/server/routes/pelayanan_surat_route.ts +++ b/src/server/routes/pelayanan_surat_route.ts @@ -317,7 +317,7 @@ const PelayananRoute = new Elysia({ }) if (!cariCategory) { - throw new Error("kategori pelayanan surat tidak ditemukan") + return { success: false, message: 'kategori pelayanan surat tidak ditemukan' } } else { idCategoryFix = cariCategory.id } diff --git a/src/server/routes/pengaduan_route.ts b/src/server/routes/pengaduan_route.ts index 8531809..fac7950 100644 --- a/src/server/routes/pengaduan_route.ts +++ b/src/server/routes/pengaduan_route.ts @@ -111,27 +111,34 @@ const PengaduanRoute = new Elysia({ const noPengaduan = await generateNoPengaduan() let idCategoryFix = kategoriId let idWargaFix = wargaId - const category = await prisma.categoryPengaduan.findUnique({ - where: { - id: kategoriId, - } - }) - if (!category) { - const cariCategory = await prisma.categoryPengaduan.findFirst({ + if (idCategoryFix) { + const category = await prisma.categoryPengaduan.findUnique({ where: { - name: kategoriId, + id: idCategoryFix, } }) - if (!cariCategory) { - idCategoryFix = "lainnya" - } else { - idCategoryFix = cariCategory.id - } + if (!category) { + const cariCategory = await prisma.categoryPengaduan.findFirst({ + where: { + name: kategoriId, + } + }) + if (!cariCategory) { + idCategoryFix = "lainnya" + } else { + idCategoryFix = cariCategory.id + } + + } + } else { + idCategoryFix = "lainnya" } + + const warga = await prisma.warga.findUnique({ where: { id: wargaId, @@ -193,21 +200,18 @@ const PengaduanRoute = new Elysia({ }, { body: t.Object({ judulPengaduan: t.String({ - minLength: 3, - error: "Judul pengaduan harus diisi dan minimal 3 karakter", + error: "Judul pengaduan harus diisi", examples: ["Sampah menumpuk di depan rumah"], description: "Judul singkat dari pengaduan warga" }), detailPengaduan: t.String({ - minLength: 5, - error: "Deskripsi pengaduan harus diisi dan minimal 10 karakter", + error: "Deskripsi pengaduan harus diisi", examples: ["Terdapat sampah yang menumpuk selama seminggu di depan rumah saya"], description: "Penjelasan lebih detail mengenai pengaduan" }), lokasi: t.String({ - minLength: 5, error: "Lokasi pengaduan harus diisi", examples: ["Jl. Raya No. 1, RT 01 RW 02, Darmasaba"], description: "Alamat atau titik lokasi pengaduan" @@ -220,21 +224,18 @@ const PengaduanRoute = new Elysia({ }), kategoriId: t.String({ - minLength: 1, - error: "ID kategori pengaduan harus diisi", + optional: true, examples: ["kebersihan"], description: "ID atau nama kategori pengaduan (contoh: kebersihan, keamanan, lainnya)" }), wargaId: t.String({ - minLength: 1, - error: "ID warga harus diisi", + optional: true, examples: ["budiman"], description: "ID unik warga yang melapor (jika sudah terdaftar)" }), noTelepon: t.String({ - minLength: 1, error: "Nomor telepon harus diisi", examples: ["08123456789", "+628123456789"], description: "Nomor telepon warga pelapor" -- 2.49.1