pt.controller.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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: data.filter((e)=> e.id !== "4B4B23C1-8E0C-4825-89FA-765401C5E9C5"),
  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. }).filter((e)=> e.id !== "4B4B23C1-8E0C-4825-89FA-765401C5E9C5")
  59. return response.success(res, {
  60. message: 'Berhasil mengambil data Perguruan Tinggi',
  61. data,
  62. })
  63. })