X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=server%2Fmodels%2FGame.js;h=f05d2fec82d8f8955feb93ba7503e39bfded4fdd;hb=81b71035639a4204bd7834c9185ea961755af1cf;hp=8cc526fe3cc69ab14d940a0df48219e2e867c1e7;hpb=eb2d61de8d569470fa329a484efe9bab420b2b82;p=vchess.git diff --git a/server/models/Game.js b/server/models/Game.js index 8cc526fe..f05d2fec 100644 --- a/server/models/Game.js +++ b/server/models/Game.js @@ -132,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) { @@ -144,6 +144,7 @@ const GameModel = { "ORDER BY created DESC " + "LIMIT 20"; //TODO: 20 hard-coded... db.all(query, (err, games) => { + games = games || []; // Query players names let pids = {}; games.forEach(g => { @@ -151,6 +152,7 @@ const GameModel = { if (!pids[g.black]) pids[g.black] = true; }); UserModel.getByIds(Object.keys(pids), (err2, users) => { + users = users || []; let names = {}; users.forEach(u => { names[u.id] = u.name; }); cb( @@ -161,6 +163,7 @@ const GameModel = { id: g.id, vid: g.vid, cadence: g.cadence, + options: g.options, created: g.created, score: g.score, players: [ @@ -180,10 +183,11 @@ 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) => { + games = games || []; // Get movesCount (could be done in // with next query) query = "SELECT gid, COUNT(*) AS nbMoves " + @@ -200,6 +204,7 @@ const GameModel = { if (!pids[g.black]) pids[g.black] = true; }); UserModel.getByIds(Object.keys(pids), (err2, users) => { + users = users || []; let names = {}; users.forEach(u => { names[u.id] = u.name; }); cb( @@ -210,6 +215,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, @@ -231,7 +237,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 " + @@ -252,6 +258,7 @@ const GameModel = { "ORDER BY created DESC " + "LIMIT 20"; db.all(query, (err, games) => { + games = games || []; // Query player names let pids = {}; games.forEach(g => { @@ -259,6 +266,7 @@ const GameModel = { if (!pids[g.black]) pids[g.black] = true; }); UserModel.getByIds(Object.keys(pids), (err2, users) => { + users = users || []; let names = {}; users.forEach(u => { names[u.id] = u.name; }); cb( @@ -269,6 +277,7 @@ const GameModel = { id: g.id, vid: g.vid, cadence: g.cadence, + options: g.options, created: g.created, score: g.score, scoreMsg: g.scoreMsg,