X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=server%2Fmodels%2FGame.js;h=f99dbdef653ec26f447ef642794ca86b19b5cac2;hb=dce792f64ab0a311d348a6eb05c440dd1b170bd3;hp=954ffc402737239916718112a0f160dd8a95c1e5;hpb=098cd7f19e9ac858df6d635e5f37d356c1d5b1fa;p=vchess.git diff --git a/server/models/Game.js b/server/models/Game.js index 954ffc40..f99dbdef 100644 --- a/server/models/Game.js +++ b/server/models/Game.js @@ -30,20 +30,20 @@ const GameModel = { db.serialize(function() { let query = - "INSERT INTO Games (vid, fen, timeControl) " + - "VALUES (" + vid + ",'" + fen + "'," + timeControl + ")"; - db.run(insertQuery, err => { + "INSERT INTO Games (vid, fenStart, score, timeControl) " + + "VALUES (" + vid + ",'" + fen + "','*','" + timeControl + "')"; + db.run(query, function(err) { if (!!err) return cb(err); - db.get("SELECT last_insert_rowid() AS rowid", (err2,lastId) => { - players.forEach(p => { - query = - "INSERT INTO Players VALUES " + - // Remaining time = -1 means "unstarted" - "(" + lastId["rowid"] + "," + p.id + "," + p.color + ", -1)"; - db.run(query, cb); - }); - }); + players.forEach((p,idx) => { + const color = (idx==0 ? "w" : "b"); + query = + "INSERT INTO Players VALUES " + + // Remaining time = -1 means "unstarted" + "(" + this.lastID + "," + p.id + ",'" + color + "', -1)"; + db.run(query); + }); + cb(null, {gid: this.lastID}); }); }); }, @@ -53,39 +53,33 @@ const GameModel = { db.serialize(function() { let query = - "SELECT v.name AS vname, g.fen, g.fenStart, g.score " + - "FROM Games g " + - "JOIN Variants v " + - " ON g.vid = v.id " + "SELECT * " + + "FROM Games " + "WHERE id = " + id; db.get(query, (err,gameInfo) => { if (!!err) return cb(err); query = - "SELECT p.uid AS id, p.color, p.rtime, u.name " + - "FROM Players p " + - "JOIN Users u " + - " ON p.uid = u.id " + - "WHERE p.gid = " + id; - db.run(query, (err2,players) => { + "SELECT uid, color, rtime " + + "FROM Players " + + "WHERE gid = " + id; + db.all(query, (err2,players) => { if (!!err2) return cb(err2); query = - "SELECT move AS desc, message, played, idx, color " + + "SELECT move, message, played, idx, color " + "FROM Moves " + "WHERE gid = " + id; - db.run(query, (err3,moves) => { + db.all(query, (err3,moves) => { if (!!err3) return cb(err3); - const game = { - id: id, - vname: gameInfo.vname, - fenStart: gameInfo.fenStart, - fen: gameInfo.fen, - score: gameInfo.score, - players: players, - moves: moves, - }; + const game = Object.assign({}, + gameInfo, + { + players: players, + moves: moves + } + ); return cb(null, game); }); });