|  | @@ -55,6 +55,7 @@ exports.create = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |      pelanggaran: pelanggaran_id,
 | 
	
		
			
				|  |  |      keterangan,
 | 
	
		
			
				|  |  |      role_data: user.role.id === 2020 ? 'dikti' : 'lldikti',
 | 
	
		
			
				|  |  | +    level: 2,
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    data = await laporanModel.create(data)
 | 
	
	
		
			
				|  | @@ -173,24 +174,28 @@ exports.create = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |  exports.public = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |    const user = req.user
 | 
	
		
			
				|  |  |    const no_laporan = req.no_laporan
 | 
	
		
			
				|  |  | +  let level = req.level
 | 
	
		
			
				|  |  |    const files = req.files
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const isValid = validate(res, req.body, {
 | 
	
		
			
				|  |  |      pt_id: 'string',
 | 
	
		
			
				|  |  |      pelanggaran_id: 'string',
 | 
	
		
			
				|  |  |      keterangan: 'string',
 | 
	
		
			
				|  |  | -    no_verifikasi: 'string',
 | 
	
		
			
				|  |  | +    // no_verifikasi: 'string',
 | 
	
		
			
				|  |  |    })
 | 
	
		
			
				|  |  |    if (!isValid) return
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const { pt_id, keterangan, no_verifikasi } = req.body
 | 
	
		
			
				|  |  |    let { pelanggaran_id } = req.body
 | 
	
		
			
				|  |  | -  if (user.no_verifikasi !== no_verifikasi) {
 | 
	
		
			
				|  |  | +  if (no_verifikasi && user.no_verifikasi !== no_verifikasi) {
 | 
	
		
			
				|  |  |      return response.error(res, {
 | 
	
		
			
				|  |  |        message: 'no_verifikasi tidak sesuai',
 | 
	
		
			
				|  |  |        error: { no_verifikasi: 'No. Verifikasi tidak sesuai' },
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  | +  } else if (no_verifikasi && user.no_verifikasi === no_verifikasi) {
 | 
	
		
			
				|  |  | +    level = 3
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    const pt = await axios.get(
 | 
	
		
			
				|  |  |      `https://api.kemdikbud.go.id:8243/pddikti/1.2/pt/${pt_id}`
 | 
	
		
			
				|  |  |    )
 | 
	
	
		
			
				|  | @@ -222,6 +227,7 @@ exports.public = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |      pelanggaran: pelanggaran_id,
 | 
	
		
			
				|  |  |      keterangan,
 | 
	
		
			
				|  |  |      role_data: 'dikti',
 | 
	
		
			
				|  |  | +    level,
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    data = await laporanModel.create(data)
 | 
	
	
		
			
				|  | @@ -234,9 +240,14 @@ exports.public = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |      for_pt: false,
 | 
	
		
			
				|  |  |    })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  await userModel.findByIdAndUpdate(user._id, { verified: true })
 | 
	
		
			
				|  |  | +  if (no_verifikasi)
 | 
	
		
			
				|  |  | +    await userModel.findByIdAndUpdate(user._id, { verified: true })
 | 
	
		
			
				|  |  |    await notifWA('d5609c3c-e9e9-4dbe-9a4e-e8fa772d6770', [
 | 
	
		
			
				|  |  | -    { key: '1', value: 'nama', value_text: user.nama },
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      key: '1',
 | 
	
		
			
				|  |  | +      value: 'nama',
 | 
	
		
			
				|  |  | +      value_text: user.isPrivate || !user.nama ? 'rahasia' : user.nama,
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      { key: '2', value: 'pt', value_text: pt[0].nama },
 | 
	
		
			
				|  |  |      { key: '3', value: 'keterangan', value_text: keterangan },
 | 
	
		
			
				|  |  |      { key: '4', value: 'no_laporan', value_text: no_laporan },
 | 
	
	
		
			
				|  | @@ -299,15 +310,21 @@ exports.update = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |    const isValid = validate(res, req.body, {
 | 
	
		
			
				|  |  |      change_role: { type: 'string', optional: true, enum: ['true', 'false'] },
 | 
	
		
			
				|  |  |      aktif: { type: 'string', optional: true, enum: ['true', 'false'] },
 | 
	
		
			
				|  |  | +    keterangan: 'string',
 | 
	
		
			
				|  |  |    })
 | 
	
		
			
				|  |  |    if (!isValid) return
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const data = {}
 | 
	
		
			
				|  |  |    let keterangan = ''
 | 
	
		
			
				|  |  | +  let alasan = ''
 | 
	
		
			
				|  |  |    const { change_role, aktif } = req.body
 | 
	
		
			
				|  |  | +  const keterangan2 = req.body.keterangan
 | 
	
		
			
				|  |  |    if (change_role === 'true') {
 | 
	
		
			
				|  |  |      data.role_data = user.role.id === 2020 ? 'lldikti' : 'dikti'
 | 
	
		
			
				|  |  | -    keterangan = `Delegasi ke ${user.role.id === 2020 ? 'LLDIKTI' : 'DIKTI'}`
 | 
	
		
			
				|  |  | +    keterangan = `Laporan didelegasi ke ${
 | 
	
		
			
				|  |  | +      user.role.id === 2020 ? 'LLDIKTI' : 'DIKTI'
 | 
	
		
			
				|  |  | +    }`
 | 
	
		
			
				|  |  | +    alasan = keterangan2
 | 
	
		
			
				|  |  |      if (laporan.jadwal) {
 | 
	
		
			
				|  |  |        await laporanModel.findByIdAndUpdate(laporan._id, {
 | 
	
		
			
				|  |  |          $unset: { jadwal: 1 },
 | 
	
	
		
			
				|  | @@ -319,7 +336,8 @@ exports.update = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |      if (aktif === 'true') {
 | 
	
		
			
				|  |  |        keterangan = 'Laporan dibuka'
 | 
	
		
			
				|  |  |      } else {
 | 
	
		
			
				|  |  | -      keterangan = 'Laporan ditutup'
 | 
	
		
			
				|  |  | +      keterangan = `Laporan ditutup`
 | 
	
		
			
				|  |  | +      alasan = keterangan2
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -330,6 +348,7 @@ exports.update = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |        pt_id: laporan.pt.id,
 | 
	
		
			
				|  |  |        user: user._id,
 | 
	
		
			
				|  |  |        keterangan,
 | 
	
		
			
				|  |  | +      alasan,
 | 
	
		
			
				|  |  |        for_pt: false,
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |    }
 |