quizzer
Version:
Quizzer is a webserver for collaborative writing lab support. Based on a _fail early, fail often? approach to written language, the tool is particularly suited to second-language learners. The workflow (essay - error - quiz - exam) treats mistakes as an o
36 lines (35 loc) • 1.61 kB
JavaScript
(function () {
var cogClass = function () {};
cogClass.prototype.exec = function (params, request, response) {
var oops = this.utils.apiError;
var sys = this.sys;
var name = params.name;
var adminKey = params.commenterkey;
if (!adminKey) {
adminKey = sys.getRandomKey(8,36);
}
var adminID = null;
if (sys.admin[adminKey]) {
adminID = sys.admin[adminKey].id;
}
var interval = params.dow;
var email = params.email;
if (adminID) {
sys.db.run('UPDATE admin SET name=?,interval=?,email=? WHERE adminID=?',[name,interval,email,adminID],function(err){
if (err) {return oops(response,err,'commenters/addcommenter(2)')};
sys.scheduler.scheduleMail(sys,adminID,name,email,adminKey,interval);
response.writeHead(200, {'Content-Type': 'application/json'});
response.end(JSON.stringify(['success']));
});
} else {
sys.db.run('INSERT OR IGNORE INTO admin VALUES (NULL,?,?,2,?,?)',[name,adminKey,interval,email],function(err){
if (err) {return oops(response,err,'commenters/addcommenter(3)')};
sys.admin[adminKey] = {name:name,role:2,id:this.lastID,sched:null};
sys.scheduler.scheduleMail(sys,this.lastID,name,email,adminKey,interval);
response.writeHead(200, {'Content-Type': 'application/json'});
response.end(JSON.stringify(['success']));
});
}
}
exports.cogClass = cogClass;
})();