pt.controller.js 2.4 KB

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