+ newAnswer: function(aid, number, password, input, cb)
+ {
+ // Check that student hasn't already answered
+ AssessmentEntity.hasInput(aid, number, password, input.index, (err,ret) => {
+ if (!!err)
+ return cb(err,null);
+ if (!!ret)
+ return cb({errmsg:"Question already answered"},null);
+ AssessmentEntity.setInput(aid, number, password, input, (err2,ret2) => {
+ if (!!err2 || !ret2)
+ return cb(err2,ret2);
+ return cb(null,ret2);
+ });
+ });
+ },
+
+ // NOTE: no callbacks for 2 next functions, failures are not so important
+ // (because monitored: teachers can see what's going on)
+
+ newConnection: function(aid, number)
+ {
+ //increment discoCount, reset discoTime to NULL, update totalDisco
+ AssessmentEntity.getDiscoTime(aid, number, (err,discoTime) => {
+ if (!!discoTime)
+ AssessmentEntity.addDisco(aid, number, Date.now() - discoTime);
+ });
+ },
+