@@ -460,32 +460,56 @@ class ChallengesService {
460
460
return getApiResponsePayload ( res ) ;
461
461
}
462
462
463
+ /**
464
+ * Get the Resource Role ID from provided Role Name
465
+ * @param {String } roleName
466
+ * @return {Promise }
467
+ */
468
+ async getResourceRoleId ( roleName ) {
469
+ const params = {
470
+ name : roleName ,
471
+ isActive : true ,
472
+ } ;
473
+ const roles = await this . private . apiV5 . get ( `/resource-roles?${ qs . stringify ( params ) } ` )
474
+ . then ( checkErrorV5 ) . then ( res => res ) ;
475
+
476
+ if ( _ . isEmpty ( roles . result ) ) {
477
+ throw new Error ( 'Resource Role not found!' ) ;
478
+ }
479
+
480
+ return roles . result [ 0 ] . id ;
481
+ }
482
+
463
483
/**
464
484
* Registers user to the specified challenge.
465
485
* @param {String } challengeId
466
- * @param {String } memberHandle
467
- * @param {String } roleId
468
486
* @return {Promise }
469
487
*/
470
- async register ( challengeId , memberHandle , roleId ) {
488
+ async register ( challengeId ) {
489
+ const user = decodeToken ( this . private . tokenV3 ) ;
490
+ const roleId = await this . getResourceRoleId ( 'Submitter' ) ;
471
491
const params = {
472
- challengeId, memberHandle, roleId,
492
+ challengeId,
493
+ memberHandle : user . handle ,
494
+ roleId,
473
495
} ;
474
- const res = await this . private . apiV5 . post ( '/resources' , params ) ;
496
+ const res = await this . private . apiV5 . postJson ( '/resources' , params ) ;
475
497
if ( ! res . ok ) throw new Error ( res . statusText ) ;
476
498
return res . json ( ) ;
477
499
}
478
500
479
501
/**
480
502
* Unregisters user from the specified challenge.
481
503
* @param {String } challengeId
482
- * @param {String } memberHandle
483
- * @param {String } roleId
484
504
* @return {Promise }
485
505
*/
486
- async unregister ( challengeId , memberHandle , roleId ) {
506
+ async unregister ( challengeId ) {
507
+ const user = decodeToken ( this . private . tokenV3 ) ;
508
+ const roleId = await this . getResourceRoleId ( 'Submitter' ) ;
487
509
const params = {
488
- challengeId, memberHandle, roleId,
510
+ challengeId,
511
+ memberHandle : user . handle ,
512
+ roleId,
489
513
} ;
490
514
const res = await this . private . apiV5 . delete ( '/resources' , params ) ;
491
515
if ( ! res . ok ) throw new Error ( res . statusText ) ;
0 commit comments