jadwal.controller.js 1.5 KB

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