@@ -34,15 +34,15 @@ async function getV5Terms (v5TermsId, m2mToken) {
3434 return response . body
3535}
3636
37- /**
38- * Get resource role information by V5 UUID
39- * @param {String } v5RoleId the v5 role UUID
40- * @param {String } m2mToken token for accessing the API
41- */
42- async function getV5Role ( v5RoleId , m2mToken ) {
43- const response = await helper . getRequest ( `${ config . V5_RESOURCE_ROLES_API_URL } ?id=${ v5RoleId } ` , m2mToken )
44- return response . body [ 0 ]
45- }
37+ // / **
38+ // * Get resource role information by V5 UUID
39+ // * @param {String } v5RoleId the v5 role UUID
40+ // * @param {String } m2mToken token for accessing the API
41+ // */
42+ // async function getV5Role (v5RoleId, m2mToken) {
43+ // const response = await helper.getRequest(`${config.V5_RESOURCE_ROLES_API_URL}?id=${v5RoleId}`, m2mToken)
44+ // return response.body[0]
45+ // }
4646
4747/**
4848 * Associate challenge groups
@@ -65,16 +65,28 @@ async function associateChallengeGroups (toBeAdded = [], toBeDeleted = [], legac
6565 * @param {Array<Object{termsId, roleId}> } toBeDeleted the array of terms to be deleted
6666 * @param {String|Number } legacyChallengeId the legacy challenge ID
6767 */
68- async function associateChallengeTerms ( toBeAdded = [ ] , toBeDeleted = [ ] , legacyChallengeId ) {
69- logger . debug ( `Challenge ${ legacyChallengeId } Terms to be added ${ JSON . stringify ( toBeAdded ) } ` )
70- logger . debug ( `Challenge ${ legacyChallengeId } Terms to be removed ${ JSON . stringify ( toBeDeleted ) } ` )
71- for ( const terms of toBeAdded ) {
72- await termsService . addTermsToChallenge ( legacyChallengeId , terms . termsId , terms . roleId )
68+ async function associateChallengeTerms ( v5Terms , legacyChallengeId ) {
69+ const nda = _ . find ( v5Terms , e => e . id === config . V5_TERMS_NDA_ID )
70+ const legacyTermsArray = await termsService . getTermsForChallenge ( legacyChallengeId )
71+ const legacyNDA = _ . find ( legacyTermsArray , e => _ . toNumber ( e . id ) === config . LEGACY_TERMS_NDA_ID )
72+
73+ logger . debug ( `V5 Terms ${ JSON . stringify ( v5Terms ) } ` )
74+ logger . debug ( `V5 NDA Found ${ nda } ${ JSON . stringify ( nda ) } ` )
75+
76+ logger . debug ( `Legacy Terms ${ JSON . stringify ( legacyTermsArray ) } ` )
77+ logger . debug ( `Legacy NDA Found ${ JSON . stringify ( legacyNDA ) } ` )
78+
79+ if ( nda . id && ! legacyNDA ) {
80+ logger . debug ( 'v5 NDA exist, not in legacy. Adding to Legacy.' )
81+ const m2mToken = helper . getM2MToken ( )
82+ const v5Terms = getV5Terms ( nda . id , m2mToken )
83+ return termsService . addTermsToChallenge ( legacyChallengeId , v5Terms . legacyId , config . LEGACY_SUBMITTER_ROLE_ID )
84+ }
85+
86+ if ( ! nda && legacyNDA ) {
87+ logger . debug ( 'Legacy NDA exist, not in V5. Removing from Legacy.' )
88+ return termsService . removeTermsFromChallenge ( legacyChallengeId , legacyNDA . id , config . LEGACY_SUBMITTER_ROLE_ID )
7389 }
74- // TODO :: For now, don't remove terms from legacy
75- // for (const terms of toBeDeleted) {
76- // await termsService.removeTermsFromChallenge(legacyChallengeId, terms.termsId, terms.roleId)
77- // }
7890}
7991
8092/**
@@ -297,38 +309,38 @@ async function parsePayload (payload, m2mToken, isCreated = true, informixGroupI
297309 data . groupsToBeDeleted = _ . map ( informixGroupIds , g => _ . toString ( g ) )
298310 }
299311
300- if ( payload . terms && _ . get ( payload , 'terms.length' , 0 ) > 0 ) {
301- const oldTerms = informixGroupIds
302- const newTerms = [ ]
303-
304- for ( const v5TermsObject of payload . terms ) {
305- try {
306- const termsInfo = await getV5Terms ( v5TermsObject . id , m2mToken )
307- if ( ! _ . isEmpty ( _ . get ( termsInfo , 'legacyId' ) ) ) {
308- const roleInfo = await getV5Role ( v5TermsObject . roleId , m2mToken )
309- if ( ! _ . isEmpty ( _ . get ( roleInfo , 'legacyId' ) ) ) {
310- newTerms . push ( { id : _ . get ( termsInfo , 'legacyId' ) , roleId : _ . get ( roleInfo , 'legacyId' ) } )
311- }
312- }
313- } catch ( e ) {
314- logger . warn ( `Failed to load details for terms ${ v5TermsObject } ` )
315- }
316- }
317- data . termsToBeAdded = _ . difference ( newTerms , oldTerms )
318- data . termsToBeDeleted = _ . difference ( oldTerms , newTerms )
319- if ( data . termsToBeAdded . length > 0 ) {
320- logger . debug ( `parsePayload :: Adding Terms ${ JSON . stringify ( data . termsToBeAdded ) } ` )
321- }
322- if ( data . termsToBeDeleted . length > 0 ) {
323- logger . debug ( `parsePayload :: Deleting Terms ${ JSON . stringify ( data . termsToBeDeleted ) } ` )
324- }
325- }
326- // TODO Do not remove terms
327- // } else if (informixTermsArray && informixTermsArray.length > 0) {
328- // data.termsToBeDeleted = _.map(informixTermsArray, o => ({ id: o.id, roleId: o.roleId }))
312+ // if (payload.terms && _.get(payload, 'terms.length', 0) > 0) {
313+ // const oldTerms = informixGroupIds
314+ // const newTerms = []
315+
316+ // for (const v5TermsObject of payload.terms) {
317+ // try {
318+ // const termsInfo = await getV5Terms(v5TermsObject.id, m2mToken)
319+ // if (!_.isEmpty(_.get(termsInfo, 'legacyId'))) {
320+ // const roleInfo = await getV5Role(v5TermsObject.roleId, m2mToken)
321+ // if (!_.isEmpty(_.get(roleInfo, 'legacyId'))) {
322+ // newTerms.push({ id: _.get(termsInfo, 'legacyId'), roleId: _.get(roleInfo, 'legacyId') })
323+ // }
324+ // }
325+ // } catch (e) {
326+ // logger.warn(`Failed to load details for terms ${v5TermsObject}`)
327+ // }
328+ // }
329+ // data.termsToBeAdded = _.difference(newTerms, oldTerms)
330+ // data.termsToBeDeleted = _.difference(oldTerms, newTerms)
331+ // if (data.termsToBeAdded.length > 0) {
332+ // logger.debug(`parsePayload :: Adding Terms ${JSON.stringify(data.termsToBeAdded)}`)
333+ // }
334+ // if (data.termsToBeDeleted.length > 0) {
335+ // logger.debug(`parsePayload :: Deleting Terms ${JSON.stringify(data.termsToBeDeleted)}`)
336+ // }
329337 // }
330- logger . debug ( `parsePayload V5 Terms ${ JSON . stringify ( payload . terms ) } ` )
331- logger . debug ( `parsePayload legacy Terms ${ JSON . stringify ( informixTermsArray ) } ` )
338+ // // TODO Do not remove terms
339+ // // } else if (informixTermsArray && informixTermsArray.length > 0) {
340+ // // data.termsToBeDeleted = _.map(informixTermsArray, o => ({ id: o.id, roleId: o.roleId }))
341+ // // }
342+ // logger.debug(`parsePayload V5 Terms ${JSON.stringify(payload.terms)}`)
343+ // logger.debug(`parsePayload legacy Terms ${JSON.stringify(informixTermsArray)}`)
332344
333345 return data
334346 } catch ( err ) {
@@ -383,7 +395,7 @@ async function processCreate (message) {
383395 const newChallenge = await helper . postRequest ( `${ config . V4_CHALLENGE_API_URL } ` , { param : _ . omit ( saveDraftContestDTO , [ 'groupsToBeAdded' , 'groupsToBeDeleted' ] ) } , m2mToken )
384396 await helper . forceV4ESFeeder ( newChallenge . body . result . content . id )
385397 await associateChallengeGroups ( saveDraftContestDTO . groupsToBeAdded , saveDraftContestDTO . groupsToBeDeleted , newChallenge . body . result . content . id )
386- await associateChallengeTerms ( saveDraftContestDTO . termsToBeAdded , saveDraftContestDTO . termsToBeRemoved , newChallenge . body . result . content . id )
398+ // await associateChallengeTerms(saveDraftContestDTO.termsToBeAdded, saveDraftContestDTO.termsToBeRemoved, newChallenge.body.result.content.id)
387399 await setCopilotPayment ( newChallenge . body . result . content . id , _ . get ( message , 'payload.prizeSets' ) , _ . get ( message , 'payload.createdBy' ) , _ . get ( message , 'payload.updatedBy' ) )
388400 await helper . patchRequest ( `${ config . V5_CHALLENGE_API_URL } /${ challengeUuid } ` , {
389401 legacy : {
@@ -499,14 +511,14 @@ async function processUpdate (message) {
499511
500512 const v4GroupIds = await groupService . getGroupsForChallenge ( message . payload . legacyId )
501513 logger . info ( `GroupIDs Found in Informix: ${ JSON . stringify ( v4GroupIds ) } ` )
502- const v4TermsIds = await termsService . getTermsForChallenge ( message . payload . legacyId )
514+ // const v4TermsIds = await termsService.getTermsForChallenge(message.payload.legacyId)
503515
504- const saveDraftContestDTO = await parsePayload ( message . payload , m2mToken , false , v4GroupIds , v4TermsIds )
516+ const saveDraftContestDTO = await parsePayload ( message . payload , m2mToken , false , v4GroupIds )
505517 // logger.debug('Parsed Payload', saveDraftContestDTO)
506518 try {
507519 await helper . putRequest ( `${ config . V4_CHALLENGE_API_URL } /${ message . payload . legacyId } ` , { param : _ . omit ( saveDraftContestDTO , [ 'groupsToBeAdded' , 'groupsToBeDeleted' ] ) } , m2mToken )
508520 await associateChallengeGroups ( saveDraftContestDTO . groupsToBeAdded , saveDraftContestDTO . groupsToBeDeleted , message . payload . legacyId )
509- await associateChallengeTerms ( saveDraftContestDTO . termsToBeAdded , saveDraftContestDTO . termsToBeRemoved , message . payload . legacyId )
521+ await associateChallengeTerms ( message . payload . terms , message . payload . legacyId )
510522 await setCopilotPayment ( message . payload . legacyId , _ . get ( message , 'payload.prizeSets' ) , _ . get ( message , 'payload.createdBy' ) , _ . get ( message , 'payload.updatedBy' ) )
511523
512524 if ( message . payload . status ) {
0 commit comments