Skip to content
This repository was archived by the owner on Jan 23, 2025. It is now read-only.

Commit 880f8f2

Browse files
committed
Just add/remove the NDA. Don't worry about other terms.
1 parent bf54c2c commit 880f8f2

File tree

2 files changed

+69
-53
lines changed

2 files changed

+69
-53
lines changed

config/default.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,9 @@ module.exports = {
6868
SUBMISSION_PHASE_ID: process.env.SUBMISSION_PHASE_ID || '6950164f-3c5e-4bdc-abc8-22aaf5a1bd49',
6969
CHECKPOINT_SUBMISSION_PHASE_ID: process.env.CHECKPOINT_SUBMISSION_PHASE_ID || 'd8a2cdbe-84d1-4687-ab75-78a6a7efdcc8',
7070

71+
V5_TERMS_NDA_ID: process.env.V5_TERMS_NDA_ID || '77f558c1-56fb-427c-b974-61ea0a060ca7',
72+
LEGACY_TERMS_NDA_ID: process.env.LEGACY_TERMS_NDA_ID || 21343,
73+
LEGACY_SUBMITTER_ROLE_ID: process.env.LEGACY_SUBMITTER_ROLE_ID || 1,
74+
7175
COPILOT_PAYMENT_TYPE: process.env.COPILOT_PAYMENT_TYPE || 'copilot'
7276
}

src/services/ProcessorService.js

Lines changed: 65 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)