migrasi.controller.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. const sanksiModel = require('../model/sanksi.model')
  2. const dokumenModel = require('../model/dokumen.model')
  3. const handleError = require('../utils/handleError')
  4. const response = require('../utils/responseHandler')
  5. const coba = require('../utils/coba')
  6. exports.pengajuan = handleError(async (req, res) => {
  7. const [keberatan, banding] = await Promise.all([
  8. (() =>
  9. sanksiModel.find({
  10. ['pengajuan.keberatan']: { $ne: null, $exists: true },
  11. is_pengajuan_keberatan: { $eq: null, $exists: false },
  12. }))(),
  13. (() =>
  14. sanksiModel.find({
  15. ['jawaban.keberatan']: { $ne: null, $exists: true },
  16. ['pengajuan.banding']: { $ne: null, $exists: true },
  17. is_pengajuan_banding: { $eq: null, $exists: false },
  18. }))()
  19. ])
  20. await Promise.all([
  21. ...keberatan.map(async (e) => {
  22. await sanksiModel.findOneAndUpdate({ _id: e._id }, { is_pengajuan_keberatan: true })
  23. }),
  24. ...banding.map(async (e) => {
  25. await sanksiModel.findOneAndUpdate({ _id: e._id }, { is_pengajuan_banding: true })
  26. })
  27. ])
  28. return response.success(res, {
  29. message: 'Berhasil migrasi pengajuan',
  30. })
  31. })
  32. exports.dokumen = handleError(async (req, res) => {
  33. const dokumen = await dokumenModel.find({ path: /api.sidali.sixsenz.net/ })
  34. if (dokumen?.length) await Promise.all(dokumen.map(async e => {
  35. const path = e.path.split('/').slice(3).join('/')
  36. await dokumenModel.findOneAndUpdate({
  37. _id: e._id
  38. }, {
  39. path: `${coba.decrypt(process.env.W8A1C)}/${path}`
  40. })
  41. }))
  42. return response.success(res, {
  43. message: 'Berhasil migrasi dokumen',
  44. })
  45. })
  46. exports.pelanggaranSanksi = handleError(async (req, res) => {
  47. const sanksi = await sanksiModel.find({sanksi: {
  48. $eq: [],
  49. }}).populate('pelanggaran')
  50. if(sanksi?.length) await Promise.all(sanksi.map(async e => {
  51. await sanksiModel.findOneAndUpdate({
  52. _id: e._id
  53. }, {
  54. sanksi: e.pelanggaran.map(e2 => ({label: e2.label_sanksi, description: e2.sanksi, level: e2.level_sanksi}))
  55. })
  56. }))
  57. return response.success(res, {
  58. message: 'Berhasil migrasi pelanggaran sanksi',
  59. })
  60. })