Explorar el Código

penambahan level laporan

yazid138 hace 3 años
padre
commit
43dc6acd9e

+ 0 - 1
controller/auth.controller.js

@@ -46,7 +46,6 @@ exports.login = handleError(async (req, res) => {
       role: user.peran[0].peran,
       isPublic: false,
       isPrivate: false,
-      priority: 'medium',
     })
   }
 

+ 13 - 6
controller/laporan.controller.js

@@ -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,6 +174,7 @@ 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, {
@@ -190,7 +192,10 @@ exports.public = handleError(async (req, 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)
@@ -235,10 +241,7 @@ exports.public = handleError(async (req, res) => {
   })
 
   if (no_verifikasi)
-    await userModel.findByIdAndUpdate(user._id, {
-      verified: true,
-      priority: 'hight',
-    })
+    await userModel.findByIdAndUpdate(user._id, { verified: true })
   await notifWA('d5609c3c-e9e9-4dbe-9a4e-e8fa772d6770', [
     {
       key: '1',
@@ -313,13 +316,15 @@ exports.update = handleError(async (req, res) => {
 
   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 = `Laporan didelegasi ke ${
       user.role.id === 2020 ? 'LLDIKTI' : 'DIKTI'
-    } dengan alasan ${keterangan2}`
+    }`
+    alasan = keterangan2
     if (laporan.jadwal) {
       await laporanModel.findByIdAndUpdate(laporan._id, {
         $unset: { jadwal: 1 },
@@ -331,7 +336,8 @@ exports.update = handleError(async (req, res) => {
     if (aktif === 'true') {
       keterangan = 'Laporan dibuka'
     } else {
-      keterangan = `Laporan ditutup dengan alasan ${keterangan2}`
+      keterangan = `Laporan ditutup`
+      alasan = keterangan2
     }
   }
 
@@ -342,6 +348,7 @@ exports.update = handleError(async (req, res) => {
       pt_id: laporan.pt.id,
       user: user._id,
       keterangan,
+      alasan,
       for_pt: false,
     })
   }

+ 7 - 0
controller/laporan/evaluasi.controller.js

@@ -49,6 +49,12 @@ exports.add = handleError(async (req, res) => {
       new: true,
     }
   )
+
+  let for_public = true
+  if (laporan.evaluasi.length > 0) {
+    for_public = false
+  }
+
   await pemantauanModel.create({
     laporan: laporan._id,
     user: user._id,
@@ -56,6 +62,7 @@ exports.add = handleError(async (req, res) => {
     keterangan: 'Melakukan evaluasi',
     dokumen: dokumen_id,
     for_pt: false,
+    for_public,
   })
 
   return response.success(res, {

+ 6 - 1
controller/laporan/jadwal.controller.js

@@ -37,7 +37,11 @@ exports.update = handleError(async (req, res) => {
   )
 
   let message = 'Mengatur Jadwal Pemeriksaan'
-  if (laporan.jadwal) message = 'Mengubah Jadwal Pemeriksaan'
+  let for_public = true
+  if (laporan.jadwal) {
+    message = 'Mengubah Jadwal Pemeriksaan'
+    for_public = false
+  }
 
   await pemantauanModel.create({
     laporan: laporan._id,
@@ -48,6 +52,7 @@ exports.update = handleError(async (req, res) => {
       dari_tanggal,
       sampai_tanggal,
     },
+    for_public,
   })
 
   return response.success(res, {

+ 1 - 1
controller/pemantauan.controller.js

@@ -84,7 +84,7 @@ exports.public = handleError(async (req, res) => {
     })
   }
   const data = await pemantauanModel
-    .find({ laporan })
+    .find({ laporan, for_public: true })
     .populate({ path: 'user', select: 'nama isPublic role' })
     .select('user keterangan laporan sanksi')
     .populate({ path: 'laporan', select: 'no_laporan' })

+ 7 - 1
controller/sanksi/banding.controller.js

@@ -109,7 +109,12 @@ exports.createJawaban = handleError(async (req, res) => {
   }
 
   let message = 'Menjawab Pengajuan Banding'
-  if (sanksi.jawaban?.banding) message = 'Mengubah jawaban Pengajuan Banding'
+  let for_public = true
+  if (sanksi.jawaban?.banding) {
+    message = 'Mengubah jawaban Pengajuan Banding'
+    for_public = false
+  }
+
   await pemantauanModel.create({
     laporan: sanksi.laporan._id,
     sanksi: sanksi._id,
@@ -117,6 +122,7 @@ exports.createJawaban = handleError(async (req, res) => {
     user: user._id,
     keterangan: message,
     dokumen: dokumen_id,
+    for_public,
   })
 
   return response.success(res, {

+ 5 - 1
controller/sanksi/cabutSanksi.controller.js

@@ -96,8 +96,11 @@ exports.createJawaban = handleError(async (req, res) => {
   }
 
   let message = 'Menjawab Pengajuan Pencabutan Sanksi'
-  if (sanksi.jawaban?.cabut_sanksi)
+  let for_public = true
+  if (sanksi.jawaban?.cabut_sanksi) {
     message = 'Mengubah jawaban Pengajuan Pencabutan Sanksi'
+    for_public = false
+  }
 
   await pemantauanModel.create({
     laporan: sanksi.laporan._id,
@@ -106,6 +109,7 @@ exports.createJawaban = handleError(async (req, res) => {
     user: user._id,
     keterangan: message,
     dokumen: dokumen_id,
+    for_public,
   })
   return response.success(res, {
     data,

+ 5 - 1
controller/sanksi/keberatan.controller.js

@@ -118,8 +118,11 @@ exports.createJawaban = handleError(async (req, res) => {
   }
 
   let message = 'Menjawab Pengajuan Keberatan'
-  if (sanksi.jawaban?.keberatan)
+  let for_public = true
+  if (sanksi.jawaban?.keberatan) {
     message = 'Mengubah jawaban Pengajuan Keberatan'
+    for_public = false
+  }
 
   await pemantauanModel.create({
     laporan: sanksi.laporan._id,
@@ -128,6 +131,7 @@ exports.createJawaban = handleError(async (req, res) => {
     pt_id: sanksi.laporan.pt.id,
     keterangan: message,
     dokumen: dokumen_id,
+    for_public,
   })
 
   return response.success(res, {

+ 14 - 15
controller/user.controller.js

@@ -38,19 +38,8 @@ exports.addUserPublic = handleError(async (req, res) => {
   }
 
   const no_verifikasi = Math.floor(Math.random() * 1000000)
-  let data = {
-    nama,
-    email,
-    no_hp,
-    alamat,
-    isPublic: true,
-    isPrivate: is_private === 'true',
-    foto: foto_id,
-    no_verifikasi,
-    verified: false,
-    priority: 'low',
-  }
 
+  let level = 1
   if (
     no_laporan &&
     pt_id &&
@@ -61,10 +50,20 @@ exports.addUserPublic = handleError(async (req, res) => {
     is_private &&
     foto_id
   ) {
-    data.priority = 'hight'
+    level = 3
   }
 
-  const user = await userModel.create(data)
+  const user = await userModel.create({
+    nama,
+    email,
+    no_hp,
+    alamat,
+    isPublic: true,
+    isPrivate: is_private === 'true',
+    foto: foto_id,
+    no_verifikasi,
+    verified: false,
+  })
 
   await notifWA2(
     '37a9ccba-e1bc-4d02-86e0-3be4c718af2a',
@@ -77,7 +76,7 @@ exports.addUserPublic = handleError(async (req, res) => {
   )
 
   const accessToken = jwt.sign(
-    { _id: user._id, no_laporan },
+    { _id: user._id, no_laporan, level },
     process.env.SECRET,
     {
       expiresIn: '30m',

+ 1 - 0
middleware/verifyTokenPublic.js

@@ -22,6 +22,7 @@ module.exports = (req, res, next) => {
       const user = await userModel.findById(data._id)
       req.user = user
       req.no_laporan = data.no_laporan
+      req.level = data.level
       next()
     } catch (error) {
       return response.error(res, {

+ 1 - 0
model/laporan.model.js

@@ -14,6 +14,7 @@ module.exports = mongoose.model(
       pt: Object,
       keterangan: String,
       pelanggaran: [{ type: Types.ObjectId, ref: pelanggaran }],
+      level: { type: Number, enum: [1, 2, 3] },
       role_data: {
         type: String,
         enum: ['dikti', 'lldikti'],

+ 1 - 0
model/pemantauan.model.js

@@ -14,6 +14,7 @@ module.exports = mongoose.model(
       pt_id: String,
       user: { type: Types.ObjectId, ref: user },
       keterangan: String,
+      alasan: String,
       dokumen: [{ type: Types.ObjectId, ref: dokumen }],
       jadwal: {
         dari_tanggal: Date,

+ 0 - 1
model/user.model.js

@@ -20,7 +20,6 @@ module.exports = mongoose.model(
     isPrivate: Boolean,
     no_verifikasi: String,
     verified: Boolean,
-    priority: { type: String, enum: ['hight', 'medium', 'low'] },
   }),
   'user'
 )