X-Git-Url: https://git.auder.net/doc/screen_pairings_scoring.png?a=blobdiff_plain;f=server%2Fmodels%2FGame.js;h=72ee0dcb44938ec58c6999e7b9b8c3d95adbbf3c;hb=5f13148449c73de92993b7961c077167563b84e5;hp=f99dbdef653ec26f447ef642794ca86b19b5cac2;hpb=fd7aea36b8da702df87be3ed055f9a1f59c9f4da;p=vchess.git diff --git a/server/models/Game.js b/server/models/Game.js index f99dbdef..72ee0dcb 100644 --- a/server/models/Game.js +++ b/server/models/Game.js @@ -33,8 +33,8 @@ const GameModel = "INSERT INTO Games (vid, fenStart, score, timeControl) " + "VALUES (" + vid + ",'" + fen + "','*','" + timeControl + "')"; db.run(query, function(err) { - if (!!err) - return cb(err); + if (!!err) + return cb(err); players.forEach((p,idx) => { const color = (idx==0 ? "w" : "b"); query = @@ -112,6 +112,43 @@ const GameModel = }); }, + getPlayers: function(id, cb) + { + db.serialize(function() { + const query = + "SELECT id " + + "FROM Players " + + "WHERE gid = " + id; + db.all(query, (err,players) => { + return cb(err, players); + }); + }); + }, + + // obj can have fields move, fen and/or score + update: function(id, obj, cb) + { + db.serialize(function() { + let query = + "UPDATE Games " + + "SET "; + if (!!obj.move) + { + move.played = Date.now(); + query += "move = " + obj.move + ","; //TODO: already stringified?! + } + if (!!obj.fen) + query += "fen = " + obj.fen + ","; + if (!!obj.score) + query += "score = " + obj.score + ","; + query = query.slice(0,-1); //remove last comma + query += " WHERE gameId = " + id; + db.run(query, (err) => { + cb(err); + }); + }); + }, + remove: function(id) { db.parallelize(function() {