|
|
@@ -4,24 +4,26 @@ const sanksiModel = require('../model/sanksi.model')
|
|
|
const response = require('../utils/responseHandler')
|
|
|
|
|
|
exports.cekSatuDataLaporan = async (res, user, laporan_id, where = {}) => {
|
|
|
+ const w = { _id: laporan_id, aktif: true, ...where }
|
|
|
+ switch (user.role.id) {
|
|
|
+ case 2020:
|
|
|
+ w.role_data = 'dikti'
|
|
|
+ break
|
|
|
+ case 2021:
|
|
|
+ w.role_data = 'lldikti'
|
|
|
+ w['pt.pembina.id'] = user.lembaga.id
|
|
|
+ break
|
|
|
+ case 2022:
|
|
|
+ w['pt.id'] = user.lembaga.id
|
|
|
+ break
|
|
|
+ }
|
|
|
const laporan = await laporanModel
|
|
|
- .findOne({ _id: laporan_id, ...where })
|
|
|
+ .findOne(w)
|
|
|
.populate('user')
|
|
|
.populate('pelanggaran')
|
|
|
.populate('dokumen')
|
|
|
.populate('evaluasi.dokumen')
|
|
|
- if (
|
|
|
- laporan &&
|
|
|
- !(
|
|
|
- (user.role.id === 2021 &&
|
|
|
- laporan.role_data === 'lldikti' &&
|
|
|
- laporan.pt.pembina.id === user.lembaga.id &&
|
|
|
- laporan.aktif === true) ||
|
|
|
- (user.role.id === 2020 &&
|
|
|
- laporan.role_data === 'dikti' &&
|
|
|
- laporan.aktif === true)
|
|
|
- )
|
|
|
- ) {
|
|
|
+ if (!laporan) {
|
|
|
response.error(res, {
|
|
|
message: 'laporan_id tidak ada',
|
|
|
code: 404,
|
|
|
@@ -32,8 +34,21 @@ exports.cekSatuDataLaporan = async (res, user, laporan_id, where = {}) => {
|
|
|
}
|
|
|
|
|
|
exports.cekBanyakDataLaporan = async (user, where = {}) => {
|
|
|
- let data = await laporanModel
|
|
|
- .find({ aktif: true, ...where })
|
|
|
+ const w = { aktif: true, ...where }
|
|
|
+ switch (user.role.id) {
|
|
|
+ case 2020:
|
|
|
+ w.role_data = 'dikti'
|
|
|
+ break
|
|
|
+ case 2021:
|
|
|
+ w.role_data = 'lldikti'
|
|
|
+ w['pt.pembina.id'] = user.lembaga.id
|
|
|
+ break
|
|
|
+ case 2022:
|
|
|
+ w['pt.id'] = user.lembaga.id
|
|
|
+ break
|
|
|
+ }
|
|
|
+ const data = await laporanModel
|
|
|
+ .find(w)
|
|
|
.populate('user')
|
|
|
.populate('pelanggaran')
|
|
|
.populate('dokumen')
|
|
|
@@ -41,39 +56,34 @@ exports.cekBanyakDataLaporan = async (user, where = {}) => {
|
|
|
.sort({
|
|
|
createdAt: -1,
|
|
|
})
|
|
|
-
|
|
|
- if (user.role.id !== 2020) {
|
|
|
- data = data.filter(
|
|
|
- (e) => e.role_data === 'lldikti' && e.pt.pembina.id === user.lembaga.id
|
|
|
- )
|
|
|
- } else {
|
|
|
- data = data.filter((e) => e.role_data === 'dikti')
|
|
|
- }
|
|
|
return data
|
|
|
}
|
|
|
|
|
|
exports.cekSatuDataSanksi = async (res, user, sanksi_id, where = {}) => {
|
|
|
- const sanksi = await sanksiModel
|
|
|
- .findOne({ _id: sanksi_id, ...where })
|
|
|
+ const w = { aktif: true }
|
|
|
+ switch (user.role.id) {
|
|
|
+ case 2020:
|
|
|
+ w.role_data = 'dikti'
|
|
|
+ break
|
|
|
+ case 2021:
|
|
|
+ w.role_data = 'lldikti'
|
|
|
+ w['pt.pembina.id'] = user.lembaga.id
|
|
|
+ break
|
|
|
+ case 2022:
|
|
|
+ w['pt.id'] = user.lembaga.id
|
|
|
+ break
|
|
|
+ }
|
|
|
+ let sanksi = await sanksiModel
|
|
|
+ .findOne({ _id: sanksi_id, aktif: true, ...where })
|
|
|
.populate({
|
|
|
path: 'laporan',
|
|
|
select: 'pt role_data aktif',
|
|
|
+ match: w,
|
|
|
})
|
|
|
.populate('dokumen')
|
|
|
.populate('pelanggaran')
|
|
|
- if (
|
|
|
- sanksi &&
|
|
|
- !(
|
|
|
- (user.role.id === 2021 &&
|
|
|
- sanksi.laporan.role_data === 'lldikti' &&
|
|
|
- sanksi.pt.pembina.id === user.lembaga.id &&
|
|
|
- sanksi.laporan.aktif === true) ||
|
|
|
- (user.role.id === 2020 &&
|
|
|
- sanksi.laporan.role_data === 'dikti' &&
|
|
|
- sanksi.laporan.aktif === true) ||
|
|
|
- (user.role.id === 2022 && sanksi.pt.id === user.lembaga.id)
|
|
|
- )
|
|
|
- ) {
|
|
|
+ sanksi = sanksi.filter((e) => e.laporan !== null)
|
|
|
+ if (!sanksi) {
|
|
|
response.error(res, {
|
|
|
message: 'sanksi_id tidak ada',
|
|
|
code: 404,
|
|
|
@@ -84,28 +94,29 @@ exports.cekSatuDataSanksi = async (res, user, sanksi_id, where = {}) => {
|
|
|
}
|
|
|
|
|
|
exports.cekBanyakDataSanksi = async (user, where = {}) => {
|
|
|
+ const w = { aktif: true }
|
|
|
+ switch (user.role.id) {
|
|
|
+ case 2020:
|
|
|
+ w.role_data = 'dikti'
|
|
|
+ break
|
|
|
+ case 2021:
|
|
|
+ w['role_data'] = 'lldikti'
|
|
|
+ w['pt.pembina.id'] = user.lembaga.id
|
|
|
+ break
|
|
|
+ case 2022:
|
|
|
+ w['pt.id'] = user.lembaga.id
|
|
|
+ break
|
|
|
+ }
|
|
|
let data = await sanksiModel
|
|
|
- .find({ ...where })
|
|
|
+ .find({ aktif: true, ...where })
|
|
|
.populate({
|
|
|
path: 'laporan',
|
|
|
- select: 'role_data aktif',
|
|
|
+ select: 'role_data aktif pt',
|
|
|
+ match: w,
|
|
|
})
|
|
|
.populate('dokumen')
|
|
|
.populate('pelanggaran')
|
|
|
- if (user.role.id === 2021) {
|
|
|
- data = data.filter(
|
|
|
- (e) =>
|
|
|
- e.laporan.role_data === 'lldikti' &&
|
|
|
- e.pt.pembina.id === user.lembaga.id &&
|
|
|
- e.laporan.aktif === true
|
|
|
- )
|
|
|
- } else if (user.role.id === 2020) {
|
|
|
- data = data.filter(
|
|
|
- (e) => e.laporan.role_data === 'dikti' && e.laporan.aktif === true
|
|
|
- )
|
|
|
- } else {
|
|
|
- data = data.filter((e) => e.pt.id === user.lembaga.id)
|
|
|
- }
|
|
|
+ data = data.filter((e) => e.laporan !== null)
|
|
|
return data
|
|
|
}
|
|
|
|