X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=server%2Froutes%2Fchallenges.js;h=84b2c83bd3907203ad8e85773f6a801c2ddf279e;hb=4edfed6c011cd97d58d5bd8e0451cc0c1006a0a0;hp=99f055fc7893675049c09d3503a2846837be141b;hpb=36093ebabecde5a86451a4600babbecc971887c0;p=vchess.git diff --git a/server/routes/challenges.js b/server/routes/challenges.js index 99f055fc..84b2c83b 100644 --- a/server/routes/challenges.js +++ b/server/routes/challenges.js @@ -5,9 +5,10 @@ const access = require("../utils/access"); const ChallengeModel = require("../models/Challenge"); const UserModel = require("../models/User"); //for name check -router.delete("/testtest", access.ajax, (req,res) => { - console.log("passag"); - ChallengeModel.testfunc(); +router.get("/challenges", access.logged, access.ajax, (req,res) => { + ChallengeModel.getByUser(req.query["uid"], (err,challenges) => { + res.json(err || {challenges:challenges}); + }); }); router.post("/challenges", access.logged, access.ajax, (req,res) => { @@ -48,6 +49,32 @@ router.post("/challenges", access.logged, access.ajax, (req,res) => { }); }); +// Nothing to do if challenge is refused (just removal) +router.put("/challenges", access.logged, access.ajax, (req,res) => { + switch (req.body.action) + { + case "withdraw": + // turn WillPlay to false (TODO?) + break; + case "accept": + // turn WillPlay to true; if then challenge is full, launch game + ChallengeModel.getSeatCount(req.body.id, (scount) => { + if (scount == 1) + launchGame(req.body.id, req.userId); + else + ChallengeModel.setSeat(req.body.id, req.userId); + }) + break; + } + res.json({}); +}); + +function launchGame(cid, uid) +{ + // TODO: gather challenge infos + WillPlay + // Then create game, and remove challenge + WillPlay +} + //// index //router.get("/challenges", access.logged, access.ajax, (req,res) => { // if (req.query["uid"] != req.user._id) @@ -70,7 +97,7 @@ router.post("/challenges", access.logged, access.ajax, (req,res) => { //} router.delete("/challenges", access.logged, access.ajax, (req,res) => { - const cid = req.query.cid; + const cid = req.query.id; ChallengeModel.remove(cid, req.userId, err => { res.json(err || {}); });