pt.controller.js 1.7 KB

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