jadwal.controller.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. const laporanModel = require('../../../model/laporan.model')
  2. const { cekSatuDataLaporan } = require('../../../utils/v1/cekData')
  3. const handleError = require('../../../utils/v1/handleError')
  4. const response = require('../../../utils/responseHandler')
  5. const { validate } = require('../../../utils/v1/validation')
  6. const pemantauanModel = require('../../../model/pemantauan.model')
  7. const { PENJADWALAN, ADD_JADWAL } = require('../../../utils/constanta')
  8. exports.update = handleError(async (req, res) => {
  9. const user = req.user
  10. const { id } = req.params
  11. const isValid = validate(res, req.body, {
  12. judul: 'string',
  13. dari_tanggal: { type: 'date', convert: true },
  14. sampai_tanggal: { type: 'date', convert: true },
  15. warna: 'string',
  16. })
  17. if (!isValid) return
  18. const { judul, dari_tanggal, sampai_tanggal, warna } = req.body
  19. const laporan = await cekSatuDataLaporan(res, user, id)
  20. if (!laporan) return
  21. let for_public = true
  22. if (laporan.jadwal) {
  23. for_public = false
  24. }
  25. const data = await laporanModel.findByIdAndUpdate(
  26. laporan._id,
  27. {
  28. flag: PENJADWALAN,
  29. jadwal: {
  30. judul,
  31. dari_tanggal,
  32. sampai_tanggal,
  33. warna,
  34. },
  35. $push: {
  36. step: PENJADWALAN
  37. }
  38. },
  39. {
  40. new: true,
  41. }
  42. )
  43. let message = 'Membuat Jadwal Pemeriksaan'
  44. await pemantauanModel.create({
  45. laporan: laporan._id,
  46. user: user._id,
  47. action: ADD_JADWAL,
  48. pt_id: laporan.pt.id,
  49. keterangan: message,
  50. jadwal: {
  51. dari_tanggal,
  52. sampai_tanggal,
  53. },
  54. for_public,
  55. })
  56. return response.success(res, {
  57. message: 'Berhasil ubah jadwal',
  58. data,
  59. })
  60. })