X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=server%2Froutes%2Fchallenges.js;h=efc697011d408340ce05d32103b4e8f9512cbfea;hp=4bbce8e22ccc97b7f0301dc32d7619be87057580;hb=866842c3c310524c034922870234120ed2a16cbf;hpb=8477e53d8e78606e4c4e4bf91c77b1011aab583c diff --git a/server/routes/challenges.js b/server/routes/challenges.js index 4bbce8e2..efc69701 100644 --- a/server/routes/challenges.js +++ b/server/routes/challenges.js @@ -1,60 +1,63 @@ -// AJAX methods to get, create, update or delete a challenge - let router = require("express").Router(); const access = require("../utils/access"); const ChallengeModel = require("../models/Challenge"); const UserModel = require("../models/User"); //for name check const params = require("../config/parameters"); -router.get("/challenges", (req,res) => { - if (!req.query["uid"].match(/^[0-9]+$/)) - res.json({errmsg: "Bad user ID"}); - ChallengeModel.getByUser(req.query["uid"], (err,challenges) => { - res.json(err || {challenges:challenges}); - }); -}); - router.post("/challenges", access.logged, access.ajax, (req,res) => { - const error = ChallengeModel.checkChallenge(req.body.chall); - if (!!error) - return res.json({errmsg:error}); - let challenge = + if (ChallengeModel.checkChallenge(req.body.chall)) { - fen: req.body.chall.fen, - cadence: req.body.chall.cadence, - vid: req.body.chall.vid, - uid: req.userId, - to: req.body.chall.to, //string: user name (may be empty) - }; - const insertChallenge = () => { - ChallengeModel.create(challenge, (err,ret) => { - return res.json(err || {cid:ret.cid}); - }); - }; - if (!!req.body.chall.to) - { - UserModel.getOne("name", challenge.to, (err,user) => { - if (!!err || !user) - return res.json(err || {errmsg: "Typo in player name"}); - challenge.to = user.id; //ready now to insert challenge + let challenge = + { + fen: req.body.chall.fen, + cadence: req.body.chall.cadence, + vid: req.body.chall.vid, + uid: req.userId, + to: req.body.chall.to, //string: user name (may be empty) + }; + const insertChallenge = () => { + ChallengeModel.create(challenge, (err,ret) => { + res.json(err || {cid:ret.cid}); + }); + }; + if (req.body.chall.to) + { + UserModel.getOne("name", challenge.to, (err,user) => { + if (!!err || !user) + res.json(err || {errmsg: "Typo in player name"}); + else + { + challenge.to = user.id; //ready now to insert challenge + insertChallenge(); + if (user.notify) + UserModel.notify( + user, + "New challenge: " + params.siteURL + "/#/?disp=corr"); + } + }); + } + else insertChallenge(); - if (user.notify) - UserModel.notify( - user, - "New challenge: " + params.siteURL + "/#/?disp=corr"); + } +}); + +router.get("/challenges", access.ajax, (req,res) => { + const uid = req.query.uid; + if (uid.match(/^[0-9]+$/)) + { + ChallengeModel.getByUser(uid, (err,challenges) => { + res.json(err || {challenges:challenges}); }); } - else - insertChallenge(); }); router.delete("/challenges", access.logged, access.ajax, (req,res) => { const cid = req.query.id; - if (!cid.match(/^[0-9]+$/)) - res.json({errmsg: "Bad challenge ID"}); - ChallengeModel.safeRemove(cid, req.userId, err => { - res.json(err || {}); //TODO: just "return err" because is empty if no errors - }); + if (cid.match(/^[0-9]+$/)) + { + ChallengeModel.safeRemove(cid, req.userId); + res.json({}); + } }); module.exports = router;