tamabahan
This commit is contained in:
@@ -37,3 +37,22 @@ model Credential {
|
|||||||
createdAt DateTime @default(now())
|
createdAt DateTime @default(now())
|
||||||
updatedAt DateTime @updatedAt
|
updatedAt DateTime @updatedAt
|
||||||
}
|
}
|
||||||
|
|
||||||
|
model Pengaduan {
|
||||||
|
id String @id @default(cuid())
|
||||||
|
jenis_laporan String
|
||||||
|
name String?
|
||||||
|
phone String?
|
||||||
|
detail String?
|
||||||
|
status StatusPengaduan @default(diterima)
|
||||||
|
createdAt DateTime @default(now())
|
||||||
|
updatedAt DateTime @updatedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
enum StatusPengaduan {
|
||||||
|
diterima
|
||||||
|
antrian
|
||||||
|
dikerjakan
|
||||||
|
ditolak
|
||||||
|
selesai
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,9 +1,39 @@
|
|||||||
import Elysia, { t } from "elysia";
|
import Elysia, { t } from "elysia";
|
||||||
|
import { prisma } from "../lib/prisma";
|
||||||
|
|
||||||
const url = "https://cld-dkr-makuro-seafile.wibudev.com/api2"
|
const url = "https://cld-dkr-makuro-seafile.wibudev.com/api2"
|
||||||
const TOKEN = "fa49bf1774cad2ec89d2882ae2c6ac1f5d7df445"
|
const TOKEN = "fa49bf1774cad2ec89d2882ae2c6ac1f5d7df445"
|
||||||
const REPO_ID = "de64ff3c-0081-45f3-a5a6-6c799a098649"
|
const REPO_ID = "de64ff3c-0081-45f3-a5a6-6c799a098649"
|
||||||
|
|
||||||
|
const pengaduanDesa: string[] = [
|
||||||
|
"Pengaduan Pelayanan Publik Desa",
|
||||||
|
"Pengaduan Bantuan Sosial (Bansos)",
|
||||||
|
"Pengaduan Penyalahgunaan Dana Desa",
|
||||||
|
"Pengaduan Infrastruktur Rusak (jalan, jembatan, saluran air)",
|
||||||
|
"Pengaduan Lingkungan (sampah, pencemaran, banjir)",
|
||||||
|
"Pengaduan Keamanan dan Ketertiban",
|
||||||
|
"Pengaduan Sengketa Tanah Desa",
|
||||||
|
"Pengaduan Ketenagakerjaan (tenaga kerja lokal, proyek desa)",
|
||||||
|
"Pengaduan Disiplin Aparat Desa",
|
||||||
|
"Pengaduan Administrasi Kependudukan (KTP, KK, surat menyurat)",
|
||||||
|
"Pengaduan Layanan Kesehatan Masyarakat",
|
||||||
|
"Pengaduan Pendidikan (sekolah, bantuan siswa miskin)",
|
||||||
|
"Pengaduan Usaha Mikro dan UMKM Desa",
|
||||||
|
"Pengaduan Kegiatan Bumdes",
|
||||||
|
"Pengaduan Pungutan Liar atau Gratifikasi",
|
||||||
|
"Pengaduan Kekerasan Rumah Tangga atau Sosial",
|
||||||
|
"Pengaduan Pelanggaran Adat dan Norma Sosial",
|
||||||
|
"Pengaduan Proyek Pembangunan Tidak Transparan",
|
||||||
|
"Pengaduan Bencana Alam dan Penanganannya",
|
||||||
|
"Pengaduan Diskriminasi atau Ketidakadilan Sosial",
|
||||||
|
"Pengaduan Pelanggaran Hak Tanah Kas Desa",
|
||||||
|
"Pengaduan Penyaluran Air dan Irigasi",
|
||||||
|
"Pengaduan Akses Internet atau Telekomunikasi Desa",
|
||||||
|
"Pengaduan Fasilitas Umum Tidak Layak",
|
||||||
|
"Pengaduan Kegiatan Tidak Berizin di Wilayah Desa"
|
||||||
|
] as const;
|
||||||
|
|
||||||
|
|
||||||
const DarmasabaRoute = new Elysia({
|
const DarmasabaRoute = new Elysia({
|
||||||
prefix: "/darmasaba",
|
prefix: "/darmasaba",
|
||||||
tags: ["darmasaba"]
|
tags: ["darmasaba"]
|
||||||
@@ -189,9 +219,18 @@ const DarmasabaRoute = new Elysia({
|
|||||||
description: "get content of file in darmasaba/pengetahuan-umum/<file_name>"
|
description: "get content of file in darmasaba/pengetahuan-umum/<file_name>"
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.post("/buat-laporan", ({ body }) => {
|
.post("/buat-pengaduan", async ({ body }) => {
|
||||||
const { jenis_laporan, name, phone, detail } = body
|
const { jenis_laporan, name, phone, detail } = body
|
||||||
|
|
||||||
|
await prisma.pengaduan.create({
|
||||||
|
data: {
|
||||||
|
jenis_laporan,
|
||||||
|
detail,
|
||||||
|
name,
|
||||||
|
phone
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
return `
|
return `
|
||||||
${JSON.stringify(body)}
|
${JSON.stringify(body)}
|
||||||
|
|
||||||
@@ -199,17 +238,38 @@ const DarmasabaRoute = new Elysia({
|
|||||||
|
|
||||||
}, {
|
}, {
|
||||||
body: t.Object({
|
body: t.Object({
|
||||||
jenis_laporan: t.String(),
|
jenis_laporan: t.Union(
|
||||||
|
pengaduanDesa.map((v) => t.Literal(v))
|
||||||
|
),
|
||||||
name: t.String(),
|
name: t.String(),
|
||||||
phone: t.String(),
|
phone: t.String(),
|
||||||
detail: t.String()
|
detail: t.String()
|
||||||
}),
|
}),
|
||||||
detail: {
|
detail: {
|
||||||
summary: "buat-laporan atau pengaduan",
|
summary: "buat-pengaduan atau pelaporan",
|
||||||
description: `
|
description: `tool untuk membuat pengaduan atau pelaporan warga kepada desa darmasaba`
|
||||||
tool untuk membuat laporan atau pengaduan warga kepada desa darmasaba
|
}
|
||||||
|
})
|
||||||
|
.post("/status-pengaduan", async ({ body }) => {
|
||||||
|
const { name, phone } = body
|
||||||
|
|
||||||
`
|
const pengaduan = await prisma.pengaduan.findMany({
|
||||||
|
where: {
|
||||||
|
name,
|
||||||
|
phone
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return pengaduan
|
||||||
|
|
||||||
|
}, {
|
||||||
|
body: t.Object({
|
||||||
|
name: t.String(),
|
||||||
|
phone: t.String()
|
||||||
|
}),
|
||||||
|
detail: {
|
||||||
|
summary: "lihat status pengaduan",
|
||||||
|
description: "melikat status pengaduan dari user"
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user