@@ -388,6 +388,7 @@ async function closeChallenge (challengeId, winnerId) {
388
388
/**
389
389
* Process create challenge message
390
390
* @param {Object } message the kafka message
391
+ * @returns {Number } the created legacy id
391
392
*/
392
393
async function processCreate ( message ) {
393
394
if ( message . payload . status === constants . challengeStatuses . New ) {
@@ -432,6 +433,7 @@ async function processCreate (message) {
432
433
}
433
434
await timelineService . enableTimelineNotifications ( newChallenge . body . result . content . id , _ . get ( message , 'payload.createdBy' ) )
434
435
logger . debug ( 'End of processCreate' )
436
+ return newChallenge . body . result . content . id
435
437
} catch ( e ) {
436
438
logger . error ( 'processCreate Catch' , e )
437
439
throw e
@@ -489,21 +491,22 @@ processCreate.schema = {
489
491
* @param {Object } message the kafka message
490
492
*/
491
493
async function processUpdate ( message ) {
494
+ let legacyId = message . payload . legacyId
492
495
if ( message . payload . status === constants . challengeStatuses . New ) {
493
496
logger . debug ( `Will skip creating on legacy as status is ${ constants . challengeStatuses . New } ` )
494
497
return
495
- } else if ( ! message . payload . legacyId ) {
498
+ } else if ( ! legacyId ) {
496
499
logger . debug ( 'Legacy ID does not exist. Will create...' )
497
- await processCreate ( message )
500
+ legacyId = await processCreate ( message )
498
501
}
499
502
const m2mToken = await helper . getM2MToken ( )
500
503
501
504
let challenge
502
505
try {
503
506
// ensure challenge existed
504
- challenge = await getChallengeById ( m2mToken , message . payload . legacyId )
507
+ challenge = await getChallengeById ( m2mToken , legacyId )
505
508
if ( ! challenge ) {
506
- throw new Error ( `Could not find challenge ${ message . payload . legacyId } ` )
509
+ throw new Error ( `Could not find challenge ${ legacyId } ` )
507
510
}
508
511
} catch ( e ) {
509
512
// postponne kafka event
@@ -527,24 +530,23 @@ async function processUpdate (message) {
527
530
// return
528
531
}
529
532
530
- const v4GroupIds = await groupService . getGroupsForChallenge ( message . payload . legacyId )
533
+ const v4GroupIds = await groupService . getGroupsForChallenge ( legacyId )
531
534
logger . info ( `GroupIDs Found in Informix: ${ JSON . stringify ( v4GroupIds ) } ` )
532
- // const v4TermsIds = await termsService.getTermsForChallenge(message.payload.legacyId)
533
535
534
536
const saveDraftContestDTO = await parsePayload ( message . payload , m2mToken , false , v4GroupIds )
535
537
// logger.debug('Parsed Payload', saveDraftContestDTO)
536
538
try {
537
539
try {
538
540
if ( challenge ) {
539
- await helper . putRequest ( `${ config . V4_CHALLENGE_API_URL } /${ message . payload . legacyId } ` , { param : _ . omit ( saveDraftContestDTO , [ 'groupsToBeAdded' , 'groupsToBeDeleted' ] ) } , m2mToken )
541
+ await helper . putRequest ( `${ config . V4_CHALLENGE_API_URL } /${ legacyId } ` , { param : _ . omit ( saveDraftContestDTO , [ 'groupsToBeAdded' , 'groupsToBeDeleted' ] ) } , m2mToken )
540
542
}
541
543
} catch ( e ) {
542
544
logger . warn ( 'Failed to update the challenge via the V4 API' )
543
545
logger . error ( e )
544
546
}
545
- await associateChallengeGroups ( saveDraftContestDTO . groupsToBeAdded , saveDraftContestDTO . groupsToBeDeleted , message . payload . legacyId )
546
- await associateChallengeTerms ( message . payload . terms , message . payload . legacyId , _ . get ( message , 'payload.createdBy' ) , _ . get ( message , 'payload.updatedBy' ) || _ . get ( message , 'payload.createdBy' ) )
547
- await setCopilotPayment ( message . payload . id , message . payload . legacyId , _ . get ( message , 'payload.prizeSets' ) , _ . get ( message , 'payload.createdBy' ) , _ . get ( message , 'payload.updatedBy' ) || _ . get ( message , 'payload.createdBy' ) , m2mToken )
547
+ await associateChallengeGroups ( saveDraftContestDTO . groupsToBeAdded , saveDraftContestDTO . groupsToBeDeleted , legacyId )
548
+ await associateChallengeTerms ( message . payload . terms , legacyId , _ . get ( message , 'payload.createdBy' ) , _ . get ( message , 'payload.updatedBy' ) || _ . get ( message , 'payload.createdBy' ) )
549
+ await setCopilotPayment ( message . payload . id , legacyId , _ . get ( message , 'payload.prizeSets' ) , _ . get ( message , 'payload.createdBy' ) , _ . get ( message , 'payload.updatedBy' ) || _ . get ( message , 'payload.createdBy' ) , m2mToken )
548
550
549
551
// Update metadata in IFX
550
552
if ( message . payload . metadata && message . payload . metadata . length > 0 ) {
@@ -565,7 +567,7 @@ async function processUpdate (message) {
565
567
}
566
568
}
567
569
try {
568
- await metadataService . createOrUpdateMetadata ( message . payload . legacyId , constants . supportedMetadata [ metadataKey ] , entry . value , _ . get ( message , 'payload.updatedBy' ) || _ . get ( message , 'payload.createdBy' ) )
570
+ await metadataService . createOrUpdateMetadata ( legacyId , constants . supportedMetadata [ metadataKey ] , entry . value , _ . get ( message , 'payload.updatedBy' ) || _ . get ( message , 'payload.createdBy' ) )
569
571
} catch ( e ) {
570
572
logger . warn ( `Failed to set ${ metadataKey } (${ constants . supportedMetadata [ metadataKey ] } )` )
571
573
}
@@ -576,7 +578,7 @@ async function processUpdate (message) {
576
578
// logger.info(`The status has changed from ${challenge.currentStatus} to ${message.payload.status}`)
577
579
if ( message . payload . status === constants . challengeStatuses . Active && challenge . currentStatus !== constants . challengeStatuses . Active ) {
578
580
logger . info ( 'Activating challenge...' )
579
- await activateChallenge ( message . payload . legacyId )
581
+ await activateChallenge ( legacyId )
580
582
logger . info ( 'Activated!' )
581
583
}
582
584
if ( message . payload . status === constants . challengeStatuses . Completed && challenge . currentStatus !== constants . challengeStatuses . Completed ) {
@@ -586,15 +588,15 @@ async function processUpdate (message) {
586
588
throw new Error ( 'Cannot close challenge without winners' )
587
589
}
588
590
const winnerId = _ . find ( message . payload . winners , winner => winner . placement === 1 ) . userId
589
- logger . info ( `Will close the challenge with ID ${ message . payload . legacyId } . Winner ${ winnerId } !` )
590
- await closeChallenge ( message . payload . legacyId , winnerId )
591
+ logger . info ( `Will close the challenge with ID ${ legacyId } . Winner ${ winnerId } !` )
592
+ await closeChallenge ( legacyId , winnerId )
591
593
} else {
592
594
logger . info ( 'Challenge type is not a task.. Skip closing challenge...' )
593
595
}
594
596
}
595
597
}
596
598
try {
597
- await helper . forceV4ESFeeder ( message . payload . legacyId )
599
+ await helper . forceV4ESFeeder ( legacyId )
598
600
} catch ( e ) {
599
601
logger . warn ( 'Failed to call V4 ES Feeder' )
600
602
}
0 commit comments