|  | @@ -1,4 +1,5 @@
 | 
	
		
			
				|  |  |  const sanksiModel = require('../model/sanksi.model')
 | 
	
		
			
				|  |  | +const autoSaveModel = require('../model/autoSave.model')
 | 
	
		
			
				|  |  |  const handleError = require('../utils/handleError')
 | 
	
		
			
				|  |  |  const response = require('../utils/responseHandler')
 | 
	
		
			
				|  |  |  const { addManyDokumen, addDokumen } = require('../utils/dokumenFunction')
 | 
	
	
		
			
				|  | @@ -7,6 +8,7 @@ const pemantauanModel = require('../model/pemantauan.model')
 | 
	
		
			
				|  |  |  const pelanggaranModel = require('../model/pelanggaran.model')
 | 
	
		
			
				|  |  |  const logModel = require('../model/log.model')
 | 
	
		
			
				|  |  |  const { hariKerja } = require('../utils/hariKerja')
 | 
	
		
			
				|  |  | +const coba = require('../utils/coba')
 | 
	
		
			
				|  |  |  const axios = require('../utils/axios')
 | 
	
		
			
				|  |  |  const {
 | 
	
		
			
				|  |  |    cekSatuDataSanksi,
 | 
	
	
		
			
				|  | @@ -75,6 +77,11 @@ exports.create = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const dokumen = await addManyDokumen(files)
 | 
	
		
			
				|  |  |    const dokumen_id = dokumen.map((e) => e._id)
 | 
	
		
			
				|  |  | +  const autoSave = await autoSaveModel.findOne({ laporan_id: laporan._id})
 | 
	
		
			
				|  |  | +  if (autoSave?.laporan?.PenetapanSanksi)
 | 
	
		
			
				|  |  | +    await laporanModel.findByIdAndUpdate(laporan._id, {
 | 
	
		
			
				|  |  | +      berita_acara: autoSave.laporan.PenetapanSanksi,
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  |    const data = await sanksiModel.create({
 | 
	
		
			
				|  |  |      no_sanksi,
 | 
	
		
			
				|  |  |      laporan: laporan._id,
 | 
	
	
		
			
				|  | @@ -96,42 +103,42 @@ exports.create = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  // if (data) {
 | 
	
		
			
				|  |  | -  //   await axios.post(
 | 
	
		
			
				|  |  | -  //     `https://api.kemdikbud.go.id:8243/pddikti/1.2/pt/${laporan.pt.kode}/sanksi`,
 | 
	
		
			
				|  |  | -  //     JSON.stringify({
 | 
	
		
			
				|  |  | -  //       noSanksi: no_sanksi,
 | 
	
		
			
				|  |  | -  //       tmtBerlaku: from_date,
 | 
	
		
			
				|  |  | -  //       tstBerlaku: tanggal_terima_sanksi,
 | 
	
		
			
				|  |  | -  //       idJenisSanksi: Math.max(...pelanggaran.map(e => e.level_sanksi)),
 | 
	
		
			
				|  |  | -  //       alasan: 'Penetapan sanksi'
 | 
	
		
			
				|  |  | -  //     }), {
 | 
	
		
			
				|  |  | -  //       'Content-Type': 'application/json'
 | 
	
		
			
				|  |  | -  //     }
 | 
	
		
			
				|  |  | -  //   ).then(async (data) => {
 | 
	
		
			
				|  |  | -  //     await logModel.create({
 | 
	
		
			
				|  |  | -  //       user: user._id,
 | 
	
		
			
				|  |  | -  //       aktivitas: `Server berhasil mengirimkan data Ke API PDDIKTI untuk update Status PT ${laporan.pt.nama}`
 | 
	
		
			
				|  |  | -  //     })
 | 
	
		
			
				|  |  | -  //   }).catch(async e => {
 | 
	
		
			
				|  |  | -  //     await Promise.all([
 | 
	
		
			
				|  |  | -  //       laporanModel.updateOne({
 | 
	
		
			
				|  |  | -  //         _id: laporan._id
 | 
	
		
			
				|  |  | -  //       }, {
 | 
	
		
			
				|  |  | -  //         sanksi: null
 | 
	
		
			
				|  |  | -  //       }), sanksiModel.deleteOne({
 | 
	
		
			
				|  |  | -  //         _id: data._id
 | 
	
		
			
				|  |  | -  //       }), logModel.create({
 | 
	
		
			
				|  |  | -  //         user: user._id,
 | 
	
		
			
				|  |  | -  //         aktivitas: `Server gagal mengirimkan data Ke API PDDIKTI untuk update Status PT ${laporan.pt.nama}`
 | 
	
		
			
				|  |  | -  //       })
 | 
	
		
			
				|  |  | -  //     ])
 | 
	
		
			
				|  |  | -  //     return response.error(res, {
 | 
	
		
			
				|  |  | -  //       message: 'Gagal Membuat Sanksi',
 | 
	
		
			
				|  |  | -  //       error: e.message
 | 
	
		
			
				|  |  | -  //     })
 | 
	
		
			
				|  |  | -  //   })
 | 
	
		
			
				|  |  | -  // }
 | 
	
		
			
				|  |  | +  if (coba.decrypt(process.env.CXQSB) === 'production' && data) {
 | 
	
		
			
				|  |  | +    try {
 | 
	
		
			
				|  |  | +      await axios.post(
 | 
	
		
			
				|  |  | +        `https://api.kemdikbud.go.id:8243/pddikti/1.2/pt/${laporan.pt.kode}/sanksi`,
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +          noSanksi: no_sanksi,
 | 
	
		
			
				|  |  | +          tmtBerlaku: from_date,
 | 
	
		
			
				|  |  | +          tstBerlaku: tanggal_terima_sanksi,
 | 
	
		
			
				|  |  | +          idJenisSanksi: Math.max(...pelanggaran.map(e => e.level_sanksi)),
 | 
	
		
			
				|  |  | +          alasan: 'Penetapan sanksi'
 | 
	
		
			
				|  |  | +        }, {
 | 
	
		
			
				|  |  | +          'Content-Type': 'application/json',
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      await logModel.create({
 | 
	
		
			
				|  |  | +        user: user._id,
 | 
	
		
			
				|  |  | +        aktivitas: `Server berhasil mengirimkan data Ke API PDDIKTI untuk update Status PT ${laporan.pt.nama}`
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +    } catch (e) {
 | 
	
		
			
				|  |  | +      await Promise.all([
 | 
	
		
			
				|  |  | +        laporanModel.updateOne({
 | 
	
		
			
				|  |  | +          _id: laporan._id
 | 
	
		
			
				|  |  | +        }, {
 | 
	
		
			
				|  |  | +          sanksi: null
 | 
	
		
			
				|  |  | +        }), sanksiModel.deleteOne({
 | 
	
		
			
				|  |  | +          _id: data._id
 | 
	
		
			
				|  |  | +        }), logModel.create({
 | 
	
		
			
				|  |  | +          user: user._id,
 | 
	
		
			
				|  |  | +          aktivitas: `Server gagal mengirimkan data Ke API PDDIKTI untuk update Status PT ${laporan.pt.nama}`
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      ])
 | 
	
		
			
				|  |  | +      return response.error(res, {
 | 
	
		
			
				|  |  | +        message: 'Gagal Membuat Sanksi',
 | 
	
		
			
				|  |  | +        error: e.message
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    await laporanModel.findByIdAndUpdate(laporan._id, {
 | 
	
		
			
				|  |  |      sanksi: data._id
 |