"vid, fen, timeControl) VALUES " +
"(" + Date.now() + "," + c.uid + "," + (!!c.to ? c.to + "," : "") +
c.vid + ",'" + c.fen + "','" + c.timeControl + "')";
- db.run(query, err => {
+ db.run(query, function(err) {
return cb(err, {cid: this.lastID});
});
});
});
},
- remove: function(id, uid, cb)
+ remove: function(id)
{
db.serialize(function() {
- let query =
+ const query =
+ "DELETE FROM Challenges " +
+ "WHERE id = " + id;
+ db.run(query);
+ });
+ },
+
+ safeRemove: function(id, uid, cb)
+ {
+ db.serialize(function() {
+ const query =
"SELECT 1 " +
"FROM Challenges " +
"WHERE id = " + id + " AND uid = " + uid;
db.get(query, (err,chall) => {
if (!chall)
return cb({errmsg: "Not your challenge"});
- query =
- "DELETE FROM Challenges " +
- "WHERE id = " + id;
- db.run(query);
+ ChallengeModel.remove(id);
cb(null);
});
});
},
}
+// TODO: adapt
+// Remove challenges older than 1 month, and 1to1 older than 36h
+//exports.removeOld = function()
+//{
+// var tsNow = new Date().getTime();
+// // 86400000 = 24 hours in milliseconds
+// var day = 86400000;
+// db.challenges.find({}, (err,challengeArray) => {
+// challengeArray.forEach( c => {
+// if (c._id.getTimestamp() + 30*day < tsNow //automatch
+// || (!!c.to && c._id.getTimestamp() + 1.5*day < tsNow)) //1 to 1
+// {
+// db.challenges.remove({"_id": c._id});
+// }
+// });
+// });
+//}
+
module.exports = ChallengeModel;