X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=server%2Fmodels%2FGame.js;h=ee381d4227329100712470bcb46f2b5fab3a934f;hp=aec80a015d9d0106de3735fbf5bbcd5289893b90;hb=1ef65040168ab7d55ce921abc9d63644a937d689;hpb=73f8753ff5abf6c5819684920565e655b6858175 diff --git a/server/models/Game.js b/server/models/Game.js index aec80a01..ee381d42 100644 --- a/server/models/Game.js +++ b/server/models/Game.js @@ -18,6 +18,8 @@ const UserModel = require("./User"); * randomness: integer * deletedByWhite: boolean * deletedByBlack: boolean + * chatReadWhite: datetime + * chatReadBlack: datetime * * Structure table Moves: * gid: ref game id @@ -74,6 +76,7 @@ const GameModel = "SELECT " + "g.id, g.fen, g.fenStart, g.cadence, g.created, " + "g.white, g.black, g.score, g.scoreMsg, " + + "g.chatReadWhite, g.chatReadBlack, " + "g.drawOffer, g.rematchOffer, v.name AS vname " + "FROM Games g " + "JOIN Variants v " + @@ -309,6 +312,8 @@ const GameModel = !obj.fen || !!(obj.fen.match(/^[a-zA-Z0-9, /-]*$/)) ) && ( !obj.score || !!(obj.score.match(/^[012?*\/-]+$/)) + ) && ( + !obj.chatRead || !(['w','b'].includes(obj.chatRead)) ) && ( !obj.scoreMsg || !!(obj.scoreMsg.match(/^[a-zA-Z ]+$/)) ) && ( @@ -343,6 +348,10 @@ const GameModel = const myColor = obj.deletedBy == 'w' ? "White" : "Black"; modifs += "deletedBy" + myColor + " = true,"; } + if (!!obj.chatRead) { + const myColor = obj.chatRead == 'w' ? "White" : "Black"; + modifs += "chatRead" + myColor + " = " + Date.now() + ","; + } if (!!obj.score) { modifs += "score = '" + obj.score + "'," + "scoreMsg = '" + obj.scoreMsg + "',";