From 013f8bcca7b291a2dd67ba7b7c7c20621b57bd23 Mon Sep 17 00:00:00 2001 From: SabreCat Date: Mon, 7 Aug 2023 22:56:58 -0500 Subject: [PATCH] fix(challenges): fetch purchased --- website/server/controllers/api-v3/challenges.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/website/server/controllers/api-v3/challenges.js b/website/server/controllers/api-v3/challenges.js index c808ef6c66..923f2c94c2 100644 --- a/website/server/controllers/api-v3/challenges.js +++ b/website/server/controllers/api-v3/challenges.js @@ -264,9 +264,10 @@ api.joinChallenge = { if (!challenge) throw new NotFound(res.t('challengeNotFound')); const group = await Group.getGroup({ - user, groupId: challenge.group, fields: basicGroupFields, optionalMembership: true, + user, groupId: challenge.group, fields: `${basicGroupFields} purchased`, optionalMembership: true, }); if (!group || !challenge.canJoin(user, group)) throw new NotFound(res.t('challengeNotFound')); + group.purchased = undefined; const addedSuccessfully = await challenge.addToUser(user); if (!addedSuccessfully) { @@ -569,9 +570,10 @@ api.getChallenge = { // Fetching basic group data const group = await Group.getGroup({ - user, groupId: challenge.group, fields: basicGroupFields, optionalMembership: true, + user, groupId: challenge.group, fields: `${basicGroupFields} purchased`, optionalMembership: true, }); if (!group || !challenge.canView(user, group)) throw new NotFound(res.t('challengeNotFound')); + group.purchased = undefined; const chalRes = challenge.toJSON(); chalRes.group = group.toJSON({ minimize: true }); @@ -728,11 +730,11 @@ api.updateChallenge = { if (!challenge) throw new NotFound(res.t('challengeNotFound')); const group = await Group.getGroup({ - user, groupId: challenge.group, fields: basicGroupFields, optionalMembership: true, + user, groupId: challenge.group, fields: `${basicGroupFields} purchased`, optionalMembership: true, }); if (!group || !challenge.canView(user, group)) throw new NotFound(res.t('challengeNotFound')); if (!challenge.canModify(user)) throw new NotAuthorized(res.t('onlyLeaderUpdateChal')); - + group.purchased = undefined; _.merge(challenge, Challenge.sanitizeUpdate(req.body)); const savedChal = await challenge.save();