pt.controller.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. const handleError = require('../../utils/v1/handleError')
  2. const response = require('../../utils/responseHandler')
  3. const pddiktiService = require('../../services/v2/pddikti.service')
  4. const { PTB_PT, PTB_LLDIKTI, PTB_DIKTI, PTB_ADMIN, PTB_READ } = require('../../utils/constanta')
  5. const roleId = require('../../middleware/role')
  6. exports.getAll = handleError(async (req, res) => {
  7. const user = req.user
  8. const pembina = user.role.id === 2021 ? user.lembaga.id : req.query.pembina
  9. const { search } = req.query
  10. let data = await pddiktiService.getPT(user.role.id === PTB_PT ? user.lembaga.id : null, { search, pembina })
  11. return response.success(res, {
  12. message: 'Berhasil mengambil data Perguruan Tinggi',
  13. data:
  14. user.role.id === PTB_PT
  15. ? data[0]
  16. : data.filter((e) => e.id !== '4B4B23C1-8E0C-4825-89FA-765401C5E9C5'),
  17. })
  18. })
  19. exports.getOne = [
  20. roleId([PTB_DIKTI, PTB_LLDIKTI, PTB_ADMIN, PTB_READ]),
  21. handleError(async (req, res) => {
  22. const user = req.user
  23. const { id } = req.params
  24. let data = await pddiktiService.getPT(id)
  25. data = data[0]
  26. if (user.role.id === PTB_LLDIKTI && data.pembina.id !== user.lembaga.id) {
  27. return response.error(res, {
  28. message: 'pt_id tidak ada',
  29. code: 404,
  30. })
  31. }
  32. return response.success(res, {
  33. message: 'Berhasil mengambil satu data Perguruan Tinggi',
  34. data,
  35. })
  36. })
  37. ]
  38. exports.public = handleError(async (req, res) => {
  39. const { search } = req.query
  40. let data = await pddiktiService.getPT(null, { search })
  41. data = data
  42. .map((e) => {
  43. return { id: e.id, nama: e.nama }
  44. })
  45. .filter((e) => e.id !== '4B4B23C1-8E0C-4825-89FA-765401C5E9C5')
  46. return response.success(res, {
  47. message: 'Berhasil mengambil data Perguruan Tinggi',
  48. data,
  49. })
  50. })