@@ -327,6 +327,7 @@ class ChallengesService {
327
327
let submissions = [ ] ;
328
328
let isLegacyChallenge = false ;
329
329
let isRegistered = false ;
330
+ const userDetails = { roles : [ ] } ;
330
331
331
332
// condition based on ROUTE used for Review Opportunities, change if needed
332
333
if ( / ^ [ \d ] { 5 , 8 } $ / . test ( challengeId ) ) {
@@ -372,6 +373,7 @@ class ChallengesService {
372
373
}
373
374
} ) ;
374
375
}
376
+ userDetails . roles = await this . getUserRolesInChallenge ( challengeId ) ;
375
377
}
376
378
377
379
challenge = {
@@ -380,6 +382,7 @@ class ChallengesService {
380
382
isRegistered,
381
383
registrants,
382
384
submissions,
385
+ userDetails,
383
386
events : _ . map ( challenge . events , e => ( {
384
387
eventName : e . key ,
385
388
eventId : e . id ,
@@ -707,9 +710,10 @@ class ChallengesService {
707
710
*/
708
711
async getUserRolesInChallenge ( challengeId ) {
709
712
const user = decodeToken ( this . private . tokenV3 ) ;
710
- const url = `/resources?challengeId=${ challengeId } ?memberHandle=${ user . handle } ` ;
711
- const resources = await this . private . apiV5 . get ( url ) ;
712
- if ( resources ) return _ . map ( resources , 'roleId' ) ;
713
+ const url = `/resources?challengeId=${ challengeId } &memberHandle=${ user . handle } ` ;
714
+ const getResourcesResponse = await this . private . apiV5 . get ( url ) ;
715
+ const resources = await getResourcesResponse . json ( ) ;
716
+ if ( resources ) return _ . map ( _ . filter ( resources , r => r . memberHandle === user . handle ) , 'roleId' ) ;
713
717
throw new Error ( `Failed to fetch user role from challenge #${ challengeId } ` ) ;
714
718
}
715
719
}
0 commit comments