const laporanModel = require('../../model/laporan.model') const { cekSatuDataLaporan } = require('../../utils/cekData') const handleError = require('../../utils/handleError') const response = require('../../utils/responseHandler') const { validate } = require('../../utils/validation') const pemantauanModel = require('../../model/pemantauan.model') const logModel = require('../../model/log.model') const ip = require('ip') const osValue = require('../../utils/osValue') exports.update = handleError(async (req, res) => { const user = req.user const { id } = req.params const isValid = validate(res, req.body, { judul: 'string', dari_tanggal: { type: 'date', convert: true }, sampai_tanggal: { type: 'date', convert: true }, warna: 'string', }) if (!isValid) return const { judul, dari_tanggal, sampai_tanggal, warna } = req.body const laporan = await cekSatuDataLaporan(res, user, id) if (!laporan) return let for_public = true if (laporan.jadwal) { // message = 'Mengubah Jadwal Pemeriksaan' for_public = false } const data = await laporanModel.findByIdAndUpdate( laporan._id, { jadwal: { judul, dari_tanggal, sampai_tanggal, warna, }, }, { new: true, } ) let message = 'Membuat Jadwal Pemeriksaan' await pemantauanModel.create({ laporan: laporan._id, user: user._id, action: 'ADD JADWAL', pt_id: laporan.pt.id, keterangan: message, jadwal: { dari_tanggal, sampai_tanggal, }, for_public, }) await logModel.create({ user: user._id, aktivitas: `Berhasil ubah jadwal laporan id: ${laporan._id}`, os: osValue(), ipv4: ip.address('public', 'ipv4'), }) return response.success(res, { message: 'Berhasil ubah jadwal', data, }) })