Deskripsi: - send wa penolakan + lik update - send wa diterima - upload ke seafile - blm selesai ngirim link surat ke wa No Issues
154 lines
4.9 KiB
TypeScript
154 lines
4.9 KiB
TypeScript
import Elysia, { t } from "elysia";
|
|
|
|
const SendWaRoute = new Elysia({
|
|
prefix: "send-wa",
|
|
tags: ["send-wa"],
|
|
})
|
|
|
|
// --- KATEGORI PENGADUAN ---
|
|
.post("/pengaduan", async ({ body }) => {
|
|
const { noPengaduan, judulPengaduan, status, alasan, tlp } = body
|
|
|
|
let text = ""
|
|
|
|
if (status === "ditolak") {
|
|
text = `Pemberitahuan Aduan
|
|
|
|
Aduan dengan Nomor Pengaduan: ${noPengaduan}
|
|
Judul Pengaduan: ${judulPengaduan}
|
|
Kami informasikan bahwa aduan tersebut tidak dapat ditindaklanjuti (ditolak).
|
|
Alasan penolakan:${alasan}
|
|
|
|
Terima kasih atas pengertian Bapak/Ibu.`
|
|
} else if (status == "diterima") {
|
|
text = `Pemberitahuan Aduan
|
|
|
|
Aduan dengan Nomor Pengaduan: ${noPengaduan}
|
|
Judul Pengaduan: ${judulPengaduan}
|
|
Telah kami terima dan akan segera diproses sesuai ketentuan yang berlaku.
|
|
|
|
Terima kasih atas laporan Bapak/Ibu.`
|
|
} else if (status == "dikerjakan") {
|
|
text = `Pemberitahuan Aduan
|
|
|
|
Aduan dengan Nomor Pengaduan: ${noPengaduan}
|
|
Judul Pengaduan: ${judulPengaduan}
|
|
Saat ini sedang dalam proses penanganan oleh petugas terkait.
|
|
|
|
Mohon menunggu informasi selanjutnya.`
|
|
} else if (status == "selesai") {
|
|
text = `Pemberitahuan Aduan
|
|
|
|
Aduan dengan Nomor Pengaduan: ${noPengaduan}
|
|
Judul Pengaduan: ${judulPengaduan}
|
|
Telah selesai ditindaklanjuti.
|
|
|
|
Terima kasih atas partisipasi dan kepercayaan Bapak/Ibu.`
|
|
}
|
|
|
|
const textFix = encodeURIComponent(text)
|
|
|
|
const res = await fetch(
|
|
`https://cld-dkr-prod-wajs-server.wibudev.com/api/wa/code?nom=${tlp}&text=${textFix}`,
|
|
{
|
|
cache: "no-cache",
|
|
headers: {
|
|
Authorization: `Bearer ${process.env.WA_SERVER_TOKEN}`,
|
|
},
|
|
}
|
|
);
|
|
|
|
if (res.status !== 200)
|
|
return { success: false, message: "Nomor Whatsapp Tidak Aktif" }
|
|
|
|
|
|
return { success: true, message: 'Pemberitahuan berhasil dikirim ke warga' }
|
|
}, {
|
|
body: t.Object({
|
|
noPengaduan: t.String({ minLength: 1, error: "nomer pengaduan harus diisi" }),
|
|
judulPengaduan: t.String({ minLength: 1, error: "judul pengaduan harus diisi" }),
|
|
status: t.String({ minLength: 1, error: "status harus diisi" }),
|
|
alasan: t.String({ optional: true }),
|
|
tlp: t.String({ minLength: 1, error: "nomor telepon harus diisi" }),
|
|
}),
|
|
detail: {
|
|
summary: "Send pemberitahuan pengaduan lewat WA",
|
|
description: `tool untuk send pemberitahuan pengaduan lewat WA`
|
|
}
|
|
})
|
|
.post("/pengajuan-surat", async ({ body }) => {
|
|
const { noPengajuan, jenisSurat, status, alasan, tlp, linkSurat, linkUpdate } = body
|
|
|
|
let text = ""
|
|
|
|
if (status === "ditolak") {
|
|
text = `Pemberitahuan Pengajuan Surat
|
|
|
|
Nomor Pengajuan: ${noPengajuan}
|
|
Surat: ${jenisSurat}
|
|
Kami informasikan bahwa pengajuan surat tersebut tidak dapat diproses (ditolak).
|
|
Alasan penolakan: ${alasan}
|
|
|
|
Bapak/Ibu dapat melakukan perbaikan atau pembaruan data melalui tautan berikut:
|
|
👉 ${linkUpdate}
|
|
Setelah data diperbarui, pengajuan akan diproses kembali sesuai ketentuan yang berlaku.
|
|
|
|
Terima kasih atas pengertian Bapak/Ibu.`
|
|
} else if (status == "diterima") {
|
|
text = `Pemberitahuan Pengajuan Surat
|
|
|
|
Nomor Pengajuan: ${noPengajuan}
|
|
Surat: ${jenisSurat}
|
|
Kami informasikan bahwa pengajuan surat yang Bapak/Ibu ajukan telah kami terima dan sedang menunggu proses verifikasi serta penanganan lebih lanjut.
|
|
|
|
Terima kasih atas kesabaran Bapak/Ibu.`
|
|
} else if (status == "selesai") {
|
|
text = `Pemberitahuan Pengajuan Surat
|
|
|
|
Nomor Pengajuan: ${noPengajuan}
|
|
Surat: ${jenisSurat}
|
|
Kami informasikan bahwa pengajuan surat tersebut telah selesai diproses.
|
|
|
|
Bapak/Ibu dapat mengunduh surat melalui tautan berikut:
|
|
👉 ${linkSurat}
|
|
|
|
Terima kasih atas kepercayaan Bapak/Ibu.`
|
|
}
|
|
|
|
const textFix = encodeURIComponent(text)
|
|
|
|
|
|
const res = await fetch(
|
|
`https://cld-dkr-prod-wajs-server.wibudev.com/api/wa/code?nom=${tlp}&text=${textFix}`,
|
|
{
|
|
cache: "no-cache",
|
|
headers: {
|
|
Authorization: `Bearer ${process.env.WA_SERVER_TOKEN}`,
|
|
},
|
|
}
|
|
);
|
|
|
|
if (res.status !== 200)
|
|
return { success: false, message: "Nomor Whatsapp Tidak Aktif" }
|
|
|
|
|
|
return { success: true, message: 'Pemberitahuan berhasil dikirim ke warga' }
|
|
}, {
|
|
body: t.Object({
|
|
noPengajuan: t.String({ minLength: 1, error: "nomer pengajuan harus diisi" }),
|
|
jenisSurat: t.String({ minLength: 1, error: "jenis surat harus diisi" }),
|
|
status: t.String({ minLength: 1, error: "status harus diisi" }),
|
|
alasan: t.String({ optional: true }),
|
|
linkSurat: t.String({ optional: true }),
|
|
linkUpdate: t.String({ optional: true }),
|
|
tlp: t.String({ minLength: 1, error: "nomor telepon harus diisi" }),
|
|
}),
|
|
detail: {
|
|
summary: "Send pemberitahuan pengajuan surat lewat WA",
|
|
description: `tool untuk send pemberitahuan pengajuan surat lewat WA`
|
|
}
|
|
})
|
|
;
|
|
|
|
export default SendWaRoute
|