@@ -68,23 +68,34 @@ async function associateChallengeGroups (toBeAdded = [], toBeDeleted = [], legac
68
68
* @param {String|Number } legacyChallengeId the legacy challenge ID
69
69
*/
70
70
async function associateChallengeTerms ( v5Terms , legacyChallengeId , createdBy , updatedBy ) {
71
- const nda = _ . find ( v5Terms , e => e . id === config . V5_TERMS_NDA_ID )
72
71
const legacyTermsArray = await termsService . getTermsForChallenge ( legacyChallengeId )
72
+ const nda = _ . find ( v5Terms , e => e . id === config . V5_TERMS_NDA_ID )
73
73
const legacyNDA = _ . find ( legacyTermsArray , e => _ . toNumber ( e . id ) === _ . toNumber ( config . LEGACY_TERMS_NDA_ID ) )
74
74
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
+
75
88
if ( nda && nda . id && ! legacyNDA ) {
76
89
logger . debug ( 'Associate Challenge Terms - v5 NDA exist, not in legacy. Adding to Legacy.' )
77
90
const m2mToken = await helper . getM2MToken ( )
78
91
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 ) {
83
94
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 )
85
96
}
86
97
87
- logger . debug ( 'Associate Challenge Terms - Nothing to Do' )
98
+ // logger.debug('Associate Challenge Terms - Nothing to Do')
88
99
}
89
100
90
101
/**
@@ -507,7 +518,24 @@ async function processUpdate (message) {
507
518
for ( const metadataKey of _ . keys ( constants . supportedMetadata ) ) {
508
519
const entry = _ . find ( message . payload . metadata , meta => meta . name === metadataKey )
509
520
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
+ }
511
539
}
512
540
}
513
541
}
0 commit comments