upd: api pengaduan

Deskripsi:
- update api tambah pengaduan
- update api pelayanan surat

No Issues
This commit is contained in:
2025-11-19 17:39:27 +08:00
parent 482227a502
commit 236d6cfc72
2 changed files with 25 additions and 24 deletions

View File

@@ -317,7 +317,7 @@ const PelayananRoute = new Elysia({
}) })
if (!cariCategory) { if (!cariCategory) {
throw new Error("kategori pelayanan surat tidak ditemukan") return { success: false, message: 'kategori pelayanan surat tidak ditemukan' }
} else { } else {
idCategoryFix = cariCategory.id idCategoryFix = cariCategory.id
} }

View File

@@ -111,27 +111,34 @@ const PengaduanRoute = new Elysia({
const noPengaduan = await generateNoPengaduan() const noPengaduan = await generateNoPengaduan()
let idCategoryFix = kategoriId let idCategoryFix = kategoriId
let idWargaFix = wargaId let idWargaFix = wargaId
const category = await prisma.categoryPengaduan.findUnique({
where: {
id: kategoriId,
}
})
if (!category) { if (idCategoryFix) {
const cariCategory = await prisma.categoryPengaduan.findFirst({ const category = await prisma.categoryPengaduan.findUnique({
where: { where: {
name: kategoriId, id: idCategoryFix,
} }
}) })
if (!cariCategory) { if (!category) {
idCategoryFix = "lainnya" const cariCategory = await prisma.categoryPengaduan.findFirst({
} else { where: {
idCategoryFix = cariCategory.id name: kategoriId,
} }
})
if (!cariCategory) {
idCategoryFix = "lainnya"
} else {
idCategoryFix = cariCategory.id
}
}
} else {
idCategoryFix = "lainnya"
} }
const warga = await prisma.warga.findUnique({ const warga = await prisma.warga.findUnique({
where: { where: {
id: wargaId, id: wargaId,
@@ -193,21 +200,18 @@ const PengaduanRoute = new Elysia({
}, { }, {
body: t.Object({ body: t.Object({
judulPengaduan: t.String({ judulPengaduan: t.String({
minLength: 3, error: "Judul pengaduan harus diisi",
error: "Judul pengaduan harus diisi dan minimal 3 karakter",
examples: ["Sampah menumpuk di depan rumah"], examples: ["Sampah menumpuk di depan rumah"],
description: "Judul singkat dari pengaduan warga" description: "Judul singkat dari pengaduan warga"
}), }),
detailPengaduan: t.String({ detailPengaduan: t.String({
minLength: 5, error: "Deskripsi pengaduan harus diisi",
error: "Deskripsi pengaduan harus diisi dan minimal 10 karakter",
examples: ["Terdapat sampah yang menumpuk selama seminggu di depan rumah saya"], examples: ["Terdapat sampah yang menumpuk selama seminggu di depan rumah saya"],
description: "Penjelasan lebih detail mengenai pengaduan" description: "Penjelasan lebih detail mengenai pengaduan"
}), }),
lokasi: t.String({ lokasi: t.String({
minLength: 5,
error: "Lokasi pengaduan harus diisi", error: "Lokasi pengaduan harus diisi",
examples: ["Jl. Raya No. 1, RT 01 RW 02, Darmasaba"], examples: ["Jl. Raya No. 1, RT 01 RW 02, Darmasaba"],
description: "Alamat atau titik lokasi pengaduan" description: "Alamat atau titik lokasi pengaduan"
@@ -220,21 +224,18 @@ const PengaduanRoute = new Elysia({
}), }),
kategoriId: t.String({ kategoriId: t.String({
minLength: 1, optional: true,
error: "ID kategori pengaduan harus diisi",
examples: ["kebersihan"], examples: ["kebersihan"],
description: "ID atau nama kategori pengaduan (contoh: kebersihan, keamanan, lainnya)" description: "ID atau nama kategori pengaduan (contoh: kebersihan, keamanan, lainnya)"
}), }),
wargaId: t.String({ wargaId: t.String({
minLength: 1, optional: true,
error: "ID warga harus diisi",
examples: ["budiman"], examples: ["budiman"],
description: "ID unik warga yang melapor (jika sudah terdaftar)" description: "ID unik warga yang melapor (jika sudah terdaftar)"
}), }),
noTelepon: t.String({ noTelepon: t.String({
minLength: 1,
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"