X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=server%2Fmodels%2FGame.js;h=0847c8111082b51229dcfe1f9bd5d066c637ef20;hb=3d9745ae10ba867e4c1ec6e848db29c5e293420b;hp=7c3c8081bae3f21d4252c3f647f7392870c9e8c5;hpb=eaa5ad3e93b761fefb16b32071be0b439761f843;p=vchess.git diff --git a/server/models/Game.js b/server/models/Game.js index 7c3c8081..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) => { @@ -209,8 +209,9 @@ const GameModel = { g => { return { id: g.id, - vname: g.vname, + 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,