migrasi.controller.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. const sanksiModel = require('../../model/sanksi.model')
  2. const dokumenModel = require('../../model/dokumen.model')
  3. const laporanModel = require('../../model/laporan.model')
  4. const handleError = require('../../utils/v1/handleError')
  5. const response = require('../../utils/responseHandler')
  6. const coba = require('../../utils/coba')
  7. exports.pengajuan = handleError(async (req, res) => {
  8. const [keberatan, banding] = await Promise.all([
  9. (() =>
  10. sanksiModel.find({
  11. ['pengajuan.keberatan']: { $ne: null, $exists: true },
  12. is_pengajuan_keberatan: { $eq: null, $exists: false },
  13. }))(),
  14. (() =>
  15. sanksiModel.find({
  16. ['jawaban.keberatan']: { $ne: null, $exists: true },
  17. ['pengajuan.banding']: { $ne: null, $exists: true },
  18. is_pengajuan_banding: { $eq: null, $exists: false },
  19. }))()
  20. ])
  21. await Promise.all([
  22. ...keberatan.map(async (e) => {
  23. await sanksiModel.findOneAndUpdate({ _id: e._id }, { is_pengajuan_keberatan: true })
  24. }),
  25. ...banding.map(async (e) => {
  26. await sanksiModel.findOneAndUpdate({ _id: e._id }, { is_pengajuan_banding: true })
  27. })
  28. ])
  29. return response.success(res, {
  30. message: 'Berhasil migrasi pengajuan',
  31. })
  32. })
  33. exports.dokumen = handleError(async (req, res) => {
  34. const dokumen = await dokumenModel.find({ path: /api.sidali.sixsenz.net/ })
  35. if (dokumen?.length) await Promise.all(dokumen.map(async e => {
  36. const path = e.path.split('/').slice(3).join('/')
  37. await dokumenModel.findOneAndUpdate({
  38. _id: e._id
  39. }, {
  40. path: `${coba.decrypt(process.env.W8A1C)}/${path}`
  41. })
  42. }))
  43. return response.success(res, {
  44. message: 'Berhasil migrasi dokumen',
  45. })
  46. })
  47. exports.pelanggaranSanksi = handleError(async (req, res) => {
  48. const sanksi = await sanksiModel.find({sanksi: {
  49. $eq: [],
  50. }}).populate('pelanggaran')
  51. if(sanksi?.length) await Promise.all(sanksi.map(async e => {
  52. await sanksiModel.findOneAndUpdate({
  53. _id: e._id
  54. }, {
  55. sanksi: e.pelanggaran.map(e2 => ({label: e2.label_sanksi, description: e2.sanksi, level: e2.level_sanksi}))
  56. })
  57. }))
  58. return response.success(res, {
  59. message: 'Berhasil migrasi pelanggaran sanksi',
  60. })
  61. })
  62. exports.tambahStep = handleError(async (req, res) => {
  63. const laporan = await laporanModel.find()
  64. await Promise.all(laporan.map(e => {
  65. let step = ['pelaporan']
  66. if (e.jadwal) step.push('penjadwalan')
  67. if (e.evaluasi.length) step.push('pemeriksaan')
  68. if (e.sanksi) step.push('sanksi')
  69. return laporanModel.updateOne({ _id: e._id }, { step })
  70. }))
  71. const sanksi = await sanksiModel.find()
  72. await Promise.all(sanksi.map(e => {
  73. let step = []
  74. if (e.pengajuan?.keberatan) step.push('keberatan')
  75. if (e.pengajuan?.banding) step.push('banding')
  76. if (e.perbaikan.length) step.push('dokumen_perbaikan')
  77. if (e.pengajuan?.cabut_sanksi) step.push('cabut_sanksi')
  78. return sanksiModel.updateOne({ _id: e._id }, { step })
  79. }))
  80. return laporan
  81. })