X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=server%2Fmodels%2FGame.js;h=efdc20f56a662a84ed4549f2f3373c432719c4ea;hb=cf742aaf8995ca8be8fc1f2751e4cf28de5d69b6;hp=f99dbdef653ec26f447ef642794ca86b19b5cac2;hpb=fd7aea36b8da702df87be3ed055f9a1f59c9f4da;p=vchess.git diff --git a/server/models/Game.js b/server/models/Game.js index f99dbdef..efdc20f5 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,40 @@ 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) + 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() {