|
|
@@ -3,6 +3,9 @@ const response = require('../utils/responseHandler')
|
|
|
const { notifWA } = require('../utils/notifFunction')
|
|
|
const sanksiModel = require('../model/sanksi.model')
|
|
|
const laporanModel = require('../model/laporan.model')
|
|
|
+const backupModel = require('../model/backup.model')
|
|
|
+const fs = require('fs')
|
|
|
+const mime = require('mime')
|
|
|
const {
|
|
|
TEMPLATE_KEBERATAN,
|
|
|
TEMPLATE_BANDING,
|
|
|
@@ -11,6 +14,8 @@ const {
|
|
|
const moment = require('moment')
|
|
|
const autoSaveModel = require('../model/autoSave.model')
|
|
|
const { cekSatuDataSanksi, cekSatuDataLaporan } = require('../utils/cekData')
|
|
|
+const userModel = require('../model/user.model')
|
|
|
+const { addManyDokumen } = require('../utils/dokumenFunction')
|
|
|
|
|
|
exports.keberatan = handleError(async (req, res) => {
|
|
|
const dataSanksi = await sanksiModel
|
|
|
@@ -296,8 +301,6 @@ exports.save = handleError(async (req, res) => {
|
|
|
dataSuratBA: req.body?.PenetapanSanksi?.dataSuratBA || dataSave.laporan.PenetapanSanksi?.dataSuratBA,
|
|
|
dataUpload: req.body?.PenetapanSanksi?.dataUpload || dataSave.laporan.PenetapanSanksi?.dataUpload,
|
|
|
dataPelanggaran: req.body?.PenetapanSanksi?.dataPelanggaran || dataSave.laporan.PenetapanSanksi?.dataPelanggaran,
|
|
|
- activeStep: req.body?.PenetapanSanksi?.activeStep || dataSave.laporan.PenetapanSanksi?.activeStep,
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
@@ -349,3 +352,58 @@ exports.getSave = handleError(async (req, res) => {
|
|
|
data: data
|
|
|
})
|
|
|
})
|
|
|
+
|
|
|
+exports.backup = handleError(async (req, res) => {
|
|
|
+ const dataBakup = await Promise.all([
|
|
|
+ (async () => {
|
|
|
+ const path = 'backup/' + new Date().getTime() + '-sanksi.json'
|
|
|
+ const sanksi = await sanksiModel.find()
|
|
|
+ fs.writeFileSync(path, JSON.stringify(sanksi))
|
|
|
+ const { size } = fs.statSync(path)
|
|
|
+ const mimetype = 'application/json'
|
|
|
+ const buffer = fs.readFileSync(path)
|
|
|
+ return { buffer, mimetype, size, originalname: 'sanksi.json' }
|
|
|
+ })(),
|
|
|
+ (async () => {
|
|
|
+ const path = 'backup/' + new Date().getTime() + '-laporan.json'
|
|
|
+ const laporan = await laporanModel.find()
|
|
|
+ fs.writeFileSync(path, JSON.stringify(laporan))
|
|
|
+ const { size } = fs.statSync(path)
|
|
|
+ const mimetype = 'application/json'
|
|
|
+ const buffer = fs.readFileSync(path)
|
|
|
+ return { buffer, mimetype, size, originalname: 'laporan.json' }
|
|
|
+ })(),
|
|
|
+ (async () => {
|
|
|
+ const path = 'backup/' + new Date().getTime() + '-user.json'
|
|
|
+ const user = await userModel.find()
|
|
|
+ fs.writeFileSync(path, JSON.stringify(user))
|
|
|
+ const { size } = fs.statSync(path)
|
|
|
+ const mimetype = 'application/json'
|
|
|
+ const buffer = fs.readFileSync(path)
|
|
|
+ return { buffer, mimetype, size, originalname: 'user.json' }
|
|
|
+ })()
|
|
|
+ ])
|
|
|
+ const dokumen = await addManyDokumen(dataBakup)
|
|
|
+ const tes = await backupModel.create({
|
|
|
+ dokumen: dokumen.map(e => e._id)
|
|
|
+ })
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'berhasil membuat backup',
|
|
|
+ data: tes
|
|
|
+ })
|
|
|
+})
|
|
|
+
|
|
|
+
|
|
|
+exports.getBackup = handleError(async (req, res) => {
|
|
|
+ const { id } = req.params
|
|
|
+ const data = await backupModel.findById(id).populate('dokumen')
|
|
|
+ if (!data) return response.error(res, {
|
|
|
+ code: 404,
|
|
|
+ message: 'Not Found',
|
|
|
+ })
|
|
|
+
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'berhasil mengambil data backup',
|
|
|
+ data: data.dokumen
|
|
|
+ })
|
|
|
+})
|