pt.controller.js 1.8 KB

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