pddikti.service.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. const axios = require('../../utils/axios')
  2. const coba = require('../../utils/coba')
  3. const qs = require('qs')
  4. const { PRODUCTION } = require('../../utils/constanta')
  5. /**
  6. *
  7. * @param id
  8. * @param query
  9. * @returns {Promise<*>}
  10. */
  11. exports.getPT = (id, query = {}) => {
  12. let token
  13. let url = 'https://api.kemdikbud.go.id:8243/pddikti/1.2/pt'
  14. if (coba.decrypt(process.env.CXQSB) === PRODUCTION) {
  15. url = 'https://api.kemdikbud.go.id:8445/pddikti/1.2/pt'
  16. token = coba.decrypt(process.env.BEAT2)
  17. }
  18. const { search, pembina } = query
  19. if (id) url += '/' + id
  20. if (Object.keys(query).length) {
  21. url += '?'
  22. const parseUrl = []
  23. if (search) parseUrl.push(`q=${search}`)
  24. if (pembina) parseUrl.push(`pembina=${pembina}`)
  25. url += parseUrl.join('&')
  26. }
  27. return axios.get(
  28. url,
  29. token
  30. )
  31. }
  32. /**
  33. *
  34. * @param id
  35. * @param query
  36. * @returns {Promise<*>}
  37. */
  38. exports.getPembina = (id, query = {}) => {
  39. let token
  40. let url = 'https://api.kemdikbud.go.id:8243/pddikti/1.2/lembaga-non-sp'
  41. if (coba.decrypt(process.env.CXQSB) === PRODUCTION) {
  42. url = 'https://api.kemdikbud.go.id:8445/pddikti/1.2/lembaga-non-sp'
  43. token = coba.decrypt(process.env.BEAT2)
  44. }
  45. const { search } = query
  46. if (Object.keys(query).length) {
  47. url += '?'
  48. const parseURL = []
  49. if (search) parseURL.push(`q=${search}`)
  50. url += parseURL.join('&')
  51. }
  52. return axios.get(url, token)
  53. }
  54. const loginDev = ({username, password}) => new Promise((resolve) => {
  55. const data = [
  56. {
  57. id: '28DB23AE-2976-47E0-9410-241A11EE1F88',
  58. username: 'rizqevo@outlook.com',
  59. password: 'kmnjhbvg',
  60. peran: [
  61. {
  62. peran: {
  63. id: 2027,
  64. },
  65. }
  66. ]
  67. },
  68. {
  69. id: '52D3FB82-1578-498E-9C09-3AE13E4DBC61',
  70. username: 'sugiyanto@gmail.com',
  71. password: 'qwerty',
  72. peran: [
  73. {
  74. peran: {
  75. id: 2024,
  76. },
  77. }
  78. ]
  79. },
  80. {
  81. id: '447C71BC-37F8-4D14-94AD-548E6B19400F',
  82. username: 'sugiyanti@gmail.com',
  83. password: 'asdfgh',
  84. peran: [
  85. {
  86. peran: {
  87. id: 2025,
  88. },
  89. }
  90. ]
  91. },
  92. {
  93. id: '03B042F2-68EA-44AD-BA07-3E0B4E07F7E8',
  94. username: 'satyagama@gmail.com',
  95. password: 'zxcvbn',
  96. peran: [
  97. {
  98. peran: {
  99. id: 2026,
  100. },
  101. }
  102. ]
  103. }
  104. ]
  105. const user = data.find(e => e.username === username && e.password === password)
  106. if (user) {
  107. resolve(user)
  108. } else {
  109. resolve({
  110. code: 400,
  111. message: 'Username atau password salah'
  112. })
  113. }
  114. })
  115. /**
  116. *
  117. * @param username
  118. * @param password
  119. * @returns {Promise<*>}
  120. */
  121. exports.login = ({ username, password }) => {
  122. let token
  123. let url = 'https://api.kemdikbud.go.id:8243/manakses/2.0/auth'
  124. if (coba.decrypt(process.env.CXQSB) === PRODUCTION) {
  125. url = 'https://api.kemdikbud.go.id:8445/manakses/2.0/auth'
  126. token = coba.decrypt(process.env.AFA1T)
  127. } else {
  128. // return loginDev({ username, password })
  129. }
  130. return axios.post(
  131. url,
  132. qs.stringify({
  133. username,
  134. password
  135. }),
  136. token,
  137. {
  138. 'Content-Type': 'application/x-www-form-urlencoded'
  139. }
  140. )
  141. }
  142. /**
  143. *
  144. * @param ptKode
  145. * @param noSanksi
  146. * @param fromDate
  147. * @param pelanggaran
  148. * @param terimaSanksi
  149. * @returns {Promise<*>}
  150. */
  151. exports.updatePDDIKTI = ({ ptKode, noSanksi, fromDate, levelSanksi, terimaSanksi }) => {
  152. let token
  153. let url = `https://api.kemdikbud.go.id:8243/pddikti/1.2/pt/${ptKode}/sanksi`
  154. if (coba.decrypt(process.env.CXQSB) === PRODUCTION) {
  155. url = `https://api.kemdikbud.go.id:8445/pddikti/1.2/pt/${ptKode}/sanksi`
  156. token = coba.decrypt(process.env.BEAT2)
  157. }
  158. return axios.post(
  159. url,
  160. {
  161. noSanksi: noSanksi,
  162. tmtBerlaku: fromDate,
  163. tstBerlaku: terimaSanksi,
  164. idJenisSanksi: levelSanksi,
  165. alasan: 'Penetapan sanksi'
  166. },
  167. token
  168. )
  169. }
  170. /**
  171. *
  172. * @param templateId
  173. * @param data
  174. * @param contacts
  175. * @param buttons
  176. * @returns {Promise<*>}
  177. */
  178. exports.whatsapp = (templateId, contacts, data, buttons = []) => {
  179. let token
  180. let url = 'https://api.kemdikbud.go.id:8243/qontak/1.0/send'
  181. if (coba.decrypt(process.env.CXQSB) === PRODUCTION) {
  182. url = 'https://api.kemdikbud.go.id:8445/qontak/1.0/send'
  183. token = coba.decrypt(process.env.R3AOP)
  184. }
  185. return axios.post(
  186. url,
  187. {
  188. templateId,
  189. contacts,
  190. body: data,
  191. buttons: buttons.map((e, index) => ({ ...e, index }))
  192. },
  193. token
  194. )
  195. }