@@ -496,6 +496,8 @@ async function processCreate (message) {
496
496
}
497
497
498
498
const m2mToken = await helper . getM2MToken ( )
499
+ const createdByUserId = await helper . getMemberIdByHandle ( _ . get ( message , 'payload.createdBy' ) )
500
+ const updatedByUserId = await helper . getMemberIdByHandle ( _ . get ( message , 'payload.updatedBy' ) || _ . get ( message , 'payload.createdBy' ) )
499
501
500
502
const saveDraftContestDTO = await parsePayload ( message . payload , m2mToken )
501
503
logger . debug ( 'Parsed Payload' , saveDraftContestDTO )
@@ -514,7 +516,7 @@ async function processCreate (message) {
514
516
await helper . forceV4ESFeeder ( newChallenge . body . result . content . id )
515
517
await associateChallengeGroups ( saveDraftContestDTO . groupsToBeAdded , saveDraftContestDTO . groupsToBeDeleted , newChallenge . body . result . content . id )
516
518
// await associateChallengeTerms(saveDraftContestDTO.termsToBeAdded, saveDraftContestDTO.termsToBeRemoved, newChallenge.body.result.content.id)
517
- await setCopilotPayment ( challengeUuid , newChallenge . body . result . content . id , _ . get ( message , 'payload.prizeSets' ) , _ . get ( message , 'payload.createdBy' ) , _ . get ( message , 'payload.updatedBy' ) , m2mToken )
519
+ await setCopilotPayment ( challengeUuid , newChallenge . body . result . content . id , _ . get ( message , 'payload.prizeSets' ) , createdByUserId , updatedByUserId , m2mToken )
518
520
await helper . patchRequest ( `${ config . V5_CHALLENGE_API_URL } /${ challengeUuid } ` , {
519
521
legacy : {
520
522
...message . payload . legacy ,
@@ -528,7 +530,7 @@ async function processCreate (message) {
528
530
} , m2mToken )
529
531
// Repost all challenge resource on Kafka so they will get created on legacy by the legacy-challenge-resource-processor
530
532
await rePostResourcesOnKafka ( challengeUuid , m2mToken )
531
- await timelineService . enableTimelineNotifications ( newChallenge . body . result . content . id , _ . get ( message , 'payload.createdBy' ) )
533
+ await timelineService . enableTimelineNotifications ( newChallenge . body . result . content . id , createdByUserId )
532
534
logger . debug ( 'End of processCreate' )
533
535
return newChallenge . body . result . content . id
534
536
} catch ( e ) {
@@ -603,6 +605,9 @@ async function processUpdate (message) {
603
605
}
604
606
const m2mToken = await helper . getM2MToken ( )
605
607
608
+ const createdByUserId = await helper . getMemberIdByHandle ( _ . get ( message , 'payload.createdBy' ) )
609
+ const updatedByUserId = await helper . getMemberIdByHandle ( _ . get ( message , 'payload.updatedBy' ) || _ . get ( message , 'payload.createdBy' ) )
610
+
606
611
let challenge
607
612
try {
608
613
// ensure challenge existed
@@ -640,41 +645,28 @@ async function processUpdate (message) {
640
645
logger . debug ( JSON . stringify ( saveDraftContestDTO , null , 2 ) )
641
646
// logger.debug('Parsed Payload', saveDraftContestDTO)
642
647
try {
643
- try {
644
- if ( challenge ) {
645
- await helper . putRequest ( `${ config . V4_CHALLENGE_API_URL } /${ legacyId } ` , { param : _ . omit ( saveDraftContestDTO , [ 'groupsToBeAdded' , 'groupsToBeDeleted' ] ) } , m2mToken )
646
- }
647
- } catch ( e ) {
648
- logger . warn ( 'Failed to update the challenge via the V4 API' )
649
- logger . error ( e )
650
- }
651
-
652
- // Update metadata in IFX
653
- if ( message . payload . metadata && message . payload . metadata . length > 0 ) {
654
- for ( const metadataKey of _ . keys ( constants . supportedMetadata ) ) {
655
- const entry = _ . find ( message . payload . metadata , meta => meta . name === metadataKey )
656
- if ( entry ) {
657
- if ( metadataKey === 'submissionLimit' ) {
658
- // data here is JSON stringified
659
- try {
660
- const parsedEntryValue = JSON . parse ( entry . value )
661
- if ( parsedEntryValue . limit ) {
662
- entry . value = parsedEntryValue . count
663
- } else {
664
- entry . value = null
665
- }
666
- } catch ( e ) {
667
- entry . value = null
668
- }
669
- }
670
- try {
671
- await metadataService . createOrUpdateMetadata ( legacyId , constants . supportedMetadata [ metadataKey ] , entry . value , _ . get ( message , 'payload.updatedBy' ) || _ . get ( message , 'payload.createdBy' ) )
672
- } catch ( e ) {
673
- logger . warn ( `Failed to set ${ metadataKey } (${ constants . supportedMetadata [ metadataKey ] } )` )
674
- }
648
+ // extract metadata from challenge and insert into IFX
649
+ let metaValue
650
+ for ( const metadataKey of _ . keys ( constants . supportedMetadata ) ) {
651
+ try {
652
+ metaValue = constants . supportedMetadata [ metadataKey ] . method ( message . payload , constants . supportedMetadata [ metadataKey ] . defaultValue )
653
+ if ( metaValue !== null && metaValue !== '' ) {
654
+ logger . info ( `Setting ${ constants . supportedMetadata [ metadataKey ] . description } to ${ metaValue } ` )
655
+ await metadataService . createOrUpdateMetadata ( legacyId , metadataKey , metaValue , updatedByUserId )
675
656
}
657
+ } catch ( e ) {
658
+ logger . warn ( `Failed to set ${ constants . supportedMetadata [ metadataKey ] . description } to ${ metaValue } ` )
676
659
}
677
660
}
661
+ // try {
662
+ // if (challenge) {
663
+ // await helper.putRequest(`${config.V4_CHALLENGE_API_URL}/${legacyId}`, { param: _.omit(saveDraftContestDTO, ['groupsToBeAdded', 'groupsToBeDeleted']) }, m2mToken)
664
+ // }
665
+ // } catch (e) {
666
+ // logger.warn('Failed to update the challenge via the V4 API')
667
+ // logger.error(e)
668
+ // }
669
+
678
670
if ( message . payload . status && challenge ) {
679
671
// logger.info(`The status has changed from ${challenge.currentStatus} to ${message.payload.status}`)
680
672
if ( message . payload . status === constants . challengeStatuses . Active && challenge . currentStatus !== constants . challengeStatuses . Active ) {
@@ -703,10 +695,10 @@ async function processUpdate (message) {
703
695
} else {
704
696
logger . info ( 'Will skip syncing phases as the challenge is a task...' )
705
697
}
706
- await updateMemberPayments ( message . payload . legacyId , message . payload . prizeSets , _ . get ( message , 'payload.updatedBy' ) || _ . get ( message , 'payload.createdBy' ) )
698
+ await updateMemberPayments ( message . payload . legacyId , message . payload . prizeSets , updatedByUserId )
707
699
await associateChallengeGroups ( saveDraftContestDTO . groupsToBeAdded , saveDraftContestDTO . groupsToBeDeleted , legacyId )
708
- await associateChallengeTerms ( message . payload . terms , legacyId , _ . get ( message , 'payload.createdBy' ) , _ . get ( message , 'payload.updatedBy' ) || _ . get ( message , 'payload.createdBy' ) )
709
- await setCopilotPayment ( message . payload . id , legacyId , _ . get ( message , 'payload.prizeSets' ) , _ . get ( message , 'payload.createdBy' ) , _ . get ( message , 'payload.updatedBy' ) || _ . get ( message , 'payload.createdBy' ) , m2mToken )
700
+ await associateChallengeTerms ( message . payload . terms , legacyId , createdByUserId , updatedByUserId )
701
+ await setCopilotPayment ( message . payload . id , legacyId , _ . get ( message , 'payload.prizeSets' ) , createdByUserId , updatedByUserId , m2mToken )
710
702
711
703
try {
712
704
await helper . forceV4ESFeeder ( legacyId )
0 commit comments