| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- const auth = require('../../middleware/verifyToken')
- const checkData = require('../../middleware/checkData')
- const laporanModel = require('../../model/laporan.model')
- const response = require('../../utils/responseHandler')
- const { validation } = require('../../middleware/validation')
- const forRole = require('../../middleware/role')
- const { PTB_DIKTI, PTB_LLDIKTI, PENJADWALAN, ADD_JADWAL } = require('../../utils/constanta')
- const uploadFile = require('../../middleware/uploadFile')
- const pemantauanModel = require('../../model/pemantauan.model')
- exports.create = [
- auth,
- forRole([PTB_DIKTI, PTB_LLDIKTI]),
- checkData((req) => req.params.laporan_id, (id) => laporanModel.findById({ _id: id }), 'laporan'),
- uploadFile.array('dokumen'),
- validation((req) => req.body, {
- judul: 'string',
- dari_tanggal: { type: 'date', convert: true },
- sampai_tanggal: { type: 'date', convert: true },
- warna: 'string'
- }),
- async (req, res) => {
- const { judul, dari_tanggal, sampai_tanggal, warna } = req.body
- const { laporan } = req.data
- const user = req.user
- try {
- const data = {
- flag: PENJADWALAN,
- jadwal: {
- judul,
- dari_tanggal,
- sampai_tanggal,
- warna
- }
- }
- if (!laporan.step.includes(PENJADWALAN)) data.$push = { step: PENJADWALAN }
- await laporanModel.findOneAndUpdate({ _id: laporan._id }, data)
- let for_public = true
- if (laporan.evaluasi.length > 0) for_public = false
- await pemantauanModel.create({
- laporan: laporan._id,
- user: user._id,
- action: ADD_JADWAL,
- pt_id: laporan.pt.id,
- keterangan: 'Membuat Jadwal Pemeriksaan',
- jadwal: {
- dari_tanggal,
- sampai_tanggal
- },
- for_public
- })
- } catch (e) {
- return response.error(res, {
- message: e.message,
- code: 500
- })
- }
- return response.success(res, {
- message: 'Berhasil membuat jadwal pemeriksaan',
- code: 201
- })
- }
- ]
|