| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- 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 { menu } = req.query
- let where = { sanksi_id }
- if (menu) where.menu = menu
- const data = await catatanService.findAllWhere(where)
- 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',
- menu: 'string',
- }),
- async (req, res, next) => {
- try {
- const { sanksi_id } = req.params
- const { judul, isi, menu } = req.body
- const data = await catatanService.create({ sanksi_id, judul, isi, menu })
- 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)
- }
- },
- ]
|