yazid138 3 years ago
parent
commit
cb8c6537bd

+ 4 - 12
controller/auth.controller.js

@@ -32,11 +32,11 @@ exports.login = handleError(async (req, res) => {
     })
   }
 
-  const cekUser = await userModel.findOne({
+  let cekUser = await userModel.findOne({
     user_id: user.id,
   })
   if (!cekUser) {
-    await userModel.create({
+    cekUser = await userModel.create({
       user_id: user.id,
       nama: user.nama,
       lembaga: user.peran[0].organisasi,
@@ -49,20 +49,12 @@ exports.login = handleError(async (req, res) => {
     })
   }
 
-  const accessToken = jwt.sign({ id: user.id }, process.env.SECRET, {
+  const accessToken = jwt.sign({ _id: cekUser._id }, process.env.SECRET, {
     expiresIn: '1d',
   })
   const data = {
     token: `Bearer ${accessToken}`,
-    user,
-  }
-
-  if (user.peran[0].peran.id === 2022) {
-    const pt_id = user.peran[0].organisasi.id
-    const pt = await axios.get(
-      `https://api.kemdikbud.go.id:8243/pddikti/1.2/pt/${pt_id}`
-    )
-    data.pt = pt
+    user: cekUser,
   }
 
   response.success(res, {

+ 9 - 4
controller/pt.controller.js

@@ -6,7 +6,10 @@ 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 url = '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'
   if (search || pembina) {
     url += '?'
     const parseURL = []
@@ -14,7 +17,11 @@ exports.getAll = handleError(async (req, res) => {
     if (pembina) parseURL.push(`pembina=${pembina}`)
     url += parseURL.join('&')
   }
-  const data = await axios.get(url)
+
+  let data = await axios.get(url)
+  if (user.role.id === 2022) {
+    data = data[0]
+  }
   return response.success(res, {
     message: 'Berhasil mengambil data Perguruan Tinggi',
     data,
@@ -45,9 +52,7 @@ exports.public = handleError(async (req, res) => {
   let url = 'https://api.kemdikbud.go.id:8243/pddikti/1.2/pt'
   if (search) {
     url += '?'
-    const parseURL = []
     if (search) parseURL.push(`q=${search}`)
-    url += parseURL.join('&')
   }
   let data = await axios.get(url)
   data = data.map((e) => {

+ 1 - 1
middleware/verifyToken.js

@@ -19,7 +19,7 @@ module.exports = (req, res, next) => {
         message: 'Unauthorized',
       })
     try {
-      const user = await userModel.findOne({ user_id: data.id })
+      const user = await userModel.findById(data._id)
       req.user = user
       next()
     } catch (error) {

+ 1 - 1
routes/v1/index.js

@@ -15,7 +15,7 @@ router.use('/public', require('./public.routes'))
 router.use('/auth', require('./auth.routes'))
 router.use('/user', auth, require('./user.routes'))
 router.use('/pemantauan', auth, require('./pemantauan.routes'))
-router.use('/pt', auth, roleId([2020, 2021]), require('./pt.routes'))
+router.use('/pt', auth, require('./pt.routes'))
 router.use('/lembaga', auth, roleId(2020), require('./lembaga.routes'))
 
 module.exports = router

+ 3 - 2
routes/v1/pt.routes.js

@@ -1,7 +1,8 @@
 const router = require('express').Router()
 const pt = require('../../controller/pt.controller')
+const roleId = require('../../middleware/role')
 
-router.get('/', pt.getAll)
-router.get('/:id', pt.getOne)
+router.get('/', roleId([2020, 2021, 2022]), pt.getAll)
+router.get('/:id', roleId([2020, 2021]), pt.getOne)
 
 module.exports = router