X-Git-Url: https://git.auder.net/?a=blobdiff_plain;ds=sidebyside;f=server%2Froutes%2Fgames.js;h=cc8a17bb0a5810bae1017fa9e379990b2d79b238;hb=2be5d6140901fc7bb2a33d672e52cfdc545a1912;hp=35a7f42fbcee1a987ef1bdebc001ca6e52f20905;hpb=b4de2e730539cadbff94a42eccfb9cb046cbf810;p=vchess.git diff --git a/server/routes/games.js b/server/routes/games.js index 35a7f42f..cc8a17bb 100644 --- a/server/routes/games.js +++ b/server/routes/games.js @@ -1,6 +1,7 @@ var router = require("express").Router(); var UserModel = require("../models/User"); var sendEmail = require('../utils/mailer'); +var ChallengeModel = require('../models/Challenge'); var GameModel = require('../models/Game'); var VariantModel = require('../models/Variant'); var access = require("../utils/access"); @@ -26,15 +27,18 @@ router.post("/games", access.logged, access.ajax, (req,res) => { const gameInfo = JSON.parse(req.body.gameInfo); if (!gameInfo.players.some(p => p.id == req.user.id)) return res.json({errmsg: "Cannot start someone else's game"}); - let fen = req.body.fen; + const cid = req.body.cid; + ChallengeModel.remove(cid); + const fen = req.body.fen; GameModel.create( gameInfo.vid, gameInfo.fen, gameInfo.timeControl, gameInfo.players, - (err,game) => { + (err,ret) => { access.checkRequest(res, err, game, "Cannot create game", () => { - if (!!req.body.offlineOpp) - UserModel.tryNotify(req.body.offlineOpp, game.id, variant.name, - "New game: " + "game link"); //TODO: give game link - res.json({game: game}); + const oppIdx = gameInfo.players[0].id == req.user.id ? 1 : 0; + const oppId = gameInfo.players[oppIdx].id; + UserModel.tryNotify(oppId, + "New game: " + params.siteURL + "/game/" + gid); + res.json({gameId: ret.gid}); }); } );