yazid138 2 年之前
父節點
當前提交
5517149909
共有 2 個文件被更改,包括 46 次插入36 次删除
  1. 43 36
      controller/sanksi.controller.js
  2. 3 0
      model/laporan.model.js

+ 43 - 36
controller/sanksi.controller.js

@@ -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

+ 3 - 0
model/laporan.model.js

@@ -41,6 +41,9 @@ module.exports = mongoose.model(
         sampai_tanggal: Date,
         warna: String,
       },
+      berita_acara: {
+        type: Object
+      },
       peserta_penetapan_sanksi: [
         new Schema(
           {