pemantauan.controller.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. const axios = require('../utils/axios')
  2. const handleError = require('../utils/handleError')
  3. const response = require('../utils/responseHandler')
  4. const pemantauanModel = require('../model/pemantauan.model')
  5. const { cekSatuDataLaporan, cekSatuDataSanksi } = require('../utils/cekData')
  6. exports.get = handleError(async (req, res) => {
  7. const user = req.user
  8. const { pt_id } = req.params
  9. const pt = await axios.get(
  10. `https://api.kemdikbud.go.id:8243/pddikti/1.2/pt/${pt_id}`
  11. )
  12. if (!pt) {
  13. return response.error(res, {
  14. message: 'pt_id tidak ditemukan',
  15. })
  16. }
  17. if (user.role.id === 2021 && user.lembaga.id !== pt[0].pembina.id) {
  18. return response.error(res, {
  19. message: 'pt_id tidak ditemukan',
  20. })
  21. }
  22. const data = await pemantauanModel
  23. .find({ pt_id })
  24. .populate({ path: 'user', select: 'nama role isPublic isPrivate' })
  25. .populate({ path: 'sanksi', select: 'no_sanksi' })
  26. .populate({ path: 'laporan', select: 'no_laporan' })
  27. .populate({ path: 'sanksi', select: 'no_sanksi' })
  28. .populate('dokumen')
  29. .sort({ createdAt: -1 })
  30. return response.success(res, {
  31. message: 'Berhasil ambil data Pemantauan',
  32. data,
  33. })
  34. })
  35. exports.getPT = handleError(async (req, res) => {
  36. const user = req.user
  37. const data = await pemantauanModel
  38. .find({ pt: user.lembaga.id, for_pt: true })
  39. .populate({ path: 'user', select: 'nama role isPublic isPrivate' })
  40. .populate({ path: 'laporan', select: 'no_laporan' })
  41. .populate({ path: 'sanksi', select: 'no_sanksi' })
  42. .populate('dokumen')
  43. .sort({ createdAt: -1 })
  44. return response.success(res, {
  45. message: 'Berhasil ambil data Pemantauan',
  46. data,
  47. })
  48. })