X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=entities%2Fassessment.js;h=b4e30927204f5b4be77189cdd1dcbc32bc5ecc6d;hb=2c545c26b465fe40dc308c321a11f5515cebc4c7;hp=2104193a309f92484ffceefbf61830904aec53f8;hpb=e99c53fb3be56eb4c685dd061eef0e5b5bf22b73;p=qomet.git diff --git a/entities/assessment.js b/entities/assessment.js index 2104193..b4e3092 100644 --- a/entities/assessment.js +++ b/entities/assessment.js @@ -106,9 +106,27 @@ const AssessmentEntity = ); }, + getPaperByNumber: function(aid, number, callback) + { + db.assessments.findOne( + { + _id: aid, + "papers.number": number, + }, + (err,a) => { + if (!!err || !a) + return callback(err,a); + for (let p of a.papers) + { + if (p.number == number) + return callback(null,p); //reached for sure + } + } + ); + }, + startSession: function(aid, number, password, callback) { - // TODO: security, do not re-do tasks if already done db.assessments.update( { _id: aid }, { $push: { papers: { @@ -123,6 +141,29 @@ const AssessmentEntity = ); }, + + hasInput: function(aid, number, password, idx, cb) + { + db.assessments.findOne( + { + _id: aid, + "papers.number": number, + "papers.password": password, + }, + (err,a) => { + if (!!err || !a) + return cb(err,a); + let papIdx = a.papers.findIndex( item => { return item.number == number; }); + for (let i of a.papers[papIdx].inputs) + { + if (i.index == idx) + return cb(null,true); + } + cb(null,false); + } + ); + }, + // https://stackoverflow.com/questions/27874469/mongodb-push-in-nested-array setInput: function(aid, number, password, input, callback) //input: index + arrayOfInt (or txt) {