jadwal.controller.js 1.6 KB

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