yazid138 há 2 anos atrás
pai
commit
90183fe0d1
6 ficheiros alterados com 46 adições e 57 exclusões
  1. 5 1
      .env
  2. 1 1
      controller/v1/laporan.controller.js
  3. 14 31
      controller/v1/pt.controller.js
  4. 1 0
      package.json
  5. 22 12
      utils/axios.js
  6. 3 12
      utils/v1/cekData.js

+ 5 - 1
.env

@@ -7,4 +7,8 @@ XNX1Q=3f551be0c7519b3765a033014ddb9fc041fb2118679b46ca59db24e33c42964d6b4e311108
 TEKQU=72372a5ec47568b3e9743691dd37a8854840e688bd0b653274e9652913c5021404cb31178efc06b48947d35ef9a58f0b73bd79236b732215d0d7cef7fa5a2d14e12bee126627525080197bd889c8c9f1279a9a99c53d9da2b8d8aadbe435a30180cfc311cc843000d20cd69820476fa0e6dce2057fb32c1d1f1ea301c892ed1f3bfb301b
 CBGTB=d69969375fb168a7d6cc35e27a5cc982896c1c0ab35d875fd54dc13b1226bb4e962994e8af5b02dc8c2d91eab09b26d06c37ff7aca82813883f98a568a733f3587f857d417bbbcbc292e88e2b706c1e79253ba7c4d300b8081c7ae5c1a5087f6f1b06020b79a3e91903bbe8946c5086643b683a287
 
-CXQSB=5c8e9b8cb0a154a9fb1683042e85231b600a18b57288165dea5a426a593ca811d4451a4b4f92714633adb67cd3fa622337208d345c82fdf23fb6673ceede764a237f4d704669533fb95a78df8a06023af172449f28f673a880360d30fd426d3c0a1b49cad1c52890a235
+CXQSB=5c8e9b8cb0a154a9fb1683042e85231b600a18b57288165dea5a426a593ca811d4451a4b4f92714633adb67cd3fa622337208d345c82fdf23fb6673ceede764a237f4d704669533fb95a78df8a06023af172449f28f673a880360d30fd426d3c0a1b49cad1c52890a235
+
+AJFAL=fa6f3dd32440d496aef10dfc53f448ef13622d6dc9d1e8625bc9ed74a7f39e9cd57c6a557f0b2fb9e001ba26f8fa6c9e46523c59a5bd0bd1a23502c22a5e3dc91788ade605f1496f2308b2ee199019c835355d464c3683b21b97b322daaf751c4c0feea47484aa361e1a526e07f789030a95
+IOQUR=1304ccaa3dad35b104850390bd73f5624396a3c7983bc842d7425e2893a7370caddde7aeaa7bd91ce43a2b607e970d04f7c472190242236d2beca993bb6ec51851c3417cd4db096f8350b926efb5d67e190586642b76d18965719f01c4de0963f13c4e632cad36f3391cf875eb30bb0e2d7900a980121a80b28fd4308a03d2b3
+ZXCND=43caa966b96598953066715249e4eee1dc707002b4134a86f153780c91929cf129dae5a4f127a1e3cd2867dd867d73699e86f1360d06826278b6135d1aa837ef0aa423874dfecf7a24c9a8a6ce6d21b9db4b8700b1a3b95f3fc001183ee477691a503ba8a271a9ad54acfec7f37297b99a156e5c89560735bb52edf92b7fdb85

+ 1 - 1
controller/v1/laporan.controller.js

@@ -13,7 +13,7 @@ const {
   cekBanyakDataLaporan,
   cekBanyakDataSanksi,
 } = require('../../utils/v1/cekData')
-const { TEMPLATE_LAPORAN, PELAPORAN, CREATE_LAPORAN, DIKTI, LLDIKTI, DITUTUP, DELEGASI, TRUE, FALSE } = require('../../utils/constanta')
+const { TEMPLATE_LAPORAN, PELAPORAN, CREATE_LAPORAN, DIKTI, LLDIKTI, DITUTUP, DELEGASI, TRUE, FALSE, ADD_JADWAL } = require('../../utils/constanta')
 const logModel = require('../../model/log.model')
 const kontakModel = require('../../model/kontak.model')
 const sanksiModel = require('../../model/sanksi.model')

+ 14 - 31
controller/v1/pt.controller.js

@@ -1,42 +1,25 @@
 const handleError = require('../../utils/v1/handleError')
 const response = require('../../utils/responseHandler')
-const axios2 = require('axios')
+const axios = require('../../utils/axios')
 const coba = require('../../utils/coba')
-const https = require('https')
-
-const axios= {
-  get: async(url) => {
-    const response = await axios2.get(url, {
-      headers: {
-        Authorization: `Bearer ${coba.decrypt(process.env.XNX1Q)}`,
-        Accept: 'application/json'
-      },
-      httpsAgent: new https.Agent({
-        rejectUnauthorized: false
-      })
-    })
-    return response.data
-  }
-}
 
 exports.getAll = handleError(async (req, res) => {
   const user = req.user
   const pembina = user.role.id === 2021 ? user.lembaga.id : req.query.pembina
   const { search } = req.query
+  let apiDikti = coba.decrypt(process.env.CXQSB) === 'production' ? 'https://api.kemdikbud.go.id:8443/pddikti/1.2/pt' : 'https://api.kemdikbud.go.id:8243/pddikti/1.2/pt'
   let url =
     user.role.id === 2022
-      ? `https://api.kemdikbud.go.id:8243/pddikti/1.2/pt/${user.lembaga.id}`
-      : 'https://api.kemdikbud.go.id:8243/pddikti/1.2/pt'
+      ? apiDikti+`/${user.lembaga.id}`
+      : apiDikti
   if (search || pembina) {
     url += '?'
-    const parseURL = []
-    if (search) parseURL.push(`q=${search}`)
-    if (pembina) parseURL.push(`pembina=${pembina}`)
-    url += parseURL.join('&')
+    const parseUrl = []
+    if (search) parseUrl.push(`q=${search}`)
+    if (pembina) parseUrl.push(`pembina=${pembina}`)
+    url += parseUrl.join('&')
   }
-
   let data = await axios.get(url)
-
   return response.success(res, {
     message: 'Berhasil mengambil data Perguruan Tinggi',
     data:
@@ -49,8 +32,9 @@ exports.getAll = handleError(async (req, res) => {
 exports.getOne = handleError(async (req, res) => {
   const user = req.user
   const { id } = req.params
+  let url = coba.decrypt(process.env.CXQSB) === 'production' ? 'https://api.kemdikbud.go.id:8443/pddikti/1.2/pt' : 'https://api.kemdikbud.go.id:8243/pddikti/1.2/pt'
   let data = await axios.get(
-    `https://api.kemdikbud.go.id:8243/pddikti/1.2/pt/${id}`
+    url+`/${id}`
   )
   data = data[0]
   if (user.role.id === 2021 && data.pembina.id !== user.lembaga.id) {
@@ -67,13 +51,12 @@ exports.getOne = handleError(async (req, res) => {
 
 exports.public = handleError(async (req, res) => {
   const { search } = req.query
-  let url = 'https://api.kemdikbud.go.id:8243/pddikti/1.2/pt'
-
+  let url = coba.decrypt(process.env.CXQSB) === 'production' ? 'https://api.kemdikbud.go.id:8443/pddikti/1.2/pt' : 'https://api.kemdikbud.go.id:8243/pddikti/1.2/pt'
   if (search) {
     url += '?'
-    const parseURL = []
-    if (search) parseURL.push(`q=${search}`)
-    url += parseURL.join('&')
+    const parseUrl = []
+    if (search) parseUrl.push(`q=${search}`)
+    url += parseUrl.join('&')
   }
   let data = await axios.get(url)
   data = data

+ 1 - 0
package.json

@@ -19,6 +19,7 @@
     "dotenv": "^16.0.0",
     "express": "~4.16.1",
     "fastest-validator": "^1.12.0",
+    "form-data": "^4.0.0",
     "jsonwebtoken": "^8.5.1",
     "moment": "^2.29.1",
     "mongoose": "^6.2.7",

+ 22 - 12
utils/axios.js

@@ -1,20 +1,30 @@
 const axios = require('axios')
 const https = require('https')
 const coba = require('./coba')
+const FormData = require('form-data')
 
 exports.get = async (url) => {
-  const baseUrl = coba.decrypt(process.env.W8A1C)
-  let token = process.env.TEKQU
-  if (baseUrl.includes('dev')) token = process.env.XNX1Q
-  const response = await axios.get(url, {
-    headers: {
-      Authorization: `Bearer ${coba.decrypt(token)}`,
-      Accept: 'application/json',
-    },
-    httpsAgent: new https.Agent({
-      rejectUnauthorized: false,
-    }),
-  })
+  let response
+  if (coba.decrypt(process.env.CXQSB) === 'production') {
+    const fd = new FormData()
+    fd.append('grant_type', coba.decrypt(process.env.AJFAL))
+    fd.append('client_id', coba.decrypt(process.env.IOQUR))
+    fd.append('client_secret', coba.decrypt(process.env.ZXCND))
+    let token = await axios.post('https://api.kemdikbud.go.id:8443/pddikti/1.2/oauth2/token', fd, { headers: { ...fd.getHeaders() } })
+    console.log(token)
+    response = await axios.get(url, { headers: { Authorization: `Bearer ${token?.data['access_token']}` } })
+  } else {
+    let token = process.env.XNX1Q
+    response = await axios.get(url, {
+      headers: {
+        Authorization: `Bearer ${coba.decrypt(token)}`,
+        Accept: 'application/json'
+      },
+      httpsAgent: new https.Agent({
+        rejectUnauthorized: false
+      })
+    })
+  }
   return response.data
 }
 

+ 3 - 12
utils/v1/cekData.js

@@ -71,19 +71,12 @@ exports.cekBanyakDataLaporan = async (user, where = { delegasi: false }, options
   else delete w.aktif
   switch (user.role.id) {
     case 2020:
-      if (where.all) {
-        // w.role_asal = 'dikti'
-        // w['$or'] = [
-        //   { role_asal : 'dikti' },
-        //   { role_asal: 'lldikti', role_data: 'dikti' },
-        // ]
-        break
-      } else if (!where.delegasi) {
-        w.role_data = 'dikti'
-      } else {
+      if (where.all) break
+      else if (where.delegasi) {
         w.role_data = 'lldikti'
         w.role_asal = 'dikti'
       }
+      else w.role_data = 'dikti'
       break
     case 2021:
       if (where.all) {
@@ -181,7 +174,6 @@ exports.cekBanyakDataSanksi = async (user, where = {}, q = {}) => {
   const w = { ...q }
   switch (user.role.id) {
     case 2020:
-      // if (where.all) w.role_asal = 'dikti'
       if (where.all) break
       else if (where.delegasi) {
         w.role_data = 'lldikti'
@@ -191,7 +183,6 @@ exports.cekBanyakDataSanksi = async (user, where = {}, q = {}) => {
           $in: [2, 3],
         }
       else w.role_data = 'dikti'
-      // else if (!where.banding) w.role_data = 'dikti'
       break
     case 2021:
       w['pt.pembina.id'] = user.lembaga.id