@@ -388,6 +388,7 @@ async function closeChallenge (challengeId, winnerId) {
388388/**
389389 * Process create challenge message
390390 * @param {Object } message the kafka message
391+ * @returns {Number } the created legacy id
391392 */
392393async function processCreate ( message ) {
393394 if ( message . payload . status === constants . challengeStatuses . New ) {
@@ -432,6 +433,7 @@ async function processCreate (message) {
432433 }
433434 await timelineService . enableTimelineNotifications ( newChallenge . body . result . content . id , _ . get ( message , 'payload.createdBy' ) )
434435 logger . debug ( 'End of processCreate' )
436+ return newChallenge . body . result . content . id
435437 } catch ( e ) {
436438 logger . error ( 'processCreate Catch' , e )
437439 throw e
@@ -489,21 +491,22 @@ processCreate.schema = {
489491 * @param {Object } message the kafka message
490492 */
491493async function processUpdate ( message ) {
494+ let legacyId = message . payload . legacyId
492495 if ( message . payload . status === constants . challengeStatuses . New ) {
493496 logger . debug ( `Will skip creating on legacy as status is ${ constants . challengeStatuses . New } ` )
494497 return
495- } else if ( ! message . payload . legacyId ) {
498+ } else if ( ! legacyId ) {
496499 logger . debug ( 'Legacy ID does not exist. Will create...' )
497- await processCreate ( message )
500+ legacyId = await processCreate ( message )
498501 }
499502 const m2mToken = await helper . getM2MToken ( )
500503
501504 let challenge
502505 try {
503506 // ensure challenge existed
504- challenge = await getChallengeById ( m2mToken , message . payload . legacyId )
507+ challenge = await getChallengeById ( m2mToken , legacyId )
505508 if ( ! challenge ) {
506- throw new Error ( `Could not find challenge ${ message . payload . legacyId } ` )
509+ throw new Error ( `Could not find challenge ${ legacyId } ` )
507510 }
508511 } catch ( e ) {
509512 // postponne kafka event
@@ -527,24 +530,23 @@ async function processUpdate (message) {
527530 // return
528531 }
529532
530- const v4GroupIds = await groupService . getGroupsForChallenge ( message . payload . legacyId )
533+ const v4GroupIds = await groupService . getGroupsForChallenge ( legacyId )
531534 logger . info ( `GroupIDs Found in Informix: ${ JSON . stringify ( v4GroupIds ) } ` )
532- // const v4TermsIds = await termsService.getTermsForChallenge(message.payload.legacyId)
533535
534536 const saveDraftContestDTO = await parsePayload ( message . payload , m2mToken , false , v4GroupIds )
535537 // logger.debug('Parsed Payload', saveDraftContestDTO)
536538 try {
537539 try {
538540 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 )
540542 }
541543 } catch ( e ) {
542544 logger . warn ( 'Failed to update the challenge via the V4 API' )
543545 logger . error ( e )
544546 }
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 )
548550
549551 // Update metadata in IFX
550552 if ( message . payload . metadata && message . payload . metadata . length > 0 ) {
@@ -565,7 +567,7 @@ async function processUpdate (message) {
565567 }
566568 }
567569 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' ) )
569571 } catch ( e ) {
570572 logger . warn ( `Failed to set ${ metadataKey } (${ constants . supportedMetadata [ metadataKey ] } )` )
571573 }
@@ -576,7 +578,7 @@ async function processUpdate (message) {
576578 // logger.info(`The status has changed from ${challenge.currentStatus} to ${message.payload.status}`)
577579 if ( message . payload . status === constants . challengeStatuses . Active && challenge . currentStatus !== constants . challengeStatuses . Active ) {
578580 logger . info ( 'Activating challenge...' )
579- await activateChallenge ( message . payload . legacyId )
581+ await activateChallenge ( legacyId )
580582 logger . info ( 'Activated!' )
581583 }
582584 if ( message . payload . status === constants . challengeStatuses . Completed && challenge . currentStatus !== constants . challengeStatuses . Completed ) {
@@ -586,15 +588,15 @@ async function processUpdate (message) {
586588 throw new Error ( 'Cannot close challenge without winners' )
587589 }
588590 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 )
591593 } else {
592594 logger . info ( 'Challenge type is not a task.. Skip closing challenge...' )
593595 }
594596 }
595597 }
596598 try {
597- await helper . forceV4ESFeeder ( message . payload . legacyId )
599+ await helper . forceV4ESFeeder ( legacyId )
598600 } catch ( e ) {
599601 logger . warn ( 'Failed to call V4 ES Feeder' )
600602 }
0 commit comments