X-Git-Url: https://git.auder.net/variants/%24%7Bvname%7D/current/gitweb.css?a=blobdiff_plain;f=server%2Fmodels%2FGame.js;h=0847c8111082b51229dcfe1f9bd5d066c637ef20;hb=16d06164d56332bd00fb22acc5b2b2997b942d73;hp=5304693096bb11bfffa4cbbc64b20074fd5abe2a;hpb=d807470f965d4d60a7fe6e1320ac7dfd3f0ea03f;p=vchess.git diff --git a/server/models/Game.js b/server/models/Game.js index 53046930..0847c811 100644 --- a/server/models/Game.js +++ b/server/models/Game.js @@ -15,7 +15,7 @@ const UserModel = require("./User"); * created: datetime * drawOffer: char ('w','b' or '' for none) * rematchOffer: char (similar to drawOffer) - * randomness: integer + * options: varchar * deletedByWhite: boolean * deletedByBlack: boolean * chatReadWhite: datetime @@ -40,7 +40,6 @@ const GameModel = { return ( g.vid.toString().match(/^[0-9]+$/) && g.cadence.match(/^[0-9dhms +]+$/) && - g.randomness.toString().match(/^[0-2]$/) && g.fen.match(/^[a-zA-Z0-9, /-]*$/) && g.players.length == 2 && g.players.every(p => p.id.toString().match(/^[0-9]+$/)) @@ -57,22 +56,22 @@ const GameModel = { }); }, - create: function(vid, fen, randomness, cadence, players, cb) { + create: function(vid, fen, options, cadence, players, cb) { db.serialize(function() { let query = "INSERT INTO Games " + "(" + - "vid, fenStart, fen, randomness, " + + "vid, fenStart, fen, options, " + "white, black, " + "cadence, created" + ") " + "VALUES " + "(" + - vid + ",'" + fen + "','" + fen + "'," + randomness + "," + + vid + ",'" + fen + "','" + fen + "',?," + players[0].id + "," + players[1].id + "," + "'" + cadence + "'," + Date.now() + ")"; - db.run(query, function(err) { + db.run(query, options, function(err) { cb(err, { id: this.lastID }); }); }); @@ -85,7 +84,7 @@ const GameModel = { let query = "SELECT " + "id, vid, fen, fenStart, cadence, created, " + - "white, black, randomness, score, scoreMsg, " + + "white, black, options, score, scoreMsg, " + "chatReadWhite, chatReadBlack, drawOffer, rematchOffer " + "FROM Games " + "WHERE id = " + id; @@ -133,7 +132,7 @@ const GameModel = { getObserved: function(uid, cursor, cb) { db.serialize(function() { let query = - "SELECT id, vid, cadence, created, score, white, black " + + "SELECT id, vid, cadence, options, created, score, white, black " + "FROM Games " + "WHERE created < " + cursor + " "; if (uid > 0) { @@ -162,6 +161,7 @@ const GameModel = { id: g.id, vid: g.vid, cadence: g.cadence, + options: g.options, created: g.created, score: g.score, players: [ @@ -181,7 +181,7 @@ const GameModel = { getRunning: function(uid, cb) { db.serialize(function() { let query = - "SELECT id, vid, cadence, created, white, black " + + "SELECT id, vid, cadence, options, created, white, black " + "FROM Games " + "WHERE score = '*' AND (white = " + uid + " OR black = " + uid + ")"; db.all(query, (err, games) => { @@ -211,6 +211,7 @@ const GameModel = { id: g.id, vid: g.vid, cadence: g.cadence, + options: g.options, created: g.created, score: g.score, movesCount: movesCounts[g.id] || 0, @@ -232,7 +233,7 @@ const GameModel = { getCompleted: function(uid, cursor, cb) { db.serialize(function() { let query = - "SELECT id, vid, cadence, created, score, scoreMsg, " + + "SELECT id, vid, cadence, options, created, score, scoreMsg, " + "white, black, deletedByWhite, deletedByBlack " + "FROM Games " + "WHERE " + @@ -270,6 +271,7 @@ const GameModel = { id: g.id, vid: g.vid, cadence: g.cadence, + options: g.options, created: g.created, score: g.score, scoreMsg: g.scoreMsg,