yazid138 3 年之前
父节点
当前提交
4f8c2e5c88

+ 10 - 9
controller/keberatan.controller.js

@@ -1,18 +1,19 @@
 const handleError = require('../utils/handleError')
-const pengajuanModel = require('../model/pengajuan.model')
+const sanksiModel = require('../model/sanksi.model')
 const { validate } = require('../utils/validation')
 const { addManyDokumen } = require('../utils/dokumenFunction')
 const { cekSatuDataSanksi } = require('../utils/cekData')
+const response = require('../utils/responseHandler')
 
 exports.create = handleError(async (req, res) => {
   const user = req.user
-  const isValid = validate(res, req.query, {
-    laporan_id: 'string',
-    sanksi_id: 'string',
-  })
-  if (!isValid) return
-
   const { laporan_id, sanksi_id } = req.query
+  if (!laporan_id || !sanksi_id) {
+    return response.error(res, {
+      message: 'query laporan_id atau sanksi_id harus ada',
+    })
+  }
+
   const laporan = await cekSatuDataLaporan(res, user, laporan_id)
   const sanksi = await cekSatuDataSanksi(res, user, sanksi_id)
   if (!laporan || !sanksi) return
@@ -25,8 +26,8 @@ exports.create = handleError(async (req, res) => {
   }
   const dokumen = await addManyDokumen(files)
   const dokumen_id = dokumen.map((e) => e._id)
-  pengajuanModel.findOneAndUpdate(
-    { laporan: laporan._id, sanksi: sanksi._id },
+  sanksiModel.findOneAndUpdate(
+    { laporan: laporan._id, _id: sanksi._id },
     {
       keberatan: {
         dokumen: dokumen_id,

+ 1 - 6
controller/sanksi.controller.js

@@ -1,6 +1,5 @@
 const sanksiModel = require('../model/sanksi.model')
 const pelanggaranModel = require('../model/pelanggaran.model')
-const pengajuanModel = require('../model/pengajuan.model')
 const handleError = require('../utils/handleError')
 const response = require('../utils/responseHandler')
 const { addManyDokumen } = require('../utils/dokumenFunction')
@@ -53,14 +52,10 @@ exports.create = handleError(async (req, res) => {
   const data = await sanksiModel.create({
     no_sanksi,
     laporan: laporan._id,
-    pt: laporan.pt,
+    pt: laporan.pt[0],
     pelanggaran: pelanggaran_id,
     keterangan,
     dokumen: dokumen_id,
-  })
-  await pengajuanModel.create({
-    laporan: laporan._id,
-    sanksi: data._id,
     batas_waktu: {
       keberatan: hariKerja(10),
     },

+ 8 - 0
controller/user.controller.js

@@ -14,3 +14,11 @@ exports.addUserPublic = handleError(async (req, res) => {
   })
   if (!isValid) return
 })
+
+exports.get = handleError((req, res) => {
+  const user = req.user
+  return response.success(res, {
+    message: 'Berhasil mengambil data user',
+    data: user,
+  })
+})

+ 0 - 106
model/pengajuan.model.js

@@ -1,106 +0,0 @@
-const mongoose = require('mongoose')
-const { Schema, Types } = mongoose
-const dokumen = require('./dokumen.model')
-const laporan = require('./laporan.model')
-const sanksi = require('./sanksi.model')
-
-module.exports = mongoose.model(
-  'Pengajuan',
-  new Schema({
-    sanksi: { type: Types.ObjectId, ref: sanksi },
-    laporan: { type: Types.ObjectId, ref: laporan },
-    batas_waktu: {
-      keberatan: Date,
-      jawaban_keberatan: Date,
-      banding: Date,
-      jawaban_banding: Date,
-    },
-    jawaban: {
-      keberatan: new Schema(
-        {
-          status: String,
-          keterangan: String,
-          dokumen: [
-            {
-              type: Types.ObjectId,
-              ref: dokumen,
-            },
-          ],
-        },
-        { timestamps: true }
-      ),
-      banding: new Schema(
-        {
-          status: String,
-          keterangan: String,
-          dokumen: [
-            {
-              type: Types.ObjectId,
-              ref: dokumen,
-            },
-          ],
-        },
-        { timestamps: true }
-      ),
-      cabut_sanksi: new Schema(
-        {
-          status: String,
-          keterangan: String,
-          dokumen: [
-            {
-              type: Types.ObjectId,
-              ref: dokumen,
-            },
-          ],
-        },
-        { timestamps: true }
-      ),
-    },
-    keberatan: new Schema(
-      {
-        dokumen: [
-          {
-            type: Types.ObjectId,
-            ref: dokumen,
-          },
-        ],
-      },
-      { timestamps: true }
-    ),
-    banding: new Schema(
-      {
-        dokumen: [
-          {
-            type: Types.ObjectId,
-            ref: dokumen,
-          },
-        ],
-      },
-      { timestamps: true }
-    ),
-    cabut_sanksi: new Schema(
-      {
-        dokumen: [
-          {
-            type: Types.ObjectId,
-            ref: dokumen,
-          },
-        ],
-      },
-      { timestamps: true }
-    ),
-    perbaikan: new Schema(
-      {
-        keterangan: String,
-        dokumen: [
-          {
-            type: Types.ObjectId,
-            ref: dokumen,
-          },
-        ],
-      },
-      { timestamps: true }
-    ),
-  }),
-  'pengajuan'
-)

+ 92 - 0
model/sanksi.model.js

@@ -21,6 +21,98 @@ module.exports = mongoose.model(
           ref: dokumen,
         },
       ],
+      batas_waktu: {
+        keberatan: Date,
+        jawaban_keberatan: Date,
+        banding: Date,
+        jawaban_banding: Date,
+      },
+      jawaban: {
+        keberatan: new Schema(
+          {
+            status: String,
+            keterangan: String,
+            dokumen: [
+              {
+                type: Types.ObjectId,
+                ref: dokumen,
+              },
+            ],
+          },
+          { timestamps: true }
+        ),
+        banding: new Schema(
+          {
+            status: String,
+            keterangan: String,
+            dokumen: [
+              {
+                type: Types.ObjectId,
+                ref: dokumen,
+              },
+            ],
+          },
+          { timestamps: true }
+        ),
+        cabut_sanksi: new Schema(
+          {
+            status: String,
+            keterangan: String,
+            dokumen: [
+              {
+                type: Types.ObjectId,
+                ref: dokumen,
+              },
+            ],
+          },
+          { timestamps: true }
+        ),
+      },
+      keberatan: new Schema(
+        {
+          dokumen: [
+            {
+              type: Types.ObjectId,
+              ref: dokumen,
+            },
+          ],
+        },
+        { timestamps: true }
+      ),
+      banding: new Schema(
+        {
+          dokumen: [
+            {
+              type: Types.ObjectId,
+              ref: dokumen,
+            },
+          ],
+        },
+        { timestamps: true }
+      ),
+      cabut_sanksi: new Schema(
+        {
+          dokumen: [
+            {
+              type: Types.ObjectId,
+              ref: dokumen,
+            },
+          ],
+        },
+        { timestamps: true }
+      ),
+      perbaikan: new Schema(
+        {
+          keterangan: String,
+          dokumen: [
+            {
+              type: Types.ObjectId,
+              ref: dokumen,
+            },
+          ],
+        },
+        { timestamps: true }
+      ),
     },
     { timestamps: true }
   ),

+ 1 - 0
routes/v1/index.js

@@ -13,6 +13,7 @@ router.use('/laporan', auth, roleId([2020, 2021]), require('./laporan'))
 router.use('/sanksi', auth, require('./sanksi'))
 router.use('/public', require('./public.routes'))
 router.use('/auth', require('./auth.routes'))
+router.use('/user', auth, require('./user.routes'))
 router.use('/pt', require('./pt.routes'))
 
 module.exports = router

+ 2 - 0
routes/v1/sanksi/index.js

@@ -12,4 +12,6 @@ router.post(
 router.get('/', roleId([2020, 2021, 2022]), sanksi.getAll)
 router.get('/:sanksi_id', roleId([2020, 2021, 2022]), sanksi.getOne)
 
+router.use('/keberatan', require('./keberatan.routes'))
+
 module.exports = router

+ 20 - 0
routes/v1/sanksi/keberatan.routes.js

@@ -0,0 +1,20 @@
+const router = require('express').Router()
+const keberatan = require('../../../controller/keberatan.controller')
+const handleDokumen = require('../../../utils/handleDokumen')
+const roleId = require('../../../middleware/role')
+
+router.post(
+  '/create',
+  roleId([2020, 2021]),
+  handleDokumen.array('dokumen'),
+  keberatan.create
+)
+
+router.post(
+  '/jawaban/create',
+  roleId(2022),
+  handleDokumen.array('dokumen'),
+  keberatan.createJawaban
+)
+
+module.exports = router

+ 3 - 2
routes/v1/user.routes.js

@@ -1,7 +1,8 @@
 const router = require('express').Router()
-const laporan = require('../../controller/laporan.controller')
+const user = require('../../controller/user.controller')
 const handleDokumen = require('../../utils/handleDokumen')
 
-router.post('/add', handleDokumen.single('dokumen'), laporan.create)
+// router.post('/add', handleDokumen.single('dokumen'), laporan.create)
+router.get('/', user.get)
 
 module.exports = router