@@ -339,6 +339,35 @@ function * getM2Mtoken (parentSpan) {
339
339
}
340
340
}
341
341
342
+ /**
343
+ * Get legacy challenge id if the challenge id is uuid form
344
+ * @param {String } challengeId Challenge ID
345
+ * @param {Object } parentSpan the parent Span object
346
+ * @returns {String } Legacy Challenge ID of the given challengeId
347
+ */
348
+ function * getlegacyChallengeId ( challengeId , token , parentSpan ) {
349
+ if ( / ^ [ 0 - 9 a - f ] { 8 } - [ 0 - 9 a - f ] { 4 } - [ 0 - 5 ] [ 0 - 9 a - f ] { 3 } - [ 0 8 9 a b ] [ 0 - 9 a - f ] { 3 } - [ 0 - 9 a - f ] { 12 } $ / i. test ( challengeId ) ) {
350
+ const getlegacyChallengeIdSpan = tracer . startChildSpans ( 'helper.getlegacyChallengeId' , parentSpan )
351
+ try {
352
+ const response = yield request . get ( `${ config . CHALLENGEAPI_V5_URL } /${ challengeId } ` )
353
+ . set ( 'Authorization' , `Bearer ${ token } ` )
354
+ . set ( 'Content-Type' , 'application/json' )
355
+ return response . body . legacyId
356
+ } catch ( err ) {
357
+ getlegacyChallengeIdSpan . setTag ( 'error' , true )
358
+ logger . error ( `Error while accessing ${ config . CHALLENGEAPI_V5_URL } /${ challengeId } ` )
359
+ getlegacyChallengeIdSpan . log ( {
360
+ event : 'error' ,
361
+ error : err . response . body
362
+ } )
363
+ throw err
364
+ } finally {
365
+ getlegacyChallengeIdSpan . finish ( )
366
+ }
367
+ }
368
+ return challengeId
369
+ }
370
+
342
371
/*
343
372
* Get submission phase ID of a challenge from Challenge API
344
373
* @param challengeId Challenge ID
@@ -352,17 +381,19 @@ function * getSubmissionPhaseId (challengeId, parentSpan) {
352
381
try {
353
382
let phaseId = null
354
383
let response
384
+ let legacyChallengeId
355
385
356
386
const token = yield getM2Mtoken ( getSubmissionPhaseIdSpan )
357
387
358
388
const getChallengePhasesSpan = tracer . startChildSpans ( 'getChallengePhases' , getSubmissionPhaseIdSpan )
359
389
getChallengePhasesSpan . setTag ( 'challengeId' , challengeId )
360
390
try {
361
- response = yield request . get ( `${ config . CHALLENGEAPI_URL } /${ challengeId } /phases` )
391
+ legacyChallengeId = yield getlegacyChallengeId ( challengeId , token , getChallengePhasesSpan )
392
+ response = yield request . get ( `${ config . CHALLENGEAPI_URL } /${ legacyChallengeId } /phases` )
362
393
. set ( 'Authorization' , `Bearer ${ token } ` )
363
394
. set ( 'Content-Type' , 'application/json' )
364
395
} catch ( ex ) {
365
- logger . error ( `Error while accessing ${ config . CHALLENGEAPI_URL } /${ challengeId } /phases` )
396
+ logger . error ( `Error while accessing ${ config . CHALLENGEAPI_URL } /${ legacyChallengeId } /phases` )
366
397
logger . debug ( 'Setting submissionPhaseId to Null' )
367
398
response = null
368
399
// log error
@@ -406,6 +437,7 @@ function * checkCreateAccess (authUser, subEntity, parentSpan) {
406
437
407
438
try {
408
439
let response
440
+ let legacyChallengeId
409
441
410
442
// User can only create submission for themselves
411
443
if ( authUser . userId !== subEntity . memberId ) {
@@ -417,11 +449,12 @@ function * checkCreateAccess (authUser, subEntity, parentSpan) {
417
449
const getChallengeDetailSpan = tracer . startChildSpans ( 'getChallengeDetail' , checkCreateAccessSpan )
418
450
getChallengeDetailSpan . setTag ( 'challengeId' , subEntity . challengeId )
419
451
try {
420
- response = yield request . get ( `${ config . CHALLENGEAPI_URL } ?filter=id=${ subEntity . challengeId } ` )
452
+ legacyChallengeId = yield getlegacyChallengeId ( subEntity . challengeId , token , getChallengeDetailSpan )
453
+ response = yield request . get ( `${ config . CHALLENGEAPI_URL } ?filter=id=${ legacyChallengeId } ` )
421
454
. set ( 'Authorization' , `Bearer ${ token } ` )
422
455
. set ( 'Content-Type' , 'application/json' )
423
456
} catch ( ex ) {
424
- logger . error ( `Error while accessing ${ config . CHALLENGEAPI_URL } ?filter=id=${ subEntity . challengeId } ` )
457
+ logger . error ( `Error while accessing ${ config . CHALLENGEAPI_URL } ?filter=id=${ legacyChallengeId } ` )
425
458
logger . error ( ex )
426
459
// log error
427
460
getChallengeDetailSpan . log ( {
@@ -473,6 +506,7 @@ function * checkGetAccess (authUser, submission, parentSpan) {
473
506
try {
474
507
let resources
475
508
let challengeDetails
509
+ let legacyChallengeId
476
510
// Allow downloading Own submission
477
511
if ( submission . memberId === authUser . userId ) {
478
512
return true
@@ -483,11 +517,12 @@ function * checkGetAccess (authUser, submission, parentSpan) {
483
517
const getChallengeResourcesSpan = tracer . startChildSpans ( 'getChallengeResources' , checkGetAccessSpan )
484
518
getChallengeResourcesSpan . setTag ( 'challengeId' , submission . challengeId )
485
519
try {
486
- resources = yield request . get ( `${ config . CHALLENGEAPI_URL } /${ submission . challengeId } /resources` )
520
+ legacyChallengeId = yield getlegacyChallengeId ( submission . challengeId , token , getChallengeResourcesSpan )
521
+ resources = yield request . get ( `${ config . CHALLENGEAPI_URL } /${ legacyChallengeId } /resources` )
487
522
. set ( 'Authorization' , `Bearer ${ token } ` )
488
523
. set ( 'Content-Type' , 'application/json' )
489
524
} catch ( ex ) {
490
- logger . error ( `Error while accessing ${ config . CHALLENGEAPI_URL } /${ submission . challengeId } /resources` )
525
+ logger . error ( `Error while accessing ${ config . CHALLENGEAPI_URL } /${ legacyChallengeId } /resources` )
491
526
logger . error ( ex )
492
527
// log error
493
528
getChallengeResourcesSpan . log ( {
@@ -503,11 +538,11 @@ function * checkGetAccess (authUser, submission, parentSpan) {
503
538
const getChallengeDetailSpan = tracer . startChildSpans ( 'getChallengeDetail' , checkGetAccessSpan )
504
539
getChallengeDetailSpan . setTag ( 'challengeId' , submission . challengeId )
505
540
try {
506
- challengeDetails = yield request . get ( `${ config . CHALLENGEAPI_URL } ?filter=id=${ submission . challengeId } ` )
541
+ challengeDetails = yield request . get ( `${ config . CHALLENGEAPI_URL } ?filter=id=${ legacyChallengeId } ` )
507
542
. set ( 'Authorization' , `Bearer ${ token } ` )
508
543
. set ( 'Content-Type' , 'application/json' )
509
544
} catch ( ex ) {
510
- logger . error ( `Error while accessing ${ config . CHALLENGEAPI_URL } ?filter=id=${ submission . challengeId } ` )
545
+ logger . error ( `Error while accessing ${ config . CHALLENGEAPI_URL } ?filter=id=${ legacyChallengeId } ` )
511
546
logger . error ( ex )
512
547
// log error
513
548
getChallengeDetailSpan . log ( {
@@ -601,16 +636,18 @@ function * checkReviewGetAccess (authUser, submission, parentSpan) {
601
636
602
637
try {
603
638
let challengeDetails
639
+ let legacyChallengeId
604
640
const token = yield getM2Mtoken ( checkReviewGetAccessSpan )
605
641
606
642
const getChallengeDetailSpan = tracer . startChildSpans ( 'getChallengeDetail' , checkReviewGetAccessSpan )
607
643
getChallengeDetailSpan . setTag ( 'challengeId' , submission . challengeId )
608
644
try {
609
- challengeDetails = yield request . get ( `${ config . CHALLENGEAPI_URL } ?filter=id=${ submission . challengeId } ` )
645
+ legacyChallengeId = yield getlegacyChallengeId ( submission . challengeId , token , getChallengeDetailSpan )
646
+ challengeDetails = yield request . get ( `${ config . CHALLENGEAPI_URL } ?filter=id=${ legacyChallengeId } ` )
610
647
. set ( 'Authorization' , `Bearer ${ token } ` )
611
648
. set ( 'Content-Type' , 'application/json' )
612
649
} catch ( ex ) {
613
- logger . error ( `Error while accessing ${ config . CHALLENGEAPI_URL } ?filter=id=${ submission . challengeId } ` )
650
+ logger . error ( `Error while accessing ${ config . CHALLENGEAPI_URL } ?filter=id=${ legacyChallengeId } ` )
614
651
615
652
// log error
616
653
getChallengeDetailSpan . log ( {
0 commit comments