|
|
@@ -0,0 +1,103 @@
|
|
|
+const handleError = require('../utils/handleError')
|
|
|
+const response = require('../utils/responseHandler')
|
|
|
+const { notifWA } = require('../utils/notifFunction')
|
|
|
+const sanksiModel = require('../model/sanksi.model')
|
|
|
+const { TEMPLATE_KEBERATAN, TEMPLATE_BANDING } = require('../utils/constanta')
|
|
|
+
|
|
|
+exports.keberatan = handleError(async (req, res) => {
|
|
|
+ const dataSanksi = await sanksiModel
|
|
|
+ .find({
|
|
|
+ 'batas_waktu.keberatan': {
|
|
|
+ $lt: new Date().toISOString(),
|
|
|
+ },
|
|
|
+ 'batas_waktu.jawaban_keberatan': {
|
|
|
+ $exists: false,
|
|
|
+ $eq: null,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ .populate('user')
|
|
|
+ .populate('laporan')
|
|
|
+
|
|
|
+ if (!dataSanksi.length) {
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'Tidak ada notifikasi yg dikirim',
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ Promise.all(
|
|
|
+ dataSanksi.map(
|
|
|
+ async (sanksi) =>
|
|
|
+ await notifWA(TEMPLATE_KEBERATAN, [
|
|
|
+ {
|
|
|
+ key: '1',
|
|
|
+ value: 'nama_pt',
|
|
|
+ value_text: sanksi.laporan.pt.nama,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ key: '2',
|
|
|
+ value: 'pemberi_sanksi',
|
|
|
+ value_text: sanksi.user.lembaga.nama,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ key: '3',
|
|
|
+ value: 'no_sanksi',
|
|
|
+ value_text: sanksi.no_sanksi,
|
|
|
+ },
|
|
|
+ ])
|
|
|
+ )
|
|
|
+ )
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'Notifikasi berhasil terkirim',
|
|
|
+ })
|
|
|
+})
|
|
|
+
|
|
|
+exports.banding = handleError(async (req, res) => {
|
|
|
+ const dataSanksi = await sanksiModel
|
|
|
+ .find({
|
|
|
+ 'batas_waktu.banding': {
|
|
|
+ $lt: new Date().toISOString(),
|
|
|
+ },
|
|
|
+ 'batas_waktu.jawaban_banding': {
|
|
|
+ $exists: false,
|
|
|
+ $eq: null,
|
|
|
+ },
|
|
|
+ 'batas_waktu.jawaban_keberatan': {
|
|
|
+ $exists: true,
|
|
|
+ $ne: null,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ .populate('user')
|
|
|
+ .populate('laporan')
|
|
|
+
|
|
|
+ if (!dataSanksi.length) {
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'Tidak ada notifikasi yg dikirim',
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ Promise.all(
|
|
|
+ dataSanksi.map(
|
|
|
+ async (sanksi) =>
|
|
|
+ await notifWA(TEMPLATE_BANDING, [
|
|
|
+ {
|
|
|
+ key: '1',
|
|
|
+ value: 'nama_pt',
|
|
|
+ value_text: sanksi.laporan.pt.nama,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ key: '2',
|
|
|
+ value: 'pemberi_sanksi',
|
|
|
+ value_text: sanksi.user.lembaga.nama,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ key: '3',
|
|
|
+ value: 'no_sanksi',
|
|
|
+ value_text: sanksi.no_sanksi,
|
|
|
+ },
|
|
|
+ ])
|
|
|
+ )
|
|
|
+ )
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'Notifikasi berhasil terkirim',
|
|
|
+ })
|
|
|
+})
|