update api pengaduan
This commit is contained in:
@@ -13,6 +13,7 @@ import AduanRoute from "./server/routes/aduan_route";
|
|||||||
|
|
||||||
import { cors } from "@elysiajs/cors";
|
import { cors } from "@elysiajs/cors";
|
||||||
import { MCPRoute } from "./server/routes/mcp_route";
|
import { MCPRoute } from "./server/routes/mcp_route";
|
||||||
|
import PengaduanRoute from "./server/routes/pengaduan_route";
|
||||||
|
|
||||||
const Docs = new Elysia({
|
const Docs = new Elysia({
|
||||||
tags: ["docs"],
|
tags: ["docs"],
|
||||||
@@ -32,7 +33,8 @@ const Api = new Elysia({
|
|||||||
.use(CredentialRoute)
|
.use(CredentialRoute)
|
||||||
.use(UserRoute)
|
.use(UserRoute)
|
||||||
.use(LayananRoute)
|
.use(LayananRoute)
|
||||||
.use(AduanRoute);
|
.use(AduanRoute)
|
||||||
|
.use(PengaduanRoute);
|
||||||
|
|
||||||
const app = new Elysia()
|
const app = new Elysia()
|
||||||
.use(Api)
|
.use(Api)
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ const PengaduanRoute = new Elysia({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.post("/update-status", async ({ body }) => {
|
.post("/update-status", async ({ body }) => {
|
||||||
const { id, status, keterangan } = body
|
const { id, status, keterangan, idUser } = body
|
||||||
let deskripsi = ""
|
let deskripsi = ""
|
||||||
|
|
||||||
const pengaduan = await prisma.pengaduan.update({
|
const pengaduan = await prisma.pengaduan.update({
|
||||||
@@ -165,13 +165,13 @@ const PengaduanRoute = new Elysia({
|
|||||||
throw new Error("gagal membuat pengaduan")
|
throw new Error("gagal membuat pengaduan")
|
||||||
}
|
}
|
||||||
|
|
||||||
if(status === "diterima") {
|
if (status === "diterima") {
|
||||||
deskripsi = "Pengaduan diterima oleh admin"
|
deskripsi = "Pengaduan diterima oleh admin"
|
||||||
} else if(status === "dikerjakan") {
|
} else if (status === "dikerjakan") {
|
||||||
deskripsi = "Pengaduan dikerjakan oleh petugas"
|
deskripsi = "Pengaduan dikerjakan oleh petugas"
|
||||||
} else if(status === "ditolak") {
|
} else if (status === "ditolak") {
|
||||||
deskripsi = "Pengaduan ditolak dengan keterangan " + keterangan
|
deskripsi = "Pengaduan ditolak dengan keterangan " + keterangan
|
||||||
} else if(status === "selesai") {
|
} else if (status === "selesai") {
|
||||||
deskripsi = "Pengaduan selesai"
|
deskripsi = "Pengaduan selesai"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,7 +180,7 @@ const PengaduanRoute = new Elysia({
|
|||||||
idPengaduan: pengaduan.id,
|
idPengaduan: pengaduan.id,
|
||||||
deskripsi,
|
deskripsi,
|
||||||
status: status as StatusPengaduan,
|
status: status as StatusPengaduan,
|
||||||
idUser: ""
|
idUser,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -192,7 +192,8 @@ const PengaduanRoute = new Elysia({
|
|||||||
body: t.Object({
|
body: t.Object({
|
||||||
id: t.String({ minLength: 1, error: "id harus diisi" }),
|
id: t.String({ minLength: 1, error: "id harus diisi" }),
|
||||||
status: t.String({ minLength: 1, error: "status harus diisi" }),
|
status: t.String({ minLength: 1, error: "status harus diisi" }),
|
||||||
keterangan: t.Any()
|
keterangan: t.Any(),
|
||||||
|
idUser: t.String({ minLength: 1, error: "idUser harus diisi" }),
|
||||||
}),
|
}),
|
||||||
|
|
||||||
detail: {
|
detail: {
|
||||||
@@ -200,4 +201,89 @@ const PengaduanRoute = new Elysia({
|
|||||||
description: `tool untuk update status pengaduan`
|
description: `tool untuk update status pengaduan`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
.get("/detail", async ({ query }) => {
|
||||||
|
const { id } = query
|
||||||
|
const data = await prisma.pengaduan.findUnique({
|
||||||
|
where: {
|
||||||
|
id,
|
||||||
|
},
|
||||||
|
select: {
|
||||||
|
id: true,
|
||||||
|
noPengaduan: true,
|
||||||
|
title: true,
|
||||||
|
detail: true,
|
||||||
|
location: true,
|
||||||
|
image: true,
|
||||||
|
idCategory: true,
|
||||||
|
idWarga: true,
|
||||||
|
status: true,
|
||||||
|
keterangan: true,
|
||||||
|
createdAt: true,
|
||||||
|
updatedAt: true,
|
||||||
|
CategoryPengaduan: {
|
||||||
|
select: {
|
||||||
|
name: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Warga: {
|
||||||
|
select: {
|
||||||
|
name: true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const dataHistory = await prisma.historyPengaduan.findMany({
|
||||||
|
where: {
|
||||||
|
idPengaduan: id,
|
||||||
|
},
|
||||||
|
select: {
|
||||||
|
id: true,
|
||||||
|
deskripsi: true,
|
||||||
|
status: true,
|
||||||
|
createdAt: true,
|
||||||
|
idUser: true,
|
||||||
|
User: {
|
||||||
|
select: {
|
||||||
|
name: true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const dataHistoryFix = dataHistory.map((item) => {
|
||||||
|
return {
|
||||||
|
id: item.id,
|
||||||
|
deskripsi: item.deskripsi,
|
||||||
|
status: item.status,
|
||||||
|
createdAt: item.createdAt,
|
||||||
|
idUser: item.idUser,
|
||||||
|
nameUser: item.User?.name,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const datafix = {
|
||||||
|
id: data?.id,
|
||||||
|
noPengaduan: data?.noPengaduan,
|
||||||
|
title: data?.title,
|
||||||
|
detail: data?.detail,
|
||||||
|
location: data?.location,
|
||||||
|
image: data?.image,
|
||||||
|
CategoryPengaduan: data?.CategoryPengaduan.name,
|
||||||
|
idWarga: data?.idWarga,
|
||||||
|
nameWarga: data?.Warga?.name,
|
||||||
|
status: data?.status,
|
||||||
|
keterangan: data?.keterangan,
|
||||||
|
createdAt: data?.createdAt,
|
||||||
|
updatedAt: data?.updatedAt,
|
||||||
|
history: dataHistoryFix,
|
||||||
|
}
|
||||||
|
|
||||||
|
return datafix
|
||||||
|
}, {
|
||||||
|
detail: {
|
||||||
|
summary: "get detail pengaduan",
|
||||||
|
description: `tool untuk mendapatkan detail pengaduan`
|
||||||
|
}
|
||||||
|
})
|
||||||
export default PengaduanRoute
|
export default PengaduanRoute
|
||||||
|
|||||||
Reference in New Issue
Block a user