| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | 
							- const handleError = require('../../utils/v1/handleError')
 
- const response = require('../../utils/responseHandler')
 
- const laporanModel = require('../../model/laporan.model')
 
- const { validate } = require('../../utils/v1/validation')
 
- const signatureModel = require('../../model/signature.model')
 
- const { addDokumen } = require('../../utils/dokumenFunction')
 
- const { cekSatuDataLaporan } = require('../../utils/v1/cekData')
 
- exports.getPeserta = handleError(async (req, res) => {
 
-   const { laporan_id } = req.params
 
-   const data = await signatureModel.findOne({ laporan_id }).populate('daftar_kehadiran_peserta.ttd')
 
-   return response.success(res, {
 
-     message: 'Berhasil mendapatkan daftar kehadiran peserta',
 
-     data
 
-   })
 
- })
 
- exports.addPeserta = handleError(async (req, res) => {
 
-   const isValid = validate(res, req.body, {
 
-     laporan_id: 'string',
 
-     nama: 'string'
 
-   })
 
-   if (!isValid) return
 
-   const { laporan_id, nama } = req.body
 
-   const laporan = await laporanModel.findOne({
 
-     _id: laporan_id
 
-   })
 
-   if (!laporan) return response.error(res, {
 
-     code: 404,
 
-     message: 'laporan_id tidak ada'
 
-   })
 
-   const file = req.file
 
-   if (!file) {
 
-     return response.error(res, {
 
-       message: 'ttd harus ada'
 
-     })
 
-   }
 
-   const dokumen = await addDokumen(file)
 
-   const signature = await signatureModel.findOne({ laporan_id: laporan._id })
 
-   if (!signature) {
 
-     await signatureModel.create(
 
-       {
 
-         laporan_id: laporan._id,
 
-         daftar_kehadiran_peserta: [{
 
-           nama,
 
-           ttd: dokumen.id
 
-         }]
 
-       }
 
-     )
 
-   } else {
 
-     await signatureModel.findOneAndUpdate(
 
-       { laporan_id: laporan._id },
 
-       {
 
-         $push: {
 
-           daftar_kehadiran_peserta: {
 
-             nama,
 
-             ttd: dokumen.id
 
-           }
 
-         }
 
-       }
 
-     )
 
-   }
 
-   return response.success(res, {
 
-     message: 'Berhasil tambah peserta pleno'
 
-   })
 
- })
 
- exports.removePeserta = handleError(async (req, res) => {
 
-   const isValid = validate(res, req.body, {
 
-     peserta_id: 'string',
 
-     laporan_id: 'string'
 
-   })
 
-   if (!isValid) return
 
-   const user = req.user
 
-   const { laporan_id, peserta_id } = req.body
 
-   const laporan = await cekSatuDataLaporan(res, user, laporan_id, {
 
-     evaluasi: { $exists: true, $ne: [] }
 
-   })
 
-   if (!laporan) return
 
-   await signatureModel.findOneAndUpdate(
 
-     { laporan_id: laporan._id },
 
-     {
 
-       $pull: {
 
-         daftar_kehadiran_peserta: {
 
-           _id: peserta_id
 
-         }
 
-       }
 
-     }
 
-   )
 
-   return response.success(res, {
 
-     message: 'Berhasil menghapus peserta pleno'
 
-   })
 
- })
 
 
  |