pt.controller.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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)).data[0]
  25. if (user.role.id === PTB_LLDIKTI && data.pembina.id !== user.lembaga.id) {
  26. return response.error(res, {
  27. message: 'pt_id tidak ada',
  28. code: 404
  29. })
  30. }
  31. return response.success(res, {
  32. message: 'Berhasil mengambil satu data Perguruan Tinggi',
  33. data
  34. })
  35. })
  36. ]
  37. exports.public = handleError(async (req, res) => {
  38. const { search } = req.query
  39. let data = (await pddiktiService.getPT(null, { search }))
  40. .map((e) => ({ id: e.id, nama: e.nama }))
  41. .filter((e) => e.id !== '4B4B23C1-8E0C-4825-89FA-765401C5E9C5')
  42. return response.success(res, {
  43. message: 'Berhasil mengambil data Perguruan Tinggi',
  44. data
  45. })
  46. })