X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=server%2Fmodels%2FGame.js;h=2e3303115b5527164264a326e4e1a579832c747b;hb=0baae6b9fd3536d674f35c704bd5571362798b4c;hp=21ece2f181a872434662dedce1fa4b878acab835;hpb=fb68b0c2e3dae0be3e1f55b9516070c2731cf8d9;p=vchess.git diff --git a/server/models/Game.js b/server/models/Game.js index 21ece2f1..2e330311 100644 --- a/server/models/Game.js +++ b/server/models/Game.js @@ -91,11 +91,18 @@ const GameModel = db.all(query, (err2,players) => { if (light) { - const game = Object.assign({}, - gameInfo, - {players: players} - ); - cb(null, game); + query = + "SELECT COUNT(*) AS nbMoves " + + "FROM Moves " + + "WHERE gid = " + id; + db.get(query, (err,ret) => { + const game = Object.assign({}, + gameInfo, + {players: players}, + {movesCount: ret.nbMoves} + ); + cb(null, game); + }); } else { @@ -235,7 +242,12 @@ const GameModel = query += modifs + " WHERE id = " + id; db.run(query); } - let wrongMoveIndex = false; + + +return cb({errmsg: JSON.stringify(obj.move)}); + + + // NOTE: move, chat and delchat are mutually exclusive if (obj.move) { // Security: only update moves if index is right @@ -245,6 +257,10 @@ const GameModel = "WHERE gid = " + id; db.get(query, (err,ret) => { const m = obj.move; + +return cb({errmsg: ret.maxIdx + " " + m.idx + " " + (!ret.maxIdx || ret.maxIdx + 1 == m.idx) + " " + query}); + + if (!ret.maxIdx || ret.maxIdx + 1 == m.idx) { query = "INSERT INTO Moves (gid, squares, played, idx) VALUES " + @@ -263,6 +279,14 @@ const GameModel = + id + ",?,'" + obj.chat.name + "'," + Date.now() + ")"; db.run(query, obj.chat.msg); } + else if (obj.delchat) + { + query = + "DELETE " + + "FROM Chats " + + "WHERE gid = " + id; + db.run(query); + } }); },