jadwal.controller.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. 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. // message = 'Mengubah Jadwal Pemeriksaan'
  24. for_public = false
  25. }
  26. const data = await laporanModel.findByIdAndUpdate(
  27. laporan._id,
  28. {
  29. jadwal: {
  30. judul,
  31. dari_tanggal,
  32. sampai_tanggal,
  33. warna,
  34. },
  35. },
  36. {
  37. new: true,
  38. }
  39. )
  40. let message = 'Membuat Jadwal Pemeriksaan'
  41. await pemantauanModel.create({
  42. laporan: laporan._id,
  43. user: user._id,
  44. action: 'ADD JADWAL',
  45. pt_id: laporan.pt.id,
  46. keterangan: message,
  47. jadwal: {
  48. dari_tanggal,
  49. sampai_tanggal,
  50. },
  51. for_public,
  52. })
  53. await logModel.create({
  54. user: user._id,
  55. aktivitas: `Berhasil ubah jadwal laporan id: ${laporan._id}`,
  56. })
  57. return response.success(res, {
  58. message: 'Berhasil ubah jadwal',
  59. data,
  60. })
  61. })