|
|
@@ -0,0 +1,149 @@
|
|
|
+const catatanService = require('../../services/catatan.service')
|
|
|
+const sanksiService = require('../../services/sanksi.service')
|
|
|
+const response = require('../../utils/responseHandler')
|
|
|
+const { validation } = require('../../middleware/validation')
|
|
|
+const { addDokumen } = require('../../utils/dokumenFunction')
|
|
|
+
|
|
|
+exports.getAllCatatan = async (req, res, next) => {
|
|
|
+ try {
|
|
|
+ const { sanksi_id } = req.params
|
|
|
+ const data = await catatanService.findAll(sanksi_id)
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'Berhasil mendapatkan daftar catatan',
|
|
|
+ data,
|
|
|
+ })
|
|
|
+ } catch (e) {
|
|
|
+ next(e)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+exports.getOneCatatan = async (req, res, next) => {
|
|
|
+ try {
|
|
|
+ const { catatan_id } = req.params
|
|
|
+ const data = await catatanService.findOne(catatan_id)
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'Berhasil mendapatkan catatan',
|
|
|
+ data,
|
|
|
+ })
|
|
|
+ } catch (e) {
|
|
|
+ next(e)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+exports.createCatatan = [
|
|
|
+ validation((req) => req.body, {
|
|
|
+ judul: 'string',
|
|
|
+ }),
|
|
|
+ async (req, res, next) => {
|
|
|
+ try {
|
|
|
+ const { sanksi_id } = req.params
|
|
|
+ const { judul, isi } = req.body
|
|
|
+ const data = await catatanService.create({ sanksi_id, judul, isi })
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'Berhasil membuat catatan',
|
|
|
+ data,
|
|
|
+ })
|
|
|
+ } catch (e) {
|
|
|
+ next(e)
|
|
|
+ }
|
|
|
+ },
|
|
|
+]
|
|
|
+
|
|
|
+exports.deleteCatatan = async (req, res, next) => {
|
|
|
+ try {
|
|
|
+ const { catatan_id } = req.params
|
|
|
+ await catatanService.delete(catatan_id)
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'Berhasil menghapus catatan',
|
|
|
+ })
|
|
|
+ } catch (e) {
|
|
|
+ next(e)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+exports.editCatatan = [
|
|
|
+ validation((req) => req.body, {
|
|
|
+ catatan_id: 'string',
|
|
|
+ judul: 'string',
|
|
|
+ menu: 'string',
|
|
|
+ }),
|
|
|
+ async (req, res, next) => {
|
|
|
+ try {
|
|
|
+ const { sanksi_id } = req.params
|
|
|
+ const { judul, isi, catatan_id, menu } = req.body
|
|
|
+ const sanksi = await sanksiService.findById(sanksi_id)
|
|
|
+ if (!sanksi) return next({ code: 404, message: 'sanksi_id tidak ada' })
|
|
|
+ const catatan = await catatanService.findOne(catatan_id, sanksi._id)
|
|
|
+ if (!catatan) return next({ code: 404, message: 'catatan_id tidak ada' })
|
|
|
+ await catatanService.update(catatan._id, {
|
|
|
+ judul,
|
|
|
+ isi,
|
|
|
+ menu,
|
|
|
+ })
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'Berhasil update catatan',
|
|
|
+ })
|
|
|
+ } catch (e) {
|
|
|
+ next(e)
|
|
|
+ }
|
|
|
+ },
|
|
|
+]
|
|
|
+
|
|
|
+exports.addDaftarHadir = [
|
|
|
+ validation((req) => req.body, {
|
|
|
+ nama: 'string',
|
|
|
+ }),
|
|
|
+ async (req, res, next) => {
|
|
|
+ try {
|
|
|
+ const { catatan_id } = req.params
|
|
|
+ const { nama } = req.body
|
|
|
+ const catatan = await catatanService.findOne(catatan_id)
|
|
|
+ if (!catatan) return next({ code: 404, message: 'catatan_id tidak ada' })
|
|
|
+ const file = req.file
|
|
|
+ if (!file) return next({ code: 400, message: 'ttd harus ada' })
|
|
|
+ const dokumen = await addDokumen(file)
|
|
|
+ await catatanService.update(catatan._id, {
|
|
|
+ $push: {
|
|
|
+ daftar_kehadiran_peserta: {
|
|
|
+ nama,
|
|
|
+ ttd: dokumen.id,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ })
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'Berhasil tambah daftar peserta',
|
|
|
+ })
|
|
|
+ } catch (e) {
|
|
|
+ next(e)
|
|
|
+ }
|
|
|
+ },
|
|
|
+]
|
|
|
+
|
|
|
+exports.removePeserta = [
|
|
|
+ validation((req) => req.body, {
|
|
|
+ peserta_id: 'string',
|
|
|
+ }),
|
|
|
+ async (req, res, next) => {
|
|
|
+ try {
|
|
|
+ const { catatan_id } = req.params
|
|
|
+ const { peserta_id } = req.body
|
|
|
+
|
|
|
+ const catatan = await catatanService.findOne(catatan_id)
|
|
|
+ if (!catatan) return next({ code: 404, message: 'catatan_id tidak ada' })
|
|
|
+
|
|
|
+ await catatanService.findAndUpdate(catatan._id, {
|
|
|
+ $pull: {
|
|
|
+ daftar_kehadiran_peserta: {
|
|
|
+ _id: peserta_id,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ })
|
|
|
+
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'Berhasil menghapus peserta pleno',
|
|
|
+ })
|
|
|
+ } catch (e) {
|
|
|
+ next(e)
|
|
|
+ }
|
|
|
+ },
|
|
|
+]
|