From 2e8ba9c5b1b9dd4ba80a5e6a6b6e2f48c477aa03 Mon Sep 17 00:00:00 2001 From: Harrison Deng Date: Thu, 7 Apr 2022 17:36:57 -0500 Subject: [PATCH] Separated public recent matches and user recent matches endpoints. --- .../server/controllers/matchController.js | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/sports-matcher/server/controllers/matchController.js b/sports-matcher/server/controllers/matchController.js index 53cc013..66f993d 100644 --- a/sports-matcher/server/controllers/matchController.js +++ b/sports-matcher/server/controllers/matchController.js @@ -27,17 +27,8 @@ MatchController.get("/search/:sport", needDatabase, async (req, res) => { MatchController.get("/recent/:limit?", needDatabase, async (req, res) => { try { - let user = null; - if (req.session.userId) { - user = await userModel.findById(req.session.userId); - } let limit = parseInt(req.params.limit); if (!req.params.limit) limit = 10; - if (isNaN(limit)) { - console.log(typeof (limit)); - res.status(400).send("Limit parameter is not a number."); - return; - } if (isNaN(limit)) { res.status(400).send("Limit parameter not a number."); return; @@ -46,18 +37,29 @@ MatchController.get("/recent/:limit?", needDatabase, async (req, res) => { res.status(400).send("Limit greater than maximum limit of 50."); return; } - let recent = null; - if (user) { - recent = matchModel.find({ creator: user._id }); - } else { - recent = matchModel.find().where("publicity").gte(2); - } + let recent = matchModel.find().where("publicity").gte(2); recent = await recent.sort({ createDate: -1 }).limit(limit).populate(["sport", "participants"]); res.status(200).send({ recent: recent }); } catch (error) { console.error(error); res.status(500).send("Internal server error."); - // TODO: Check and improve error handling. + } +}); + +MatchController.get("/recent/user/:limit", needDatabase, requireAuthenticated, async (req, res) => { + try { + let user = req.user; + let limit = parseInt(req.params.limit); + if (!req.params.limit) limit = 10; + if (isNaN(limit)) { + res.status(400).send("Limit parameter not a number."); + return; + } + let recent = await matchModel.find({ creator: user._id }).sort({ createDate: -1 }).limit(limit).populate(["sport", "participants"]); + res.status(200).send({ recent: recent }); + } catch (error) { + console.error(error); + res.status(500).send("Internal server error."); } });