101 lines
4.8 KiB
JavaScript
101 lines
4.8 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 { User, Version, Navigation, Onbording } = require("../models");
|
|
|
|
exports.get_dashboard_domain = async (req, res) => {
|
|
const input = await helper.decryptRequest(req.body.data);
|
|
const response = await db.sequelize.query("select * from self_paced_materials where method_id= :method_id and method_type='" + input.method_type + "' and material_type='title' and title_type='Section' and title_name like '%Domain%'", { replacements: { method_id: input.method_id } })
|
|
.then(function (data) {
|
|
return Array.from(new Set(data[0]));
|
|
})
|
|
res.status(200).send(API._200(await response));
|
|
};
|
|
exports.add = async (req, res) => {
|
|
const input = await helper.decryptRequest(req.body.data);
|
|
res.status(200).send(API._200(await db_helper.addData('VideoDiscussion', input)));
|
|
};
|
|
|
|
exports.by = async (req, res) => {
|
|
const input = await helper.decryptRequest(req.body.data);
|
|
input.status = 0;
|
|
const a = await VideoDiscussion.findAll({
|
|
where: input,
|
|
include: [{
|
|
model: User,
|
|
attributes: ['id', 'name', 'email', 'avatar_url']
|
|
}]
|
|
});
|
|
res.status(200).send(API._200(await a));
|
|
};
|
|
|
|
exports.quediscusion_add = async (req, res) => {
|
|
const input = await helper.decryptRequest(req.body.data);
|
|
res.status(200).send(API._200(await db_helper.addData('QuestionDiscussion', input)));
|
|
};
|
|
|
|
exports.review_guide = async (req, res) => {
|
|
const input = await helper.decryptRequest(req.body.data);
|
|
const all = await db.sequelize.query("select knowassessments, practicetests,ttlcards,case when ttlview>ttlcards then ttlcards else ttlview end ttlview from cohorts left join (select count(distinct cid) ttlview,IFNULL((SELECT COUNT(*) as ttlcards FROM flashcards WHERE certi_id in(select certi_id from cohorts where id= :cohort_id) and status=0),0) AS ttlcards from flashans_offlines where UserId= :user_id and cohort_id= :cohort_id) aa on 1=1 where id = :cohort_id", { replacements: { cohort_id: input.cohort_id, user_id: input.user_id } })
|
|
|
|
.then(function (data) {
|
|
return Array.from(new Set(data[0]));
|
|
})
|
|
let result = { total_ka: 0, total_pt: 0, complete_ka: 0, complete_pt: 0, ttlcards: 0, ttlview: 0 }
|
|
|
|
if (all.length > 0) {
|
|
result = {
|
|
total_ka: all[0].knowassessments ? all[0].knowassessments.split(",").length : 0,
|
|
total_pt: all[0].practicetests ? all[0].practicetests.split(",").length : 0,
|
|
ttlcards: all[0].ttlcards,
|
|
ttlview: all[0].ttlview
|
|
}
|
|
if (all[0].knowassessments) {
|
|
const ka_complete = await db.sequelize.query("select count(*) as ttl from knowcompletes where user_id= :user_id and cohort_id= :cohort_id and ka_id in(" + all[0].knowassessments + ")", { replacements: { cohort_id: input.cohort_id, user_id: input.user_id } })
|
|
.then(function (data) {
|
|
return Array.from(new Set(data[0]));
|
|
})
|
|
if (ka_complete.length > 0) {
|
|
result.complete_ka = ka_complete[0].ttl
|
|
}
|
|
}
|
|
if (all[0].practicetests) {
|
|
const pt_complete = await db.sequelize.query("select count(*) as ttl from ptestcomplates where user_id= :user_id and cohort_id= :cohort_id and pt_id in(" + all[0].practicetests + ")", { replacements: { cohort_id: input.cohort_id, user_id: input.user_id } })
|
|
.then(function (data) {
|
|
return Array.from(new Set(data[0]));
|
|
})
|
|
if (pt_complete.length > 0) {
|
|
result.complete_pt = pt_complete[0].ttl
|
|
}
|
|
}
|
|
}
|
|
|
|
res.status(200).send(API._200(await result));
|
|
};
|
|
exports.get_event_recordings = async (req, res) => {
|
|
const input = await helper.decryptRequest(req.body.data);
|
|
let query = "select live_events from cohorts where id= :cohort_id";
|
|
if (input.method_type == 'subscription') {
|
|
query = "select live_events from self_paced_subscriptions where cohort_id= :cohort_id";
|
|
} else if (input.method_type == 'free') {
|
|
query = "select live_events from self_paceds where cohort_id= :cohort_id";
|
|
} else if (input.method_type == 'onetime') {
|
|
query = "select live_events from self_paced_one_times where cohort_id= :cohort_id";
|
|
} else if (input.method_type == 'live') {
|
|
query = "select live_events from cohorts where id= :cohort_id";
|
|
}
|
|
const cohort_data = await db.sequelize.query(query, { replacements: { cohort_id: input.cohort_id } })
|
|
.then(function (data) {
|
|
return Array.from(new Set(data));
|
|
})
|
|
if (cohort_data[0][0].live_events) {
|
|
const data = await db.sequelize.query("select * from event_recordings where status=0 and event_id in(" + cohort_data[0][0].live_events + ")")
|
|
.then(function (data) {
|
|
return Array.from(new Set(data[0]));
|
|
})
|
|
res.status(200).send(API._200(await data));
|
|
} else {
|
|
res.status(200).send(API._200([]));
|
|
}
|
|
}; |