Deskripsi: - upload surat ke seafile - update struktur db - notif wa kirim link download surat - api download surat No Issues;
95 lines
2.4 KiB
TypeScript
95 lines
2.4 KiB
TypeScript
import Elysia, { t } from "elysia";
|
|
import { prisma } from "../lib/prisma";
|
|
|
|
const SuratRoute = new Elysia({
|
|
prefix: "surat",
|
|
tags: ["surat"],
|
|
})
|
|
.get("/detail", async ({ query }) => {
|
|
const { id } = query
|
|
|
|
const dataSurat = await prisma.suratPelayanan.findUnique({
|
|
where: {
|
|
id
|
|
},
|
|
select: {
|
|
id: true,
|
|
noSurat: true,
|
|
idCategory: true,
|
|
createdAt: true,
|
|
file: true,
|
|
PelayananAjuan: {
|
|
select: {
|
|
DataTextPelayanan: true,
|
|
}
|
|
},
|
|
CategoryPelayanan: {
|
|
select: {
|
|
name: true,
|
|
}
|
|
}
|
|
}
|
|
})
|
|
|
|
const dataSetting = await prisma.configuration.findMany()
|
|
|
|
const toObject = (arr: any[]) =>
|
|
dataSetting.reduce((acc: any, item: any) => {
|
|
acc[item.id] = item.value;
|
|
return acc;
|
|
}, {});
|
|
|
|
return {
|
|
surat: {
|
|
id: dataSurat?.id,
|
|
idCategory: dataSurat?.idCategory,
|
|
nameCategory: dataSurat?.CategoryPelayanan?.name,
|
|
noSurat: dataSurat?.noSurat,
|
|
file: dataSurat?.file,
|
|
dataText: dataSurat?.PelayananAjuan?.DataTextPelayanan,
|
|
createdAt: dataSurat?.createdAt.toLocaleDateString("id-ID", { day: "numeric", month: "long", year: "numeric" }),
|
|
},
|
|
setting: toObject(dataSetting)
|
|
}
|
|
|
|
}, {
|
|
query: t.Object({
|
|
id: t.String({ minLength: 1, error: "id harus diisi" })
|
|
}),
|
|
detail: {
|
|
summary: "Detail Surat",
|
|
description: `tool untuk mendapatkan detail surat`,
|
|
}
|
|
|
|
})
|
|
.post("/update", async ({ body }) => {
|
|
const { id, filename } = body
|
|
|
|
await prisma.suratPelayanan.update({
|
|
where: {
|
|
id,
|
|
},
|
|
data: {
|
|
file: filename,
|
|
}
|
|
})
|
|
|
|
return {
|
|
success: true,
|
|
message: 'surat sudah diperbarui',
|
|
link: `${process.env.BUN_PUBLIC_BASE_URL}/api/pengaduan/download?file=${filename}`
|
|
}
|
|
}, {
|
|
body: t.Object({
|
|
id: t.String({ minLength: 1, error: "id harus diisi" }),
|
|
filename: t.String({ minLength: 1, error: "filename harus diisi" }),
|
|
}),
|
|
detail: {
|
|
summary: "update file surat",
|
|
description: `tool untuk update file surat`
|
|
}
|
|
})
|
|
;
|
|
|
|
export default SuratRoute
|