* 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:
const GameModel =
{
- // mainTime and increment in milliseconds
- create: function(vid, fen, mainTime, increment, players, cb)
+ create: function(vid, fen, timeControl, players, cb)
{
- db.serialize({
+ 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});
});
});
},
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) => {