pt.controller.js 2.4 KB

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