| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 | const sanksiModel = require('../../model/sanksi.model')const dokumenModel = require('../../model/dokumen.model')const laporanModel = require('../../model/laporan.model')const handleError = require('../../utils/v1/handleError')const response = require('../../utils/responseHandler')const coba = require('../../utils/coba')exports.pengajuan = handleError(async (req, res) => {  const [keberatan, banding] = await Promise.all([    (() =>      sanksiModel.find({        ['pengajuan.keberatan']: { $ne: null, $exists: true },        is_pengajuan_keberatan: { $eq: null, $exists: false }      }))(),    (() =>      sanksiModel.find({        ['jawaban.keberatan']: { $ne: null, $exists: true },        ['pengajuan.banding']: { $ne: null, $exists: true },        is_pengajuan_banding: { $eq: null, $exists: false }      }))()  ])  await Promise.all([    ...keberatan.map(async (e) => {      await sanksiModel.findOneAndUpdate({ _id: e._id }, { is_pengajuan_keberatan: true })    }),    ...banding.map(async (e) => {      await sanksiModel.findOneAndUpdate({ _id: e._id }, { is_pengajuan_banding: true })    })  ])  return response.success(res, {    message: 'Berhasil migrasi pengajuan'  })})exports.dokumen = handleError(async (req, res) => {  const dokumen = await dokumenModel.find({ path: /api.sidali.sixsenz.net/ })  if (dokumen?.length) await Promise.all(dokumen.map(async e => {    const path = e.path.split('/').slice(3).join('/')    await dokumenModel.findOneAndUpdate({      _id: e._id    }, {      path: `${coba.decrypt(process.env.W8A1C)}/${path}`    })  }))  return response.success(res, {    message: 'Berhasil migrasi dokumen'  })})exports.pelanggaranSanksi = handleError(async (req, res) => {  const sanksi = await sanksiModel.find({    sanksi: {      $eq: []    }  }).populate('pelanggaran')  if (sanksi?.length) await Promise.all(sanksi.map(async e => {    await sanksiModel.findOneAndUpdate({      _id: e._id    }, {      sanksi: e.pelanggaran.map(e2 => ({ label: e2.label_sanksi, description: e2.sanksi, level: e2.level_sanksi }))    })  }))  return response.success(res, {    message: 'Berhasil migrasi pelanggaran sanksi'  })})exports.tambahStep = handleError(async (req, res) => {  const laporan = await laporanModel.find()  await Promise.all(laporan.map(e => {    let step = ['pelaporan']    if (e.jadwal) step.push('penjadwalan')    if (e.evaluasi.length) step.push('pemeriksaan')    if (e.sanksi) step.push('sanksi')    return laporanModel.updateOne({ _id: e._id }, { step })  }))  const sanksi = await sanksiModel.find()  await Promise.all(sanksi.map(e => {    let step = []    if (e.pengajuan?.keberatan) step.push('keberatan')    if (e.pengajuan?.banding) step.push('banding')    if (e.perbaikan.length) step.push('dokumen_perbaikan')    if (e.pengajuan?.cabut_sanksi) step.push('cabut_sanksi')    return sanksiModel.updateOne({ _id: e._id }, { step })  }))  return laporan})exports.backToSanksi = handleError(async (req, res) => {  const sanksi = await sanksiModel.find({    'masa_berlaku.to_date': {      $lte: new Date().toISOString()    },    aktif: false  })  await Promise.all(sanksi.map(e => sanksiModel.findOneAndUpdate({ _id: e._id }, { aktif: true, 'masa_berlaku.berakhir': true })))  return sanksi})
 |