pelanggaran.controller.js 1.3 KB

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