yazid138 3 年之前
父节点
当前提交
c4645ffbfe

+ 1 - 1
.gitignore

@@ -58,7 +58,7 @@ typings/
 # .env
 
 # next.js build output
-.next
+# .next
 
 # idea
 .vscode/

+ 8 - 2
controller/laporan.controller.js

@@ -5,6 +5,7 @@ const laporanModel = require('../model/laporan.model')
 const pelanggaranModel = require('../model/pelanggaran.model')
 const pemantauanModel = require('../model/pemantauan.model')
 const { validate } = require('../utils/validation')
+const { notifWA } = require('../utils/notifFunction')
 const { addDokumen, addManyDokumen } = require('../utils/dokumenFunction')
 const userModel = require('../model/user.model')
 const { cekSatuDataLaporan, cekBanyakDataLaporan } = require('../utils/cekData')
@@ -156,7 +157,12 @@ exports.public = handleError(async (req, res) => {
     dokumen: dokumen_id,
     for_pt: false,
   })
-
+  await notifWA('d5609c3c-e9e9-4dbe-9a4e-e8fa772d6770', [
+    { key: '1', value: 'nama', value_text: nama },
+    { key: '2', value: 'pt', value_text: pt[0].nama },
+    { key: '3', value: 'keterangan', value_text: keterangan },
+    { key: '4', value: 'no_laporan', value_text: no_laporan },
+  ])
   return response.success(res, {
     message: 'Berhasil menambah laporan',
     data,
@@ -195,7 +201,7 @@ exports.getOne = handleError(async (req, res) => {
   const { id } = req.params
   const user = req.user
   const { aktif } = req.query
-  const where = { }
+  const where = {}
   if (aktif) where.aktif = aktif === 'true'
   const data = await cekSatuDataLaporan(res, user, id, where)
   if (!data) return

+ 1 - 0
controller/sanksi.controller.js

@@ -53,6 +53,7 @@ exports.create = handleError(async (req, res) => {
   const data = await sanksiModel.create({
     no_sanksi,
     laporan: laporan._id,
+    user: user._id,
     pelanggaran: pelanggaran_id,
     keterangan,
     dokumen: dokumen_id,

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

@@ -6,6 +6,7 @@ const { cekSatuDataSanksi } = require('../../utils/cekData')
 const response = require('../../utils/responseHandler')
 const { hariKerja } = require('../../utils/hariKerja')
 const pemantauanModel = require('../../model/pemantauan.model')
+const { notifWA } = require('../../utils/notifFunction')
 
 exports.create = handleError(async (req, res) => {
   const user = req.user
@@ -50,6 +51,15 @@ exports.create = handleError(async (req, res) => {
     keterangan: 'Mengajukan Banding',
     dokumen: dokumen_id,
   })
+  await notifWA('2bbc0080-1187-4213-8017-b6d1d6ec3cbb', [
+    { key: '1', value: 'pt', value_text: sanksi.laporan.pt.nama },
+    {
+      key: '2',
+      value: 'pemberi_sanksi',
+      value_text: `${sanksi.user.nama} - ${sanksi.user.role.nama}`,
+    },
+    { key: '3', value: 'no_sanksi', value_text: sanksi.no_sanksi },
+  ])
   return response.success(res, {
     data,
     message: 'Berhasil menambah pengajuan banding',

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

@@ -2,10 +2,11 @@ const handleError = require('../../utils/handleError')
 const sanksiModel = require('../../model/sanksi.model')
 const { addManyDokumen } = require('../../utils/dokumenFunction')
 const { validate } = require('../../utils/validation')
-const { cekSatuDataSanksi, cekSatuDataLaporan } = require('../../utils/cekData')
+const { cekSatuDataSanksi } = require('../../utils/cekData')
 const response = require('../../utils/responseHandler')
 const { hariKerja } = require('../../utils/hariKerja')
 const pemantauanModel = require('../../model/pemantauan.model')
+const { notifWA } = require('../../utils/notifFunction')
 
 exports.create = handleError(async (req, res) => {
   const user = req.user
@@ -54,6 +55,15 @@ exports.create = handleError(async (req, res) => {
     keterangan: 'Mengajukan Keberatan',
     dokumen: dokumen_id,
   })
+  await notifWA('8d2d8bfd-4100-4f78-b877-caffded2d56a', [
+    { key: '1', value: 'pt', value_text: sanksi.laporan.pt.nama },
+    {
+      key: '2',
+      value: 'pemberi_sanksi',
+      value_text: `${sanksi.user.nama} - ${sanksi.user.role.nama}`,
+    },
+    { key: '3', value: 'no_sanksi', value_text: sanksi.no_sanksi },
+  ])
   return response.success(res, {
     data,
     message: 'Berhasil menambah keberatan',

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

@@ -5,6 +5,7 @@ const { validate } = require('../../utils/validation')
 const { cekSatuDataSanksi } = require('../../utils/cekData')
 const response = require('../../utils/responseHandler')
 const pemantauanModel = require('../../model/pemantauan.model')
+const { notifWA } = require('../../utils/notifFunction')
 
 exports.add = handleError(async (req, res) => {
   const user = req.user
@@ -59,6 +60,15 @@ exports.add = handleError(async (req, res) => {
     keterangan: 'Melakukan Perbaikan Dokumen',
     dokumen: dokumen_id,
   })
+  await notifWA('891ee9c7-39f8-416e-af5c-6b3a10e9dbec', [
+    { key: '1', value: 'pt', value_text: sanksi.laporan.pt.nama },
+    {
+      key: '2',
+      value: 'pemberi_sanksi',
+      value_text: `${sanksi.user.nama} - ${sanksi.user.role.nama}`,
+    },
+    { key: '3', value: 'no_sanksi', value_text: sanksi.no_sanksi },
+  ])
   return response.success(res, {
     data,
     message: 'Berhasil menambah Perbaikan',

+ 13 - 0
model/kontak.model.js

@@ -0,0 +1,13 @@
+const mongoose = require('mongoose')
+const { Schema } = mongoose
+
+module.exports = mongoose.model(
+  'Kontak',
+  new Schema({
+    nama: String,
+    no_hp: Number,
+    role: Object,
+    lembaga: Object,
+  }),
+  'kontak'
+)

+ 1 - 0
model/sanksi.model.js

@@ -11,6 +11,7 @@ module.exports = mongoose.model(
     {
       no_sanksi: String,
       laporan: { type: Types.ObjectId, unique: true, ref: laporan },
+      user: { type: Types.ObjectId, unique: true, ref: user },
       pelanggaran: [{ type: Types.ObjectId, ref: pelanggaran }],
       keterangan: String,
       aktif: { type: Boolean, default: true },

+ 2 - 0
utils/cekData.js

@@ -88,6 +88,7 @@ exports.cekSatuDataSanksi = async (
     })
     .populate('dokumen')
     .populate('pelanggaran')
+    .populate('user')
     .populate('pengajuan.keberatan.dokumen')
     .populate('jawaban.keberatan.dokumen')
     .populate('pengajuan.banding.dokumen')
@@ -128,6 +129,7 @@ exports.cekBanyakDataSanksi = async (user, where = { banding: false }) => {
       select: 'pt',
       match: w,
     })
+    .populate('user')
     .select('-batas_waktu -aktif -dokumen -pelanggaran')
     .sort({
       createdAt: -1,

+ 18 - 0
utils/notifFunction.js

@@ -0,0 +1,18 @@
+const axios = require('../utils/axios')
+const kontakModel = require('../model/kontak.model')
+
+exports.notifWA = async (templateId, data, where = {}) => {
+  const kontak = await kontakModel.find(where)
+  const contacts = kontak.map((e) => {
+    return { name: e.nama, number: e.no_hp }
+  })
+  const send = await axios.post(
+    'https://api.kemdikbud.go.id:8243/qontak/1.0/send',
+    {
+      templateId,
+      contacts,
+      body: data,
+    }
+  )
+  return send
+}