Some advances in challenge handling (server+client)
[vchess.git] / server / routes / challenges.js
index 962b8d4..e64e890 100644 (file)
@@ -3,27 +3,19 @@
 let router = require("express").Router();
 const access = require("../utils/access");
 const ChallengeModel = require("../models/Challenge");
-const checkChallenge = require("../data/challengeCheck.js");
+const UserModel = require("../models/User"); //for name check
 
-router.post("/challenges/:vid([0-9]+)", access.logged, access.ajax, (req,res) => {
-       const vid = req.params["vid"];
-       const chall = {
-               uid: req.userId,
-               vid: vid,
-               fen: req.body["fen"],
-               mainTime: req.body["mainTime"],
-               increment: req.body["increment"],
-               nbPlayers: req.body["nbPlayers"],
-               players: req.body["players"],
-       };
-       const error = checkChallenge(chall);
-       ChallengeModel.create(chall, (err,lastId) => {
+router.post("/challenges", access.logged, access.ajax, (req,res) => {
+       const error = ChallengeModel.checkChallenge(req.body.chall);
+  // TODO: treat "to" field separately (search users by name)
+  // --> replace "to" by an array of uid (in chall), then call:
+       ChallengeModel.create(req.body.chall, (err,lastId) => {
                res.json(err || {cid: lastId["rowid"]});
        });
 });
 
 //// index
-//router.get("/challengesbyplayer", access.logged, access.ajax, (req,res) => {
+//router.get("/challenges", access.logged, access.ajax, (req,res) => {
 //     if (req.query["uid"] != req.user._id)
 //             return res.json({errmsg: "Not your challenges"});
 //     let uid = ObjectID(req.query["uid"]);