X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=server%2Fmodels%2FChallenge.js;h=e977267275f54cf39494671aeda6222713c507c1;hp=6d8f5c1e865d4f1d7d14f7d5af88ac8a4d41a28a;hb=1f49533df1dafc5f83b815a9c89b8ccaccde2d6d;hpb=7b626bdd29da0927354c92526fc5e03095877351 diff --git a/server/models/Challenge.js b/server/models/Challenge.js index 6d8f5c1e..e9772672 100644 --- a/server/models/Challenge.js +++ b/server/models/Challenge.js @@ -13,6 +13,7 @@ var db = require("../utils/database"); * Structure table WillPlay: * cid: ref challenge id * uid: ref user id + * yes: boolean (false means "not decided yet") */ const ChallengeModel = @@ -25,13 +26,22 @@ const ChallengeModel = if (!c.timeControl.match(/^[0-9dhms +]+$/)) return "Wrong characters in time control"; - if (!c.nbPlayers.match(/^[0-9]+$/)) - return "Wrong number of players"; - if (!c.fen.match(/^[a-zA-Z0-9, /-]+$/)) return "Bad FEN string"; }, + initializeWillPlay: function(uids, cid, cb) + { + let query = "INSERT INTO WillPlay VALUES "; + for (let i=0; i { - - // TODO: also insert "will play" "no" for other players ? - // willplay = "maybe" by default ? - query = "INSERT INTO WillPlay VALUES " + "(true," + lastId["rowid"] + "," + c.uid + ")"; - db.run(query, (err,ret) => { - cb(err, lastId); //all we need is the challenge ID - }); + db.run(query, (err,ret) => { + cb(err, lastId); //all we need is the challenge ID + }); }); }); }); @@ -120,14 +126,14 @@ const ChallengeModel = }); }, - remove: function(id) + remove: function(id, uid) { - db.parallelize(function() { + db.serialize(function() { let query = "DELETE FROM Challenges " + - "WHERE id = " + id; - db.run(query); - query = + "WHERE id = " + id + " AND uid = " + uid; + db.run(query, (err,ret) => { + if (!!err && query = //TODO "DELETE FROM WillPlay " + "WHERE cid = " + id; db.run(query);