Bladeren bron

tambah fitur log

yazid138 3 jaren geleden
bovenliggende
commit
ecb3efa456

+ 6 - 0
controller/auth.controller.js

@@ -7,6 +7,7 @@ const axios = require('../utils/axios')
 const qs = require('qs')
 const convertRole = require('../utils/convertRole')
 const { roleData } = require('../utils/constanta')
+const logModel = require('../model/log.model')
 
 exports.login = handleError(async (req, res) => {
   const isValid = validate(res, req.body, {
@@ -83,6 +84,11 @@ exports.login = handleError(async (req, res) => {
     }
   }
 
+  await logModel.create({
+    user: cekUser._id,
+    aktivitas: `Berhasil login`,
+  })
+
   const accessToken = jwt.sign({ _id: cekUser._id }, process.env.SECRET, {
     expiresIn: '1d',
   })

+ 16 - 0
controller/laporan.controller.js

@@ -4,6 +4,7 @@ const response = require('../utils/responseHandler')
 const laporanModel = require('../model/laporan.model')
 const pelanggaranModel = require('../model/pelanggaran.model')
 const pemantauanModel = require('../model/pemantauan.model')
+const logModel = require('../model/log.model')
 const { validate } = require('../utils/validation')
 const { notifWA } = require('../utils/notifFunction')
 const { addManyDokumen } = require('../utils/dokumenFunction')
@@ -69,6 +70,10 @@ exports.create = handleError(async (req, res) => {
     dokumen: dokumen_id,
     for_pt: false,
   })
+  await logModel.create({
+    user: user._id,
+    aktivitas: `Berhasil membuat laporan, laporan id: ${data._id}`,
+  })
 
   return response.success(res, {
     message: 'Berhasil menambah laporan',
@@ -257,6 +262,11 @@ exports.public = handleError(async (req, res) => {
     { key: '4', value: 'no_laporan', value_text: no_laporan },
   ])
 
+  await logModel.create({
+    user: user._id,
+    aktivitas: `Public berhasil membuat laporan, laporan id: ${data._id}`,
+  })
+
   return response.success(res, {
     message: 'Berhasil menambah laporan',
     data,
@@ -360,6 +370,12 @@ exports.update = handleError(async (req, res) => {
       for_pt: false,
     })
   }
+
+  await logModel.create({
+    user: user._id,
+    aktivitas: `Berhasil update laporan id: ${laporan._id}`,
+  })
+
   return response.success(res, {
     message: 'Berhasil update laporan',
     data: update,

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

@@ -1,4 +1,5 @@
 const laporanModel = require('../../model/laporan.model')
+const logModel = require('../../model/log.model')
 const handleError = require('../../utils/handleError')
 const response = require('../../utils/responseHandler')
 const { validate } = require('../../utils/validation')
@@ -65,6 +66,10 @@ exports.add = handleError(async (req, res) => {
     for_pt: false,
     for_public,
   })
+  await logModel.create({
+    user: user._id,
+    aktivitas: `Berhasil melakukan evaluasi pada laporan id: ${laporan._id}`,
+  })
 
   return response.success(res, {
     message: 'Berhasil tambah evaluasi',

+ 9 - 3
controller/laporan/jadwal.controller.js

@@ -4,6 +4,7 @@ const handleError = require('../../utils/handleError')
 const response = require('../../utils/responseHandler')
 const { validate } = require('../../utils/validation')
 const pemantauanModel = require('../../model/pemantauan.model')
+const logModel = require('../../model/log.model')
 
 exports.update = handleError(async (req, res) => {
   const user = req.user
@@ -15,12 +16,12 @@ exports.update = handleError(async (req, res) => {
     warna: 'string',
   })
   if (!isValid) return
-  
+
   const { judul, dari_tanggal, sampai_tanggal, warna } = req.body
-  
+
   const laporan = await cekSatuDataLaporan(res, user, id)
   if (!laporan) return
-  
+
   let for_public = true
   if (laporan.jadwal) {
     // message = 'Mengubah Jadwal Pemeriksaan'
@@ -57,6 +58,11 @@ exports.update = handleError(async (req, res) => {
     for_public,
   })
 
+  await logModel.create({
+    user: user._id,
+    aktivitas: `Berhasil ubah jadwal laporan id: ${laporan._id}`,
+  })
+
   return response.success(res, {
     message: 'Berhasil ubah jadwal',
     data,

+ 31 - 0
controller/log.controller.js

@@ -0,0 +1,31 @@
+const logModel = require('../model/log.model')
+const handleError = require('../utils/handleError')
+const response = require('../utils/responseHandler')
+const { validate } = require('../utils/validation')
+
+exports.create = handleError(async (req, res) => {
+  const user = req.user
+  const { aktivitas } = req.body
+
+  const isValid = validate(res, req.body, {
+    aktivitas: 'string',
+  })
+  if (!isValid) return
+
+  await logModel.create({
+    user: user._id,
+    aktivitas,
+  })
+
+  return response.success(res, {
+    message: 'log berhasil dibuat',
+  })
+})
+
+exports.all = handleError(async (req, res) => {
+  const log = await logModel.find().populate('user').sort({ createdAt: -1 })
+
+  return response.success(res, {
+    data: log,
+  })
+})

+ 6 - 0
controller/sanksi.controller.js

@@ -4,6 +4,7 @@ const response = require('../utils/responseHandler')
 const { addManyDokumen } = require('../utils/dokumenFunction')
 const { validate } = require('../utils/validation')
 const pemantauanModel = require('../model/pemantauan.model')
+const logModel = require('../model/log.model')
 const { hariKerja } = require('../utils/hariKerja')
 const {
   cekSatuDataSanksi,
@@ -71,6 +72,11 @@ exports.create = handleError(async (req, res) => {
     keterangan: 'Melakukan penetapan Sanksi',
     dokumen: dokumen_id,
   })
+  await logModel.create({
+    user: user._id,
+    aktivitas: `Berhasil melakukan penetapan sanksi pada laporan id: ${laporan._id}, sanksi id: ${data._id}`,
+  })
+
   return response.success(res, {
     message: 'Berhasil membuat Sanksi',
     data,

+ 11 - 0
controller/sanksi/banding.controller.js

@@ -7,6 +7,7 @@ const response = require('../../utils/responseHandler')
 const { hariKerja } = require('../../utils/hariKerja')
 const pemantauanModel = require('../../model/pemantauan.model')
 const { notifWA } = require('../../utils/notifFunction')
+const logModel = require('../../model/log.model')
 
 exports.create = handleError(async (req, res) => {
   const user = req.user
@@ -61,6 +62,10 @@ exports.create = handleError(async (req, res) => {
     },
     { key: '3', value: 'no_sanksi', value_text: sanksi.no_sanksi },
   ])
+  await logModel.create({
+    user: user._id,
+    aktivitas: `Berhasil mengajukan banding pada sanksi id: ${sanksi._id}`,
+  })
   return response.success(res, {
     data,
     message: 'Berhasil menambah pengajuan banding',
@@ -127,6 +132,12 @@ exports.createJawaban = handleError(async (req, res) => {
     dokumen: dokumen_id,
     for_public,
   })
+  await logModel.create({
+    user: user._id,
+    aktivitas: `Berhasil ${
+      sanksi.jawaban?.banding ? 'mengubah jawaban' : 'menjawab'
+    } pengajuan banding pada sanksi id: ${sanksi._id}`,
+  })
 
   return response.success(res, {
     data,

+ 11 - 0
controller/sanksi/cabutSanksi.controller.js

@@ -5,6 +5,7 @@ const { validate } = require('../../utils/validation')
 const { cekSatuDataSanksi, cekSatuDataLaporan } = require('../../utils/cekData')
 const response = require('../../utils/responseHandler')
 const pemantauanModel = require('../../model/pemantauan.model')
+const logModel = require('../../model/log.model')
 
 exports.create = handleError(async (req, res) => {
   const user = req.user
@@ -48,6 +49,10 @@ exports.create = handleError(async (req, res) => {
     keterangan: 'Mengajukan Pencabutan Sanksi',
     dokumen: dokumen_id,
   })
+  await logModel.create({
+    user: user._id,
+    aktivitas: `Berhasil melakukan cabut_sanksi pada sanksi id: ${sanksi._id}`,
+  })
   return response.success(res, {
     data,
     message: 'Berhasil menambah cabut_sanksi',
@@ -114,6 +119,12 @@ exports.createJawaban = handleError(async (req, res) => {
     dokumen: dokumen_id,
     for_public,
   })
+  await logModel.create({
+    user: user._id,
+    aktivitas: `Berhasil ${
+      sanksi.jawaban?.cabut_sanksi ? 'mengubah jawaban' : 'menjawab'
+    } pengajuan pencabutan sanski pada sanksi id: ${sanksi._id}`,
+  })
   return response.success(res, {
     data,
   })

+ 11 - 0
controller/sanksi/keberatan.controller.js

@@ -7,6 +7,7 @@ const response = require('../../utils/responseHandler')
 const { hariKerja } = require('../../utils/hariKerja')
 const pemantauanModel = require('../../model/pemantauan.model')
 const { notifWA } = require('../../utils/notifFunction')
+const logModel = require('../../model/log.model')
 
 exports.create = handleError(async (req, res) => {
   const user = req.user
@@ -65,6 +66,10 @@ exports.create = handleError(async (req, res) => {
     },
     { key: '3', value: 'no_sanksi', value_text: sanksi.no_sanksi },
   ])
+  await logModel.create({
+    user: user._id,
+    aktivitas: `Berhasil mengajukan keberatan pada sanksi id: ${sanksi._id}`,
+  })
   return response.success(res, {
     data,
     message: 'Berhasil menambah keberatan',
@@ -136,6 +141,12 @@ exports.createJawaban = handleError(async (req, res) => {
     dokumen: dokumen_id,
     for_public,
   })
+  await logModel.create({
+    user: user._id,
+    aktivitas: `Berhasil ${
+      sanksi.jawaban?.keberatan ? 'mengubah jawaban' : 'menjawab'
+    } pengajuan keberatan pada sanksi id: ${sanksi._id}`,
+  })
 
   return response.success(res, {
     data,

+ 5 - 0
controller/sanksi/perbaikan.controller.js

@@ -6,6 +6,7 @@ const { cekSatuDataSanksi } = require('../../utils/cekData')
 const response = require('../../utils/responseHandler')
 const pemantauanModel = require('../../model/pemantauan.model')
 const { notifWA } = require('../../utils/notifFunction')
+const logModel = require('../../model/log.model')
 
 exports.add = handleError(async (req, res) => {
   const user = req.user
@@ -70,6 +71,10 @@ exports.add = handleError(async (req, res) => {
     },
     { key: '3', value: 'no_sanksi', value_text: sanksi.no_sanksi },
   ])
+  await logModel.create({
+    user: user._id,
+    aktivitas: `Berhasil melakukan perbaikan pada sanksi id: ${sanksi._id}`,
+  })
   return response.success(res, {
     data,
     message: 'Berhasil menambah Perbaikan',

+ 18 - 0
model/log.model.js

@@ -0,0 +1,18 @@
+const mongoose = require('mongoose')
+const user = require('./user.model')
+const { Schema, Types } = mongoose
+
+module.exports = mongoose.model(
+  'Log',
+  new Schema(
+    {
+      user: {
+        type: Types.ObjectId,
+        ref: user,
+      },
+      aktivitas: { type: String },
+    },
+    { timestamps: true }
+  ),
+  'log'
+)

+ 1 - 0
routes/v1/index.js

@@ -19,5 +19,6 @@ router.use('/pt', auth, require('./pt.routes'))
 router.use('/pelanggaran', auth, require('./pelanggaran.routes'))
 router.use('/lembaga', auth, roleId([2020, 2023]), require('./lembaga.routes'))
 router.use('/graph', require('./graph.routes'))
+router.use('/log', require('./log.routes'))
 
 module.exports = router

+ 9 - 0
routes/v1/log.routes.js

@@ -0,0 +1,9 @@
+const router = require('express').Router()
+const log = require('../../controller/log.controller')
+const auth = require('../../middleware/verifyToken')
+const roleId = require('../../middleware/role')
+
+router.post('/', auth, roleId([2020, 2021, 2023]), log.create)
+router.get('/', auth, roleId(2023), log.all)
+
+module.exports = router