Fix corr challenges
[vchess.git] / server / routes / challenges.js
CommitLineData
ab4f4bf2 1// AJAX methods to get, create, update or delete a challenge
582df349 2
ab4f4bf2
BA
3let router = require("express").Router();
4const access = require("../utils/access");
5const ChallengeModel = require("../models/Challenge");
052d17ea 6const UserModel = require("../models/User"); //for name check
fe4c7e67 7const params = require("../config/parameters");
8d7e2786 8
f05815d7 9router.get("/challenges", (req,res) => {
4edfed6c
BA
10 ChallengeModel.getByUser(req.query["uid"], (err,challenges) => {
11 res.json(err || {challenges:challenges});
12 });
13});
14
052d17ea 15router.post("/challenges", access.logged, access.ajax, (req,res) => {
1f49533d
BA
16 const error = ChallengeModel.checkChallenge(req.body.chall);
17 if (!!error)
18 return res.json({errmsg:error});
bf20f404 19 let challenge =
1f49533d
BA
20 {
21 fen: req.body.chall.fen,
22 timeControl: req.body.chall.timeControl,
23 vid: req.body.chall.vid,
24 uid: req.userId,
bf20f404 25 to: req.body.chall.to, //string: user name (may be empty)
1f49533d 26 };
bf20f404 27 const insertChallenge = () => {
b4de2e73
BA
28 ChallengeModel.create(challenge, (err,ret) => {
29 return res.json(err || {cid:ret.cid});
bf20f404
BA
30 });
31 };
32 if (!!req.body.chall.to)
33 {
34 UserModel.getOne("name", challenge.to, (err,user) => {
35 if (!!err || !user)
36 return res.json(err | {errmsg: "Typo in player name"});
37 challenge.to = user.id; //ready now to insert challenge
bebcc8d4 38 insertChallenge();
fe4c7e67
BA
39 if (user.notify)
40 UserModel.notify(user, "New challenge: " + params.siteURL + "/");
bf20f404 41 });
bf20f404
BA
42 }
43 else
44 insertChallenge();
4edfed6c
BA
45});
46
1f49533d 47router.delete("/challenges", access.logged, access.ajax, (req,res) => {
77fd7298 48 const cid = req.query.id;
2be5d614 49 ChallengeModel.safeRemove(cid, req.userId, err => {
b1aa927b 50 res.json(err || {}); //TODO: just "return err" because is empty if no errors
1f49533d
BA
51 });
52});
8d7e2786
BA
53
54module.exports = router;