X-Git-Url: https://git.auder.net/?p=qomet.git;a=blobdiff_plain;f=entities%2Fassessment.js;h=a8a781b060596d0dc72923c83956d20bf79700b8;hp=2104193a309f92484ffceefbf61830904aec53f8;hb=f03a2ad9e0b2fa36051def18d4c19c2f293cac1d;hpb=cc7c0f5e225138cd1ba29e872d4e36fa79a67a59 diff --git a/entities/assessment.js b/entities/assessment.js index 2104193..a8a781b 100644 --- a/entities/assessment.js +++ b/entities/assessment.js @@ -106,6 +106,25 @@ 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 @@ -123,6 +142,31 @@ 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); + for (let p of a.papers) + { + for (let i of p.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) {