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
{
query += modifs + " WHERE id = " + id;
db.run(query);
}
- let wrongMoveIndex = false;
- if (obj.move)
+
+
+//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
query =
"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 " +
+ 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);
+ }
});
},