|  | @@ -1,6 +1,7 @@
 | 
	
		
			
				|  |  |  const handleError = require('../utils/handleError')
 | 
	
		
			
				|  |  |  const sanksiModel = require('../model/sanksi.model')
 | 
	
		
			
				|  |  |  const { addManyDokumen } = require('../utils/dokumenFunction')
 | 
	
		
			
				|  |  | +const { validate } = require('../utils/validation')
 | 
	
		
			
				|  |  |  const { cekSatuDataSanksi, cekSatuDataLaporan } = require('../utils/cekData')
 | 
	
		
			
				|  |  |  const response = require('../utils/responseHandler')
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -25,7 +26,8 @@ exports.create = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    const dokumen = await addManyDokumen(files)
 | 
	
		
			
				|  |  |    const dokumen_id = dokumen.map((e) => e._id)
 | 
	
		
			
				|  |  | -  const keberatan = await sanksiModel.findOneAndUpdate(
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  const data = await sanksiModel.findOneAndUpdate(
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |        laporan: laporan._id,
 | 
	
		
			
				|  |  |        _id: sanksi._id,
 | 
	
	
		
			
				|  | @@ -37,15 +39,65 @@ exports.create = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |        },
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    )
 | 
	
		
			
				|  |  | -  if (!keberatan) {
 | 
	
		
			
				|  |  | +  if (!data) {
 | 
	
		
			
				|  |  |      return response.error(res, {
 | 
	
		
			
				|  |  |        message: 'Keberatan sudah ada',
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    return response.success(res, {
 | 
	
		
			
				|  |  | -    data: keberatan,
 | 
	
		
			
				|  |  | +    data,
 | 
	
		
			
				|  |  |      message: 'Berhasil menambah keberatan',
 | 
	
		
			
				|  |  |    })
 | 
	
		
			
				|  |  |  })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -exports.createJawaban = handleError(async (req, res) => {})
 | 
	
		
			
				|  |  | +exports.createJawaban = handleError(async (req, res) => {
 | 
	
		
			
				|  |  | +  const user = req.user
 | 
	
		
			
				|  |  | +  const { laporan_id, sanksi_id } = req.query
 | 
	
		
			
				|  |  | +  if (!laporan_id || !sanksi_id) {
 | 
	
		
			
				|  |  | +    return response.error(res, {
 | 
	
		
			
				|  |  | +      message: 'query laporan_id atau sanksi_id harus ada',
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  const laporan = await cekSatuDataLaporan(res, user, laporan_id)
 | 
	
		
			
				|  |  | +  const sanksi = await cekSatuDataSanksi(res, user, sanksi_id)
 | 
	
		
			
				|  |  | +  if (!laporan || !sanksi) return
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  const isValid = validate(res, req.body, {
 | 
	
		
			
				|  |  | +    status: 'string',
 | 
	
		
			
				|  |  | +    keterangan: 'string',
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  if (!isValid) return
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  const files = req.files
 | 
	
		
			
				|  |  | +  if (!files?.length) {
 | 
	
		
			
				|  |  | +    return response.error(res, {
 | 
	
		
			
				|  |  | +      message: 'dokumen harus ada',
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  const dokumen = await addManyDokumen(files)
 | 
	
		
			
				|  |  | +  const dokumen_id = dokumen.map((e) => e._id)
 | 
	
		
			
				|  |  | +  const { status, keterangan } = req.body
 | 
	
		
			
				|  |  | +  const data = await sanksiModel.findOneAndUpdate(
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      laporan: laporan._id,
 | 
	
		
			
				|  |  | +      _id: sanksi._id,
 | 
	
		
			
				|  |  | +      keberatan: { $exists: true, $ne: null },
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      ['jawaban.keberatan']: {
 | 
	
		
			
				|  |  | +        status,
 | 
	
		
			
				|  |  | +        keterangan,
 | 
	
		
			
				|  |  | +        dokumen: dokumen_id,
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  )
 | 
	
		
			
				|  |  | +  if (!data) {
 | 
	
		
			
				|  |  | +    return response.error(res, {
 | 
	
		
			
				|  |  | +      message: 'keberatan tidak ada',
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  return response.success(res, {
 | 
	
		
			
				|  |  | +    data,
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +})
 |