pt.controller.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. const handleError = require('../../utils/v1/handleError')
  2. const response = require('../../utils/responseHandler')
  3. const axios = require('../../utils/axios')
  4. const coba = require('../../utils/coba')
  5. exports.getAll = handleError(async (req, res) => {
  6. const user = req.user
  7. const pembina = user.role.id === 2021 ? user.lembaga.id : req.query.pembina
  8. const { search } = req.query
  9. let apiDikti = coba.decrypt(process.env.CXQSB) === 'production' ? 'https://api.kemdikbud.go.id:8443/pddikti/1.2/pt' : 'https://api.kemdikbud.go.id:8243/pddikti/1.2/pt'
  10. let url =
  11. user.role.id === 2022
  12. ? apiDikti+`/${user.lembaga.id}`
  13. : apiDikti
  14. if (search || pembina) {
  15. url += '?'
  16. const parseUrl = []
  17. if (search) parseUrl.push(`q=${search}`)
  18. if (pembina) parseUrl.push(`pembina=${pembina}`)
  19. url += parseUrl.join('&')
  20. }
  21. let data = await axios.get(url)
  22. return response.success(res, {
  23. message: 'Berhasil mengambil data Perguruan Tinggi',
  24. data:
  25. user.role.id === 2022
  26. ? data[0]
  27. : data.filter((e) => e.id !== '4B4B23C1-8E0C-4825-89FA-765401C5E9C5'),
  28. })
  29. })
  30. exports.getOne = handleError(async (req, res) => {
  31. const user = req.user
  32. const { id } = req.params
  33. let url = coba.decrypt(process.env.CXQSB) === 'production' ? 'https://api.kemdikbud.go.id:8443/pddikti/1.2/pt' : 'https://api.kemdikbud.go.id:8243/pddikti/1.2/pt'
  34. let data = await axios.get(
  35. url+`/${id}`
  36. )
  37. data = data[0]
  38. if (user.role.id === 2021 && data.pembina.id !== user.lembaga.id) {
  39. return response.error(res, {
  40. message: 'pt_id tidak ada',
  41. code: 404,
  42. })
  43. }
  44. return response.success(res, {
  45. message: 'Berhasil mengambil satu data Perguruan Tinggi',
  46. data,
  47. })
  48. })
  49. exports.public = handleError(async (req, res) => {
  50. const { search } = req.query
  51. let url = coba.decrypt(process.env.CXQSB) === 'production' ? 'https://api.kemdikbud.go.id:8443/pddikti/1.2/pt' : 'https://api.kemdikbud.go.id:8243/pddikti/1.2/pt'
  52. if (search) {
  53. url += '?'
  54. const parseUrl = []
  55. if (search) parseUrl.push(`q=${search}`)
  56. url += parseUrl.join('&')
  57. }
  58. let data = await axios.get(url)
  59. data = data
  60. .map((e) => {
  61. return { id: e.id, nama: e.nama }
  62. })
  63. .filter((e) => e.id !== '4B4B23C1-8E0C-4825-89FA-765401C5E9C5')
  64. return response.success(res, {
  65. message: 'Berhasil mengambil data Perguruan Tinggi',
  66. data,
  67. })
  68. })