@@ -68,23 +68,34 @@ async function associateChallengeGroups (toBeAdded = [], toBeDeleted = [], legac
6868 * @param {String|Number } legacyChallengeId the legacy challenge ID
6969 */
7070async function associateChallengeTerms ( v5Terms , legacyChallengeId , createdBy , updatedBy ) {
71- const nda = _ . find ( v5Terms , e => e . id === config . V5_TERMS_NDA_ID )
7271 const legacyTermsArray = await termsService . getTermsForChallenge ( legacyChallengeId )
72+ const nda = _ . find ( v5Terms , e => e . id === config . V5_TERMS_NDA_ID )
7373 const legacyNDA = _ . find ( legacyTermsArray , e => _ . toNumber ( e . id ) === _ . toNumber ( config . LEGACY_TERMS_NDA_ID ) )
7474
75+ const standardTerms = _ . find ( v5Terms , e => e . id === config . V5_TERMS_STANDARD_ID )
76+ const legacyStandardTerms = _ . find ( legacyTermsArray , e => _ . toNumber ( e . id ) === _ . toNumber ( config . LEGACY_TERMS_STANDARD_ID ) )
77+
78+ if ( standardTerms && standardTerms . id && ! legacyStandardTerms ) {
79+ logger . debug ( 'Associate Challenge Terms - v5 Standard Terms exist, not in legacy. Adding to Legacy.' )
80+ const m2mToken = await helper . getM2MToken ( )
81+ const v5Term = await getV5Terms ( standardTerms . id , m2mToken )
82+ await termsService . addTermsToChallenge ( legacyChallengeId , v5Term . legacyId , config . LEGACY_SUBMITTER_ROLE_ID , createdBy , updatedBy )
83+ } else if ( ! standardTerms && legacyStandardTerms && legacyStandardTerms . id ) {
84+ logger . debug ( 'Associate Challenge Terms - Legacy NDA exist, not in V5. Removing from Legacy.' )
85+ await termsService . removeTermsFromChallenge ( legacyChallengeId , legacyStandardTerms . id , config . LEGACY_SUBMITTER_ROLE_ID )
86+ }
87+
7588 if ( nda && nda . id && ! legacyNDA ) {
7689 logger . debug ( 'Associate Challenge Terms - v5 NDA exist, not in legacy. Adding to Legacy.' )
7790 const m2mToken = await helper . getM2MToken ( )
7891 const v5Term = await getV5Terms ( nda . id , m2mToken )
79- return termsService . addTermsToChallenge ( legacyChallengeId , v5Term . legacyId , config . LEGACY_SUBMITTER_ROLE_ID , createdBy , updatedBy )
80- }
81-
82- if ( ! nda && legacyNDA && legacyNDA . id ) {
92+ await termsService . addTermsToChallenge ( legacyChallengeId , v5Term . legacyId , config . LEGACY_SUBMITTER_ROLE_ID , createdBy , updatedBy , true )
93+ } else if ( ! nda && legacyNDA && legacyNDA . id ) {
8394 logger . debug ( 'Associate Challenge Terms - Legacy NDA exist, not in V5. Removing from Legacy.' )
84- return termsService . removeTermsFromChallenge ( legacyChallengeId , legacyNDA . id , config . LEGACY_SUBMITTER_ROLE_ID )
95+ await termsService . removeTermsFromChallenge ( legacyChallengeId , legacyNDA . id , config . LEGACY_SUBMITTER_ROLE_ID , true )
8596 }
8697
87- logger . debug ( 'Associate Challenge Terms - Nothing to Do' )
98+ // logger.debug('Associate Challenge Terms - Nothing to Do')
8899}
89100
90101/**
@@ -507,7 +518,24 @@ async function processUpdate (message) {
507518 for ( const metadataKey of _ . keys ( constants . supportedMetadata ) ) {
508519 const entry = _ . find ( message . payload . metadata , meta => meta . name === metadataKey )
509520 if ( entry ) {
510- await metadataService . createOrUpdateMetadata ( message . payload . legacyId , constants . supportedMetadata [ metadataKey ] , entry . value , _ . get ( message , 'payload.updatedBy' ) || _ . get ( message , 'payload.createdBy' ) )
521+ if ( metadataKey === 'submissionLimit' ) {
522+ // data here is JSON stringified
523+ try {
524+ const parsedEntryValue = JSON . parse ( entry . value )
525+ if ( parsedEntryValue . limit ) {
526+ entry . value = parsedEntryValue . count
527+ } else {
528+ entry . value = null
529+ }
530+ } catch ( e ) {
531+ entry . value = null
532+ }
533+ }
534+ try {
535+ await metadataService . createOrUpdateMetadata ( message . payload . legacyId , constants . supportedMetadata [ metadataKey ] , entry . value , _ . get ( message , 'payload.updatedBy' ) || _ . get ( message , 'payload.createdBy' ) )
536+ } catch ( e ) {
537+ logger . warn ( `Failed to set ${ metadataKey } (${ constants . supportedMetadata [ metadataKey ] } )` )
538+ }
511539 }
512540 }
513541 }
0 commit comments