185 lines
6.1 KiB
JavaScript
185 lines
6.1 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 { Acronyms, Certificate, StudyMaterial, Domain, Subdomain, Topic, Cource, Video } = require("../models");
|
|
|
|
exports.studyMaterialGetById = async (req, res) => {
|
|
const studyMaterialId = await helper.decryptUri(req.params.id)
|
|
const studyMaterial = await StudyMaterial.findOne({
|
|
where: {
|
|
id: studyMaterialId,
|
|
status: 0,
|
|
},
|
|
include: [{
|
|
model: Domain,
|
|
attributes: ['id', 'domin_name']
|
|
}, {
|
|
model: Subdomain,
|
|
attributes: ['id', 'subdomain_name']
|
|
}, {
|
|
model: Topic,
|
|
attributes: ['id', 'topic_name']
|
|
}, {
|
|
model: Certificate,
|
|
attributes: ['id', 'certificate_name']
|
|
}]
|
|
});
|
|
if (!studyMaterial) {
|
|
res.status(404).send(API._404({ message: `studyMaterial with id: ${id} was not found` }));
|
|
}
|
|
res.status(200).send(API._200(await studyMaterial));
|
|
};
|
|
exports.deleteStudyMaterial = async (req, res) => {
|
|
const studyMaterialId = await helper.decryptUri(req.params.id)
|
|
const studyMaterial = await StudyMaterial.findByPk(studyMaterialId).then(async res => {
|
|
res.set("status", 1);
|
|
return await res.save();
|
|
})
|
|
res.status(200).send(API._200(await studyMaterial));
|
|
};
|
|
exports.updateStudyMaterial = async (req, res) => {
|
|
const id = await helper.decryptUri(req.params.id)
|
|
const input = await helper.decryptRequest(req.body.data);
|
|
const studyMaterial = await StudyMaterial.findByPk(id)
|
|
if (!studyMaterial) {
|
|
res.status(404).send(API._404({ message: `Certificate with id: ${id} was not found` }));
|
|
}
|
|
if (input.d_id) studyMaterial.d_id = input.d_id
|
|
if (input.sd_id) studyMaterial.sd_id = input.sd_id
|
|
if (input.certi_id) studyMaterial.certi_id = input.certi_id
|
|
if (input.cource_id) studyMaterial.cource_id = input.cource_id
|
|
if (input.topic_id) studyMaterial.topic_id = input.topic_id
|
|
if (input.subtopic_id) studyMaterial.subtopic_id = input.subtopic_id
|
|
if (input.title) studyMaterial.title = input.title
|
|
if (input.content) studyMaterial.content = input.content
|
|
if (input.status) studyMaterial.status = input.status
|
|
if (input.pdf_files) studyMaterial.pdf_files = input.pdf_files
|
|
if (input.ppt_files) studyMaterial.ppt_files = input.ppt_files
|
|
if (input.image_files) studyMaterial.image_files = input.image_files
|
|
if (input.excel_files) studyMaterial.excel_files = input.excel_files
|
|
|
|
res.status(200).send(API._200(await studyMaterial.save()));
|
|
};
|
|
exports.getAllStudyMaterial = async (req, res) => {
|
|
const studyMaterial = StudyMaterial.findAll({
|
|
where: {
|
|
status: 0
|
|
},
|
|
include: [{
|
|
model: Domain,
|
|
attributes: ['id', 'domin_name']
|
|
}, {
|
|
model: Subdomain,
|
|
attributes: ['id', 'subdomain_name']
|
|
}, {
|
|
model: Topic,
|
|
attributes: ['id', 'topic_name']
|
|
}, {
|
|
model: Certificate,
|
|
attributes: ['id', 'certificate_name']
|
|
}, {
|
|
model: Cource,
|
|
attributes: ['id', 'course_name']
|
|
}]
|
|
});
|
|
res.status(200).send(API._200(await studyMaterial));
|
|
};
|
|
exports.addStudyMaterial = async (req, res) => {
|
|
const data = await helper.decryptRequest(req.body.data);
|
|
const studyMaterial = await StudyMaterial.create(data);
|
|
res.status(200).send(API._200(await studyMaterial));
|
|
};
|
|
exports.getMaterialAssigned = async (req, res) => {
|
|
const data = await helper.decryptRequest(req.body.data);
|
|
const domains = await Domain.findAll({
|
|
attributes: ['id', 'domin_name', 'domain_number'],
|
|
where: {
|
|
certi_id: data.cource_id,
|
|
status: 0
|
|
}
|
|
});
|
|
let dArray = []
|
|
for (let d = 0; d < domains.length; d++) {
|
|
const SubDomains = await Subdomain.findAll({
|
|
attributes: ['id', 'subdomain_name', 'domain_number', 'no_assign_note'],
|
|
where: {
|
|
d_id: domains[d].id,
|
|
status: 0
|
|
}
|
|
});
|
|
let sdArray = []
|
|
for (let s = 0; s < SubDomains.length; s++) {
|
|
const topics = await Topic.findAll({
|
|
where: {
|
|
sd_id: SubDomains[s].id,
|
|
status: 0
|
|
}
|
|
});
|
|
let tArray = []
|
|
for (let t = 0; t < topics.length; t++) {
|
|
const studyMaterial = await StudyMaterial.findAll({
|
|
attributes: ['id',
|
|
'title',
|
|
'content',
|
|
'pdf_files',
|
|
'ppt_files',
|
|
'image_files',
|
|
'excel_files',
|
|
],
|
|
where: {
|
|
topic_id: topics[t].id,
|
|
status: 0
|
|
},
|
|
})
|
|
|
|
const videos = await Video.findAll({
|
|
attributes: ['id', 'video_title', 'video_thumbnil', 'duration', 'type', 'topic_list', 'video_link'],
|
|
where: {
|
|
topic_id: topics[t].id,
|
|
status: 0
|
|
},
|
|
})
|
|
// var countData = await db_helper.selectByWhere('VideoMindView', { cohort_id: input.cohort_id, user_id: input.user_id, is_completed: 1 });
|
|
// if (countData.length > 0) {
|
|
// let pdfCount = countData.filter(x => x.type == 'PDF' && x.type_id == studyMaterial[0].id)
|
|
// let pptCount = countData.filter(x => x.type == 'PPT' && x.type_id == studyMaterial[0].id)
|
|
// let excelCount = countData.filter(x => x.type == 'EXCEL' && x.type_id == studyMaterial[0].id)
|
|
// let imageCount = countData.filter(x => x.type == 'IMAGE' && x.type_id == studyMaterial[0].id)
|
|
// }
|
|
tArray.push({
|
|
id: topics[t].id,
|
|
topic_name: topics[t].topic_name,
|
|
is_check: false,
|
|
percent: 0,
|
|
wpercent: 0,
|
|
Summary: studyMaterial,
|
|
Video: videos,
|
|
})
|
|
}
|
|
sdArray.push({
|
|
id: SubDomains[s].id,
|
|
subdomain_name: SubDomains[s].subdomain_name,
|
|
domain_number: SubDomains[s].domain_number,
|
|
no_assign_note: SubDomains[s].no_assign_note,
|
|
is_check: false,
|
|
percent: 0,
|
|
wpercent: 0,
|
|
topics: tArray,
|
|
})
|
|
}
|
|
dArray.push({
|
|
id: domains[d].id,
|
|
domin_name: domains[d].domin_name,
|
|
domain_number: domains[d].domain_number,
|
|
sublen: sdArray.length,
|
|
is_check: false,
|
|
percent: 0,
|
|
wpercent: 0,
|
|
subdomains: sdArray
|
|
})
|
|
|
|
}
|
|
|
|
res.status(200).send(API._200(await dArray));
|
|
}; |