Separated public recent matches and user recent matches endpoints.
This commit is contained in:
parent
92289c87b3
commit
2e8ba9c5b1
@ -27,17 +27,8 @@ MatchController.get("/search/:sport", needDatabase, async (req, res) => {
|
|||||||
|
|
||||||
MatchController.get("/recent/:limit?", needDatabase, async (req, res) => {
|
MatchController.get("/recent/:limit?", needDatabase, async (req, res) => {
|
||||||
try {
|
try {
|
||||||
let user = null;
|
|
||||||
if (req.session.userId) {
|
|
||||||
user = await userModel.findById(req.session.userId);
|
|
||||||
}
|
|
||||||
let limit = parseInt(req.params.limit);
|
let limit = parseInt(req.params.limit);
|
||||||
if (!req.params.limit) limit = 10;
|
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)) {
|
if (isNaN(limit)) {
|
||||||
res.status(400).send("Limit parameter not a number.");
|
res.status(400).send("Limit parameter not a number.");
|
||||||
return;
|
return;
|
||||||
@ -46,18 +37,29 @@ MatchController.get("/recent/:limit?", needDatabase, async (req, res) => {
|
|||||||
res.status(400).send("Limit greater than maximum limit of 50.");
|
res.status(400).send("Limit greater than maximum limit of 50.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let recent = null;
|
let recent = matchModel.find().where("publicity").gte(2);
|
||||||
if (user) {
|
|
||||||
recent = matchModel.find({ creator: user._id });
|
|
||||||
} else {
|
|
||||||
recent = matchModel.find().where("publicity").gte(2);
|
|
||||||
}
|
|
||||||
recent = await recent.sort({ createDate: -1 }).limit(limit).populate(["sport", "participants"]);
|
recent = await recent.sort({ createDate: -1 }).limit(limit).populate(["sport", "participants"]);
|
||||||
res.status(200).send({ recent: recent });
|
res.status(200).send({ recent: recent });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
res.status(500).send("Internal server 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.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user