165 lines
5.3 KiB
JavaScript
165 lines
5.3 KiB
JavaScript
const db = require("../models");
|
|
const API = require('../helper/API_Response');
|
|
const db_helper = require("../helper/db_helper");
|
|
const helper = require("../helper/helper");
|
|
const { Cohort, Certificate, KnowledgeAsses, Practicetest, User, Cource, Ketexamtest, } = require("../models");
|
|
|
|
exports.getCohortForId = async (req, res) => {
|
|
const cohortId = await helper.decryptUri(req.params.id)
|
|
let output = new Promise(async (resolve, reject) => {
|
|
const cohort = Cohort.findAll({
|
|
where: {
|
|
id: cohortId,
|
|
status: 0
|
|
},
|
|
include: [{
|
|
model: Certificate,
|
|
attributes: ['id', 'certificate_name']
|
|
}]
|
|
}).then(async (res) => {
|
|
if (res.length == 0) { reject() };
|
|
for (let j = 0; j < res.length; j++) {
|
|
res[j] = res[j].toJSON()
|
|
const knowassessments = await res[j].knowassessments;
|
|
const practicetests = await res[j].practicetests;
|
|
const userslist = await (res[j].userslist ? res[j].userslist : []);
|
|
let data1 = await KnowledgeAsses.findAll({
|
|
attributes: ['id', 'knowass_name'],
|
|
where: {
|
|
status: 0,
|
|
id: knowassessments
|
|
}
|
|
});
|
|
res[j].knowledge_asses = data1.map((a) => a.toJSON())
|
|
let data2 = await Practicetest.findAll({
|
|
attributes: ['id', 'practice_name'],
|
|
where: {
|
|
status: 0,
|
|
id: practicetests
|
|
}
|
|
})
|
|
res[j].practicetests = data2.map((a) => a.toJSON())
|
|
|
|
let data3 = await User.findAll({
|
|
attributes: ['id', 'name'],
|
|
where: {
|
|
status: 0,
|
|
id: userslist
|
|
}
|
|
})
|
|
|
|
res[j].user = data3.map((a) => a.toJSON())
|
|
if ((j + 1) == res.length) {
|
|
resolve(res);
|
|
}
|
|
}
|
|
});
|
|
}).catch((ex) => {
|
|
res.status(404).send(API._404({ message: `Cohort was not found` }));
|
|
})
|
|
res.status(200).send(API._200(await output));
|
|
};
|
|
exports.updateCohort = async (req, res) => {
|
|
const cohortId = await helper.decryptUri(req.params.id)
|
|
const cohort = await Cohort.findByPk(cohortId)
|
|
if (!cohort) {
|
|
res.status(404).send(API._404({ message: `Cohort with id: ${cohortId} was not found` }));
|
|
}
|
|
if (input.cohort_name) cohort.cohort_name = input.cohort_name
|
|
if (input.certi_id) cohort.certi_id = input.certi_id
|
|
if (input.location) cohort.location = input.location
|
|
if (input.userslist) {
|
|
cohort.userslist = input.userslist
|
|
}
|
|
if (input.knowassessments) cohort.knowassessments = input.knowassessments
|
|
if (input.practicetests) {
|
|
cohort.practicetests = input.practicetests;
|
|
}
|
|
if (input.cource_id) cohort.cource_id = input.cource_id
|
|
if (input.status) cohort.status = input.status
|
|
if (input.practice_time) cohort.practice_time = input.practice_time;
|
|
|
|
res.status(200).send(API._200(await cohort.save()));
|
|
};
|
|
exports.deleteCohort = async (req, res) => {
|
|
const cohortId = await helper.decryptUri(req.params.id)
|
|
const cohort = await Cohort.findByPk(cohortId);
|
|
if (!cohort) {
|
|
res.status(404).send(API._404({ message: `Cohort with id: ${cohortId} was not found` }));
|
|
}
|
|
cohort.status = 1
|
|
await db_helper.query("update users set course_id = null where course_id =" + cohortId);
|
|
await db_helper.query("delete from cohort_schedules where cohort_id=" + cohortId);
|
|
res.status(200).send(API._200(await cohort.save()));
|
|
};
|
|
exports.getAllCohorts = async (req, res) => {
|
|
var result = new Promise(async (resolve, reject) => {
|
|
const cohort = Cohort.findAll({
|
|
where: {
|
|
status: 0,
|
|
id: 1
|
|
},
|
|
include: [{
|
|
model: Certificate,
|
|
attributes: ['id', 'certificate_name']
|
|
}, {
|
|
model: Cource,
|
|
attributes: ['id', 'course_name']
|
|
}]
|
|
}).then(async (res1) => {
|
|
if (res1.length == 0) { reject() };
|
|
for (let j = 0; j < res1.length; j++) {
|
|
res1[j] = res1[j]
|
|
const knowassessments = await res1[j].knowassessments;
|
|
const practicetests = await res1[j].practicetests;
|
|
const CATExam = await res1[j].ketexamtests;
|
|
const userslist = await (res1[j].userslist ? res1[j].userslist : []);
|
|
|
|
let data1 = await KnowledgeAsses.findAll({
|
|
attributes: ['id', 'knowass_name'],
|
|
where: {
|
|
status: 0,
|
|
id: knowassessments
|
|
}
|
|
});
|
|
|
|
res1[j].knowassessments = data1.map((a) => a.toJSON())
|
|
|
|
let data2 = await Practicetest.findAll({
|
|
attributes: ['id', 'practice_name'],
|
|
where: {
|
|
status: 0,
|
|
id: practicetests
|
|
}
|
|
})
|
|
res1[j].practicetests = data2.map((a) => a.toJSON())
|
|
|
|
|
|
let data3 = await User.findAll({
|
|
attributes: ['id', 'name'],
|
|
where: {
|
|
status: 0,
|
|
id: userslist
|
|
}
|
|
})
|
|
res1[j].userslist = data3.map((a) => a.toJSON())
|
|
|
|
let data4 = await Ketexamtest.findAll({
|
|
attributes: ['id', 'ketexam_name'],
|
|
where: {
|
|
status: 0,
|
|
id: CATExam
|
|
}
|
|
})
|
|
res1[j].ketexamtests = data4.map((a) => a.toJSON())
|
|
|
|
if ((j + 1) == res1.length) {
|
|
resolve(res1);
|
|
}
|
|
}
|
|
});
|
|
}).catch((ex) => {
|
|
res.status(404).send(API._404({ message: 'Cohort was not found' }));
|
|
})
|
|
res.status(200).send(API._200(await result));
|
|
}; |