| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | 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',    data: dataSanksi,  })})
 |