X-Git-Url: https://git.auder.net/variants/Checkered/style.css?a=blobdiff_plain;f=server%2Fmodels%2FGame.js;h=e60bfe5195ce88a3210d4df52c91fd2bb9f59c59;hb=2be5d6140901fc7bb2a33d672e52cfdc545a1912;hp=30d29c7317972b55886c6a9718cd4a2b5af5c298;hpb=88667455b8793075a0266d4477fa0f4d03257cb0;p=vchess.git diff --git a/server/models/Game.js b/server/models/Game.js index 30d29c73..e60bfe51 100644 --- a/server/models/Game.js +++ b/server/models/Game.js @@ -6,8 +6,7 @@ var db = require("../utils/database"); * vid: integer (variant id) * fenStart: varchar (initial position) * fen: varchar (current position) - * mainTime: integer - * addTime: integer (increment) + * timeControl: string * score: varchar (result) * * Structure table Players: @@ -27,24 +26,23 @@ var db = require("../utils/database"); const GameModel = { - // mainTime and increment in milliseconds - create: function(vid, fen, mainTime, increment, players, cb) + create: function(vid, fen, timeControl, players, cb) { db.serialize(function() { let query = - "INSERT INTO Games (vid, fen, mainTime, addTime) " + - "VALUES (" + vid + ",'" + fen + "'," + mainTime + "," + increment + ")"; + "INSERT INTO Games (vid, fen, timeControl) " + + "VALUES (" + vid + ",'" + fen + "'," + timeControl + ")"; db.run(insertQuery, err => { if (!!err) return cb(err); - db.get("SELECT last_insert_rowid() AS rowid", (err2,lastId) => { - players.forEach(p => { - query = - "INSERT INTO Players VALUES " + - "(" + lastId["rowid"] + "," + p.id + "," + p.color + "," + mainTime + ")"; - db.run(query, cb); - }); - }); + players.forEach(p => { + query = + "INSERT INTO Players VALUES " + + // Remaining time = -1 means "unstarted" + "(" + this.lastID + "," + p.id + "," + p.color + ", -1)"; + db.run(query); + }); + cb(null, {gid: this.lastID}); }); }); }, @@ -105,6 +103,7 @@ const GameModel = db.run(query, (err,gameIds) => { if (!!err) return cb(err); + gameIds = gameIds || []; //might be empty let gameArray = []; gameIds.forEach(gidRow => { GameModel.getOne(gidRow["gid"], (err2,game) => {