keberatan.controller.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. const handleError = require('../utils/handleError')
  2. const sanksiModel = require('../model/sanksi.model')
  3. const { addManyDokumen } = require('../utils/dokumenFunction')
  4. const { cekSatuDataSanksi, cekSatuDataLaporan } = require('../utils/cekData')
  5. const response = require('../utils/responseHandler')
  6. exports.create = handleError(async (req, res) => {
  7. const user = req.user
  8. const { laporan_id, sanksi_id } = req.query
  9. if (!laporan_id || !sanksi_id) {
  10. return response.error(res, {
  11. message: 'query laporan_id atau sanksi_id harus ada',
  12. })
  13. }
  14. const laporan = await cekSatuDataLaporan(res, user, laporan_id)
  15. const sanksi = await cekSatuDataSanksi(res, user, sanksi_id)
  16. if (!laporan || !sanksi) return
  17. const files = req.files
  18. if (!files?.length) {
  19. return response.error(res, {
  20. message: 'dokumen harus ada',
  21. })
  22. }
  23. const dokumen = await addManyDokumen(files)
  24. const dokumen_id = dokumen.map((e) => e._id)
  25. const keberatan = await sanksiModel.findOneAndUpdate(
  26. {
  27. laporan: laporan._id,
  28. _id: sanksi._id,
  29. keberatan: { $exists: false, $eq: null },
  30. },
  31. {
  32. keberatan: {
  33. dokumen: dokumen_id,
  34. },
  35. }
  36. )
  37. if (!keberatan) {
  38. return response.error(res, {
  39. message: 'Keberatan sudah ada',
  40. })
  41. }
  42. return response.success(res, {
  43. data: keberatan,
  44. message: 'Berhasil menambah keberatan',
  45. })
  46. })
  47. exports.createJawaban = handleError(async (req, res) => {})