pelanggaran.controller.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const handleError = require('../../utils/v1/handleError')
  2. const response = require('../../utils/responseHandler')
  3. const pelanggaranModel = require('../../model/pelanggaran.model')
  4. const { PTB_LLDIKTI } = require('../../utils/constanta')
  5. exports.getAll = handleError(async (req, res) => {
  6. const user = req.user
  7. let { id } = req.query
  8. const w = {}
  9. if (id) {
  10. id = id.split(',')
  11. w._id = { $in: id }
  12. }
  13. if (user.role.id === PTB_LLDIKTI) w.level_sanksi = 1
  14. const data = await pelanggaranModel.find(w)
  15. return response.success(res, {
  16. message: 'Berhasil ambil data Pelanggaran',
  17. data
  18. })
  19. })
  20. exports.public = handleError(async (req, res) => {
  21. const data = await pelanggaranModel.find().select('pelanggaran')
  22. return response.success(res, {
  23. message: 'Berhasil ambil data Pelanggaran',
  24. data
  25. })
  26. })
  27. exports.sanksi = handleError(async (req, res) => {
  28. const { down } = req.query
  29. const user = req.user
  30. const w = {}
  31. if (user.role.id === PTB_LLDIKTI) w.level_sanksi = 1
  32. else {
  33. w.level_sanksi = { $in: [3, 2] }
  34. if (down === 'true') {
  35. w.level_sanksi = { $in: [1, 2] }
  36. }
  37. }
  38. const data = await pelanggaranModel.find(w)
  39. return response.success(res, {
  40. message: 'Berhasil ambil data Pelanggaran',
  41. data: [
  42. ...new Set(
  43. data.map((e) => `${e.label_sanksi};${e.sanksi};${e.level_sanksi}`)
  44. )
  45. ]
  46. })
  47. })