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