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({