From 80a9b719b02f15e7b0f6196527124f3d801e61b0 Mon Sep 17 00:00:00 2001 From: Cagdas U Date: Tue, 4 Aug 2020 19:17:14 +0300 Subject: [PATCH 1/2] fix(ChallengeDetails): return `userDetails.roles` with challenge details --- package-lock.json | 2 +- package.json | 2 +- src/services/challenges.js | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 503042cf..5728771f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "topcoder-react-lib", - "version": "1000.19.2", + "version": "1000.19.39", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 59ec031f..605ac7a7 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "lint:js": "./node_modules/.bin/eslint --ext .js,.jsx .", "test": "npm run lint && npm run jest" }, - "version": "1000.19.39", + "version": "1000.19.40", "dependencies": { "auth0-js": "^6.8.4", "config": "^3.2.0", diff --git a/src/services/challenges.js b/src/services/challenges.js index 3e4c5358..4df36f91 100644 --- a/src/services/challenges.js +++ b/src/services/challenges.js @@ -327,6 +327,7 @@ class ChallengesService { let submissions = []; let isLegacyChallenge = false; let isRegistered = false; + const userDetails = { roles: [] }; // condition based on ROUTE used for Review Opportunities, change if needed if (/^[\d]{5,8}$/.test(challengeId)) { @@ -372,6 +373,7 @@ class ChallengesService { } }); } + userDetails.roles = await this.getUserRolesInChallenge(challengeId); } challenge = { @@ -380,6 +382,7 @@ class ChallengesService { isRegistered, registrants, submissions, + userDetails, events: _.map(challenge.events, e => ({ eventName: e.key, eventId: e.id, @@ -703,8 +706,9 @@ class ChallengesService { */ async getUserRolesInChallenge(challengeId) { const user = decodeToken(this.private.tokenV3); - const url = `/resources?challengeId=${challengeId}?memberHandle=${user.handle}`; - const resources = await this.private.apiV5.get(url); + const url = `/resources?challengeId=${challengeId}&memberHandle=${user.handle}`; + const getResourcesResponse = await this.private.apiV5.get(url); + const resources = await getResourcesResponse.json(); if (resources) return _.map(resources, 'roleId'); throw new Error(`Failed to fetch user role from challenge #${challengeId}`); } From e11bded2ec9894775c99489d6252def65eec8e76 Mon Sep 17 00:00:00 2001 From: Cagdas U Date: Tue, 4 Aug 2020 20:20:29 +0300 Subject: [PATCH 2/2] fix(ChallengeDetails): include only user's own roles at `getUserRolesInChallenge` --- src/services/challenges.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/challenges.js b/src/services/challenges.js index 4df36f91..ecb7e1d4 100644 --- a/src/services/challenges.js +++ b/src/services/challenges.js @@ -709,7 +709,7 @@ class ChallengesService { const url = `/resources?challengeId=${challengeId}&memberHandle=${user.handle}`; const getResourcesResponse = await this.private.apiV5.get(url); const resources = await getResourcesResponse.json(); - if (resources) return _.map(resources, 'roleId'); + if (resources) return _.map(_.filter(resources, r => r.memberHandle === user.handle), 'roleId'); throw new Error(`Failed to fetch user role from challenge #${challengeId}`); } } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy