yazid138 3 жил өмнө
parent
commit
039a8f019e

+ 1 - 1
controller/dokumen.controller.js

@@ -5,5 +5,5 @@ exports.getDokumen = handleError(async (req, res) => {
   const { id } = req.params
   const data = await chunkModel.findById(id)
   res.header('Content-Type', data.type)
-  res.end(Buffer.from(data.data))
+  return res.end(new Buffer(data.data, 'base64'))
 })

+ 22 - 2
controller/laporan.controller.js

@@ -72,7 +72,27 @@ exports.create = handleError(async (req, res) => {
 
 exports.getAll = handleError(async (req, res) => {
   const user = req.user
-  let data = await cekBanyakDataLaporan(user)
+  const where = {}
+  const { id, no_laporan, pt_id, jadwal, evaluasi } = req.query
+  if (id) where._id = id
+  if (no_laporan) where.no_laporan = no_laporan
+  if (pt_id) where.pt.id = pt_id
+  if (jadwal === 'true')
+    where.jadwal = {
+      $exists: true,
+      $ne: null,
+    }
+
+  if (evaluasi === 'true')
+    where.evaluasi = {
+      $exists: true,
+      $ne: null,
+      $not: {
+        $size: 0,
+      },
+    }
+
+  let data = await cekBanyakDataLaporan(user, where)
   return response.success(res, {
     message: 'Berhasil ambil data laporan',
     data,
@@ -86,6 +106,6 @@ exports.getOne = handleError(async (req, res) => {
   if (!data) return
   return response.success(res, {
     message: 'Berhasil ambil data Laporan',
-    data: user,
+    data,
   })
 })

+ 24 - 0
controller/pelanggaran.controller.js

@@ -0,0 +1,24 @@
+const handleError = require('../utils/handleError')
+const response = require('../utils/responseHandler')
+const pelanggaranModel = require('../model/pelanggaran.model')
+
+exports.getAll = handleError(async (req, res) => {
+  const user = req.user
+  const w = {}
+  if (user.role.id === 2021) {
+    w.level_sanksi = 1
+  }
+  const data = await pelanggaranModel.find(w)
+  return response.success(res, {
+    message: 'Berhasil ambil data Pelanggaran',
+    data,
+  })
+})
+
+exports.public = handleError(async (req, res) => {
+  const data = await pelanggaranModel.find().select('pelanggaran')
+  return response.success(res, {
+    message: 'Berhasil ambil data Pelanggaran',
+    data,
+  })
+})

+ 3 - 2
controller/pemantauan.controller.js

@@ -20,6 +20,8 @@ exports.get = handleError(async (req, res) => {
   const data = await pemantauanModel
     .find({ pt_id })
     .populate({ path: 'user', select: 'nama role isPublic isPrivate' })
+    .populate({ path: 'sanksi', select: 'no_sanksi' })
+    .populate({ path: 'laporan', select: 'no_laporan' })
     .populate('dokumen')
 
   return response.success(res, {
@@ -30,9 +32,8 @@ exports.get = handleError(async (req, res) => {
 
 exports.getPT = handleError(async (req, res) => {
   const user = req.user
-  const { id } = req.params
   const data = await pemantauanModel
-    .findOne({ $or: [{ laporan: id }, { sanksi: id }] })
+    .find({ pt: user.lembaga.id, for_pt: true })
     .populate({ path: 'riwayat.user', select: 'nama role isPublic isPrivate' })
     .populate('riwayat.dokumen')
   return response.success(res, {

+ 1 - 0
model/chunk.model.js

@@ -5,6 +5,7 @@ module.exports = mongoose.model(
   'Chunk',
   new Schema({
     data: Buffer,
+    type: String,
     size: Number,
   }),
   'chunk'

+ 1 - 0
routes/v1/index.js

@@ -16,6 +16,7 @@ router.use('/auth', require('./auth.routes'))
 router.use('/user', auth, require('./user.routes'))
 router.use('/pemantauan', auth, require('./pemantauan.routes'))
 router.use('/pt', auth, require('./pt.routes'))
+router.use('/pelanggaran', auth, require('./pelanggaran.routes'))
 router.use('/lembaga', auth, roleId(2020), require('./lembaga.routes'))
 
 module.exports = router

+ 8 - 0
routes/v1/pelanggaran.routes.js

@@ -0,0 +1,8 @@
+const router = require('express').Router()
+const pelanggaran = require('../../controller/pelanggaran.controller')
+const roleId = require('../../middleware/role')
+
+router.get('/', roleId([2020, 2021]), pelanggaran.getAll)
+// router.get('/:id', roleId([2020, 2021]), pt.getOne)
+
+module.exports = router

+ 1 - 1
routes/v1/pemantauan.routes.js

@@ -2,7 +2,7 @@ const router = require('express').Router()
 const pemantauan = require('../../controller/pemantauan.controller')
 const roleId = require('../../middleware/role')
 
+router.get('/pt', roleId(2022), pemantauan.getPT)
 router.get('/:pt_id', roleId([2020, 2021]), pemantauan.get)
-router.get('/pt/:laporan_id', roleId(2022), pemantauan.getPT)
 
 module.exports = router

+ 2 - 0
routes/v1/public.routes.js

@@ -1,9 +1,11 @@
 const router = require('express').Router()
 const user = require('../../controller/user.controller')
 const pt = require('../../controller/pt.controller')
+const pelanggaran = require('../../controller/pelanggaran.controller')
 const handleDokumen = require('../../utils/handleDokumen')
 
 // router.post('/user/add', handleDokumen.array('dokumen'), user.addUserPublic)
 router.get('/pt', pt.public)
+router.get('/pelanggaran', pelanggaran.public)
 
 module.exports = router

+ 2 - 2
utils/cekData.js

@@ -20,7 +20,7 @@ exports.cekSatuDataLaporan = async (res, user, laporan_id, where = {}) => {
   const laporan = await laporanModel
     .findOne(w)
     .populate('user')
-    .populate('pelanggaran')
+    .populate({ path: 'pelanggaran', select: 'pelanggaran' })
     .populate('dokumen')
     .populate('evaluasi.dokumen')
   if (!laporan) {
@@ -50,7 +50,7 @@ exports.cekBanyakDataLaporan = async (user, where = {}) => {
   const data = await laporanModel
     .find(w)
     .populate('user')
-    .select('-evaluasi -jadwal -pelanggaran -aktif -dokumen')
+    .select('-evaluasi -pelanggaran -aktif -dokumen')
     .sort({
       createdAt: -1,
     })

+ 2 - 0
utils/dokumenFunction.js

@@ -4,6 +4,7 @@ const dokumenModel = require('../model/dokumen.model')
 exports.addDokumen = async (dokumen) => {
   const chunk = await chunkModel.create({
     data: dokumen.buffer,
+    type: dokumen.mimetype,
     size: dokumen.size,
   })
   const data = await dokumenModel.create({
@@ -20,6 +21,7 @@ exports.addManyDokumen = async (dokumenArray) => {
     dokumenArray.map(async (dokumen) => {
       const chunk = await chunkModel.create({
         data: dokumen.buffer,
+        type: dokumen.mimetype,
         size: dokumen.size,
       })
       const data = await dokumenModel.create({