let router = require("express").Router();
const access = require("../utils/access");
const UserModel = require("../models/user");
-const AssessmentModel = require("../models/assessment");
+const EvaluationModel = require("../models/evaluation");
const CourseModel = require("../models/course");
const params = require("../config/parameters");
const validator = require("../public/javascripts/utils/validation");
},
};
-router.post("/assessments", access.ajax, access.logged, (req,res) => {
+router.post("/evaluations", access.ajax, access.logged, (req,res) => {
const name = req.body["name"];
const cid = req.body["cid"];
- let error = validator({cid:cid, name:name}, "Assessment");
+ let error = validator({cid:cid, name:name}, "Evaluation");
if (error.length > 0)
return res.json({errmsg:error});
- AssessmentModel.add(req.user._id, ObjectId(cid), name, (err,assessment) => {
- access.checkRequest(res, err, assessment, "Assessment addition failed", () => {
- res.json(assessment);
+ EvaluationModel.add(req.user._id, ObjectId(cid), name, (err,evaluation) => {
+ access.checkRequest(res, err, evaluation, "Evaluation addition failed", () => {
+ res.json(evaluation);
});
});
});
-router.put("/assessments", access.ajax, access.logged, (req,res) => {
- const assessment = JSON.parse(req.body["assessment"]);
- let error = validator(assessment, "Assessment");
+router.put("/evaluations", access.ajax, access.logged, (req,res) => {
+ const evaluation = JSON.parse(req.body["evaluation"]);
+ let error = validator(evaluation, "Evaluation");
if (error.length > 0)
return res.json({errmsg:error});
- assessment.introduction = sanitizeHtml(assessment.introduction, sanitizeOpts);
- assessment.questions.forEach( q => {
+ evaluation.introduction = sanitizeHtml(evaluation.introduction, sanitizeOpts);
+ evaluation.questions.forEach( q => {
q.wording = sanitizeHtml(q.wording, sanitizeOpts);
//q.answer = sanitizeHtml(q.answer); //if text (TODO: it's an array in this case?!)
for (let i=0; i<q.options.length; i++) //if QCM
q.options[i] = sanitizeHtml(q.options[i], sanitizeOpts);
});
- AssessmentModel.update(req.user._id, assessment, (err,ret) => {
- access.checkRequest(res, err, ret, "Assessment update failed", () => {
+ EvaluationModel.update(req.user._id, evaluation, (err,ret) => {
+ access.checkRequest(res, err, ret, "Evaluation update failed", () => {
res.json({});
});
});
});
// Generate and set student password, return it
-router.put("/assessments/start", access.ajax, (req,res) => {
+router.put("/evaluations/start", access.ajax, (req,res) => {
let number = req.body["number"];
- let aid = req.body["aid"];
+ let eid = req.body["eid"];
let password = req.cookies["password"]; //potentially from cookies, resuming
- let error = validator({ _id:aid, papers:[{number:number,password:password || "samplePwd"}] }, "Assessment");
+ let error = validator({ _id:eid, papers:[{number:number,password:password || "samplePwd"}] }, "Evaluation");
if (error.length > 0)
return res.json({errmsg:error});
- AssessmentModel.startSession(ObjectId(aid), number, password, (err,ret) => {
+ EvaluationModel.startSession(ObjectId(eid), number, password, (err,ret) => {
access.checkRequest(res,err,ret,"Failed session initialization", () => {
if (!password)
{
});
});
-router.get("/assessments/monitor", access.ajax, (req,res) => {
+router.get("/evaluations/monitor", access.ajax, (req,res) => {
const password = req.query["password"];
const examName = req.query["aname"];
const courseCode = req.query["ccode"];
access.checkRequest(res,err,course,"Course not found", () => {
if (password != course.password)
return res.json({errmsg: "Wrong password"});
- AssessmentModel.getByRefs(initials, courseCode, examName, (err2,assessment) => {
- access.checkRequest(res,err2,assessment,"Assessment not found", () => {
+ EvaluationModel.getByRefs(initials, courseCode, examName, (err2,evaluation) => {
+ access.checkRequest(res,err2,evaluation,"Evaluation not found", () => {
res.json({
students: course.students,
- assessment: assessment,
+ evaluation: evaluation,
secret: params.secret,
});
});
});
});
-router.put("/assessments/answer", access.ajax, (req,res) => {
- let aid = req.body["aid"];
+router.put("/evaluations/answer", access.ajax, (req,res) => {
+ let eid = req.body["eid"];
let number = req.body["number"];
let password = req.body["password"];
let input = JSON.parse(req.body["answer"]);
- let error = validator({ _id:aid, papers:[{number:number,password:password,inputs:[input]}] }, "Assessment");
+ let error = validator({ _id:eid, papers:[{number:number,password:password,inputs:[input]}] }, "Evaluation");
if (error.length > 0)
return res.json({errmsg:error});
- AssessmentModel.newAnswer(ObjectId(aid), number, password, input, (err,ret) => {
+ EvaluationModel.newAnswer(ObjectId(eid), number, password, input, (err,ret) => {
access.checkRequest(res,err,ret,"Cannot send answer", () => {
res.json({});
});
});
});
-router.put("/assessments/end", access.ajax, (req,res) => {
- let aid = req.body["aid"];
+router.put("/evaluations/end", access.ajax, (req,res) => {
+ let eid = req.body["eid"];
let number = req.body["number"];
let password = req.body["password"];
- let error = validator({ _id:aid, papers:[{number:number,password:password}] }, "Assessment");
+ let error = validator({ _id:eid, papers:[{number:number,password:password}] }, "Evaluation");
if (error.length > 0)
return res.json({errmsg:error});
// Destroy pwd, set endTime
- AssessmentModel.endAssessment(ObjectId(aid), number, password, (err,ret) => {
- access.checkRequest(res,err,ret,"Cannot end assessment", () => {
+ EvaluationModel.endEvaluation(ObjectId(eid), number, password, (err,ret) => {
+ access.checkRequest(res,err,ret,"Cannot end evaluation", () => {
res.clearCookie('password');
res.json({});
});