jadwal.controller.js 1.8 KB

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