From d4e3e83d46d4faea0b6a0da790f42ae129cea0fb Mon Sep 17 00:00:00 2001 From: SabreCat Date: Mon, 7 Aug 2023 23:53:55 -0500 Subject: [PATCH] fix(challenges): map IDs --- .../server/controllers/api-v3/challenges.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/website/server/controllers/api-v3/challenges.js b/website/server/controllers/api-v3/challenges.js index 923f2c94c2..3cf97278f8 100644 --- a/website/server/controllers/api-v3/challenges.js +++ b/website/server/controllers/api-v3/challenges.js @@ -397,20 +397,27 @@ api.getUserChallenges = { const { page } = req.query; const { user } = res.locals; - const orOptions = [ - { _id: { $in: user.challenges } }, // Challenges where the user is participating - ]; - orOptions.push({ leader: user._id }); + // Challenges the user owns + const orOptions = [{ leader: user._id }]; + // Challenges where the user is participating + if (user.challenges.length > 0) { + orOptions.push({ _id: { $in: user.challenges } }); + } + + // Challenges in groups user is a member of, plus public challenges if (!req.query.member) { const userGroups = await Group.getGroups({ user, types: ['party', 'guilds', 'tavern'], }); + const userGroupIds = userGroups.map((userGroup) => { + return userGroup._id; + }); orOptions.push({ - group: { $in: userGroups }, - }); // Challenges in groups where I'm a member + group: { $in: userGroupIds }, + }); } const query = {