185 lines
6.6 KiB
JavaScript
185 lines
6.6 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 { AppSupport, Cohort } = require("../models");
|
|
const multer = require('multer');
|
|
const storage = multer.diskStorage({
|
|
destination: function (req, file, cb) {
|
|
cb(null, 'uploads/');
|
|
},
|
|
filename: function (req, file, cb) {
|
|
cb(null, Date.now() + '-' + file.originalname);
|
|
}
|
|
});
|
|
const upload = multer({ storage: storage }).single('file');
|
|
|
|
exports.all = async (req, res) => {
|
|
const all_Data = await AppSupport.findAll({
|
|
where: {
|
|
status: 0
|
|
},
|
|
order: [
|
|
['createdAt', 'DESC'],
|
|
],
|
|
include: [{
|
|
model: User,
|
|
attributes: ['id', 'name', 'email']
|
|
}],
|
|
|
|
})
|
|
res.status(200).send(API._200(await all_Data));
|
|
};
|
|
exports.bulk_student = async (req, res) => {
|
|
const input = await helper.decryptRequest(req.body.data);
|
|
let resdata = {};
|
|
let bulk = {
|
|
"name": input.data.name,
|
|
"roll_id": input.data.roll_id,
|
|
"allow_access": input.data.allow_access,
|
|
"is_temp": input.data.is_temp,
|
|
"password": input.data.password,
|
|
"email": input.data.email,
|
|
"company_id": input.data.company_id,
|
|
"is_selfpaced": input.data.is_selfpaced
|
|
}
|
|
|
|
const users = await db_helper.addData("User", bulk)
|
|
let cohortmessage = "";
|
|
let checkcohort = false;
|
|
if (!users.message) {
|
|
resdata["userstatus"] = 1;
|
|
resdata["message"] = "Success";
|
|
for (let i = 0; i < input.data.cohort.length; i++) {
|
|
var cohortdata = await db_helper.query("select * from cohorts where id=" + input.data.cohort[i].cohort_id + " and find_in_set(" + users.id + ",userslist)");
|
|
if (cohortdata[0].length <= 0) {
|
|
const cohort = await Cohort.findByPk(input.data.cohort[i].cohort_id);
|
|
let uid = cohort.userslist;
|
|
if (uid.length > 0)
|
|
cohort.userslist = uid + "," + users.id;
|
|
else
|
|
cohort.userslist = users.id + "";
|
|
await cohort.save();
|
|
let accessDuration = {
|
|
"user_id": users.id,
|
|
"cohort_id": input.data.cohort[i].cohort_id,
|
|
"plan_id": input.data.cohort[i].plan_id,
|
|
"plan_type": input.data.cohort[i].plan_type,
|
|
"access_duration": input.data.cohort[i].access_duration
|
|
}
|
|
const cc = await db_helper.selectByWhere("AccessDuration", accessDuration);
|
|
if (cc.length > 0) {
|
|
accessDuration['id'] = cc[0].id;
|
|
await db_helper.update("AccessDuration", accessDuration);
|
|
} else {
|
|
await db_helper.addData("AccessDuration", accessDuration);
|
|
}
|
|
let save_transaction = {
|
|
"user_id": users.id,
|
|
"payment_type": input.data.cohort[i].payment_type,
|
|
"plan_id": input.data.cohort[i].plan_id,
|
|
"access_duration": input.data.cohort[i].access_duration,
|
|
"amount": "Enroll by admin",
|
|
"certi_id": input.data.cohort[i].certi_id,
|
|
"cohort_id": input.data.cohort[i].cohort_id,
|
|
}
|
|
await db_helper.addData("PaymentTransaction", save_transaction)
|
|
if (!checkcohort) {
|
|
resdata["cohortstatus"] = 1;
|
|
resdata["cohortmessage"] = "Success";
|
|
resdata["cohortmessage"] = uid;
|
|
}
|
|
}
|
|
else {
|
|
resdata["cohortstatus"] = 0;
|
|
resdata["cohortmessage"] = "Failed";
|
|
checkcohort = true;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
|
|
if (users.message == "Oops. Looks like email already exist.") {
|
|
var userdetails = await db_helper.query("select * from users where email='" + input.data.email + "'");
|
|
resdata["userstatus"] = 0;
|
|
resdata["message"] = "Oops. Looks like email already exist.";
|
|
for (let i = 0; i < input.data.cohort.length; i++) {
|
|
|
|
var cohortdata = await db_helper.query("select * from cohorts where id=" + input.data.cohort[i].cohort_id + " and find_in_set(" + userdetails[0][0].id + ",userslist)");
|
|
if (cohortdata[0].length <= 0) {
|
|
const cohort = await Cohort.findByPk(input.data.cohort[i].cohort_id);
|
|
let uid = cohort.userslist;
|
|
if (uid.length > 0)
|
|
cohort.userslist = uid + "," + userdetails[0][0].id;
|
|
else
|
|
cohort.userslist = userdetails[0][0].id + "";
|
|
await cohort.save();
|
|
let accessDuration = {
|
|
"user_id": userdetails[0][0].id,
|
|
"cohort_id": input.data.cohort[i].cohort_id,
|
|
"plan_id": input.data.cohort[i].plan_id,
|
|
"plan_type": input.data.cohort[i].plan_type,
|
|
"access_duration": input.data.cohort[i].access_duration
|
|
}
|
|
const cc = await db_helper.selectByWhere("AccessDuration", accessDuration);
|
|
if (cc.length > 0) {
|
|
accessDuration['id'] = cc[0].id;
|
|
await db_helper.update("AccessDuration", accessDuration);
|
|
} else {
|
|
await db_helper.addData("AccessDuration", accessDuration);
|
|
}
|
|
let save_transaction = {
|
|
"user_id": userdetails[0][0].id,
|
|
"payment_type": input.data.cohort[i].payment_type,
|
|
"plan_id": input.data.cohort[i].plan_id,
|
|
"access_duration": input.data.cohort[i].access_duration,
|
|
"amount": "Enroll by admin",
|
|
"certi_id": input.data.cohort[i].certi_id,
|
|
"cohort_id": input.data.cohort[i].cohort_id,
|
|
}
|
|
await db_helper.addData("PaymentTransaction", save_transaction)
|
|
if (!checkcohort) {
|
|
resdata["cohortstatus"] = 1;
|
|
resdata["cohortmessage"] = "Success";
|
|
}
|
|
}
|
|
else {
|
|
resdata["cohortstatus"] = 0;
|
|
resdata["cohortmessage"] = "Failed";
|
|
checkcohort = true;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
resdata["userstatus"] = 2;
|
|
resdata["message"] = "Failed";
|
|
resdata["cohortstatus"] = 0;
|
|
resdata["cohortmessage"] = "Failed";
|
|
}
|
|
}
|
|
res.status(200).send(API._200(await resdata));
|
|
};
|
|
exports.delete = async (req, res) => {
|
|
const input = await helper.decryptRequest(req.body.data);
|
|
res.status(200).send(API._200(await db_helper.statusChange('AppSupport', input.id)));
|
|
};
|
|
exports.sendEmail = async (req, res) => {
|
|
const input = await helper.decryptRequest(req.body.data);
|
|
let data = {
|
|
to: input.to,
|
|
subject: input.subject,
|
|
text: input.text
|
|
}
|
|
await helper.sendMail(data)
|
|
res.status(200).send(API._200({ message: "Email sent success" }));
|
|
};
|
|
exports.uploadFile = async (req, res) => {
|
|
upload(req, res, async function (err) {
|
|
if (err) {
|
|
res.status(400).send(API._400({ message: "File upload failed" }));
|
|
} else {
|
|
const fileName = req.file.filename;
|
|
res.status(200).send(API._200({ fileName: fileName }));
|
|
}
|
|
})
|
|
}; |