| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | const handleError = require('../../utils/handleError')const sanksiModel = require('../../model/sanksi.model')const { addManyDokumen } = require('../../utils/dokumenFunction')const { validate } = require('../../utils/validation')const { cekSatuDataSanksi } = require('../../utils/cekData')const response = require('../../utils/responseHandler')const pemantauanModel = require('../../model/pemantauan.model')const { notifWA } = require('../../utils/notifFunction')exports.add = handleError(async (req, res) => {  const user = req.user  const { sanksi_id } = req.params  const sanksi = await cekSatuDataSanksi(res, user, sanksi_id)  if (!sanksi) return  const isValid = validate(res, req.body, {    keterangan: 'string',  })  if (!isValid) return  const files = req.files  if (!files?.length) {    return response.error(res, {      message: 'dokumen harus ada',    })  }  const dokumen = await addManyDokumen(files)  const dokumen_id = dokumen.map((e) => e._id)  const { keterangan } = req.body  const data = await sanksiModel.findOneAndUpdate(    {      laporan: sanksi.laporan._id,      _id: sanksi._id,      $or: [        { ['pengajuan.banding']: { $exists: true, $ne: null } },        { ['pengajuan.cabut_sanksi']: { $exists: true, $ne: null } },      ],    },    {      $push: {        perbaikan: {          keterangan,          dokumen: dokumen_id,        },      },    }  )  if (!data) {    return response.error(res, {      message: 'Pengajuan banding atau cabut sanksi tidak ada',    })  }  await pemantauanModel.create({    laporan: sanksi.laporan._id,    sanksi: sanksi._id,    action: 'ADD PERBAIKANDOKUMEN',    user: user._id,    pt_id: sanksi.laporan.pt.id,    keterangan: 'Melakukan Perbaikan Dokumen',    dokumen: dokumen_id,  })  await notifWA('891ee9c7-39f8-416e-af5c-6b3a10e9dbec', [    { key: '1', value: 'pt', value_text: sanksi.laporan.pt.nama },    {      key: '2',      value: 'pemberi_sanksi',      value_text: `${sanksi.user.nama} - ${sanksi.user.role.nama}`,    },    { key: '3', value: 'no_sanksi', value_text: sanksi.no_sanksi },  ])  return response.success(res, {    data,    message: 'Berhasil menambah Perbaikan',  })})
 |