- getCurrent: function(callback)
- {
- dbOperation((db) => {
- let objectStore = db.transaction('games').objectStore('games');
- objectStore.get("*").onsuccess = function(event) {
- callback(event.target.result);
- };
- });
+ // Retrieve any game from its identifiers (locally or on server)
+ // NOTE: need callback because result is obtained asynchronously
+ get: function(gameId, callback) {
+ // corr games identifiers are integers
+ if (Number.isInteger(gameId) || !isNaN(parseInt(gameId))) {
+ ajax("/games", "GET", { gid: gameId }, res => {
+ let game = res.game;
+ game.moves.forEach(m => {
+ m.squares = JSON.parse(m.squares);
+ });
+ callback(game);
+ });
+ }
+ else {
+ // Local game
+ dbOperation((err,db) => {
+ let objectStore = db.transaction("games").objectStore("games");
+ objectStore.get(gameId).onsuccess = function(event) {
+ if (event.target.result)
+ callback(event.target.result);
+ };
+ });
+ }