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

Commit 9e0fe85

Browse files
author
James Cori
committed
Merge branch 'develop'
2 parents 6edf5ca + a1df574 commit 9e0fe85

File tree

3 files changed

+49
-26
lines changed

3 files changed

+49
-26
lines changed

config/default.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ module.exports = {
7070

7171
V5_TERMS_NDA_ID: process.env.V5_TERMS_NDA_ID || '77f558c1-56fb-427c-b974-61ea0a060ca7',
7272
LEGACY_TERMS_NDA_ID: process.env.LEGACY_TERMS_NDA_ID || 21343,
73+
74+
V5_TERMS_STANDARD_ID: process.env.V5_TERMS_STANDARD_ID || 'e5811a7b-43d1-407a-a064-69e5015b4900',
75+
LEGACY_TERMS_STANDARD_ID: process.env.LEGACY_TERMS_STANDARD_ID || 21233,
76+
7377
LEGACY_SUBMITTER_ROLE_ID: process.env.LEGACY_SUBMITTER_ROLE_ID || 1,
7478

7579
COPILOT_PAYMENT_TYPE: process.env.COPILOT_PAYMENT_TYPE || 'copilot',

src/services/ProcessorService.js

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -67,23 +67,33 @@ async function associateChallengeGroups (toBeAdded = [], toBeDeleted = [], legac
6767
* @param {String|Number} legacyChallengeId the legacy challenge ID
6868
*/
6969
async function associateChallengeTerms (v5Terms, legacyChallengeId, createdBy, updatedBy) {
70-
const nda = _.find(v5Terms, e => e.id === config.V5_TERMS_NDA_ID)
7170
const legacyTermsArray = await termsService.getTermsForChallenge(legacyChallengeId)
71+
const nda = _.find(v5Terms, e => e.id === config.V5_TERMS_NDA_ID)
7272
const legacyNDA = _.find(legacyTermsArray, e => _.toNumber(e.id) === _.toNumber(config.LEGACY_TERMS_NDA_ID))
7373

74-
if (nda && nda.id && !legacyNDA) {
75-
logger.debug('Associate Challenge Terms - v5 NDA exist, not in legacy. Adding to Legacy.')
76-
const m2mToken = await helper.getM2MToken()
77-
const v5Term = await getV5Terms(nda.id, m2mToken)
78-
return termsService.addTermsToChallenge(legacyChallengeId, v5Term.legacyId, config.LEGACY_SUBMITTER_ROLE_ID, createdBy, updatedBy)
74+
const standardTerms = _.find(v5Terms, e => e.id === config.V5_TERMS_STANDARD_ID)
75+
const legacyStandardTerms = _.find(legacyTermsArray, e => _.toNumber(e.id) === _.toNumber(config.LEGACY_TERMS_STANDARD_ID))
76+
77+
const m2mToken = await helper.getM2MToken()
78+
if (standardTerms && standardTerms.id && !legacyStandardTerms) {
79+
logger.debug('Associate Challenge Terms - v5 Standard Terms exist, not in legacy. Adding to Legacy.')
80+
const v5StandardTerm = await getV5Terms(standardTerms.id, m2mToken)
81+
await termsService.addTermsToChallenge(legacyChallengeId, v5StandardTerm.legacyId, config.LEGACY_SUBMITTER_ROLE_ID, createdBy, updatedBy)
82+
} else if (!standardTerms && legacyStandardTerms && legacyStandardTerms.id) {
83+
logger.debug('Associate Challenge Terms - Legacy NDA exist, not in V5. Removing from Legacy.')
84+
await termsService.removeTermsFromChallenge(legacyChallengeId, legacyStandardTerms.id, config.LEGACY_SUBMITTER_ROLE_ID)
7985
}
8086

81-
if (!nda && legacyNDA && legacyNDA.id) {
87+
if (nda && nda.id && !legacyNDA) {
88+
logger.debug('Associate Challenge Terms - v5 NDA exist, not in legacy. Adding to Legacy.')
89+
const v5NDATerm = await getV5Terms(nda.id, m2mToken)
90+
await termsService.addTermsToChallenge(legacyChallengeId, v5NDATerm.legacyId, config.LEGACY_SUBMITTER_ROLE_ID, createdBy, updatedBy, true)
91+
} else if (!nda && legacyNDA && legacyNDA.id) {
8292
logger.debug('Associate Challenge Terms - Legacy NDA exist, not in V5. Removing from Legacy.')
83-
return termsService.removeTermsFromChallenge(legacyChallengeId, legacyNDA.id, config.LEGACY_SUBMITTER_ROLE_ID)
93+
await termsService.removeTermsFromChallenge(legacyChallengeId, legacyNDA.id, config.LEGACY_SUBMITTER_ROLE_ID, true)
8494
}
8595

86-
logger.debug('Associate Challenge Terms - Nothing to Do')
96+
// logger.debug('Associate Challenge Terms - Nothing to Do')
8797
}
8898

8999
/**
@@ -203,7 +213,7 @@ async function parsePayload (payload, m2mToken, isCreated = true, informixGroupI
203213
const data = {
204214
...legacyTrackInfo,
205215
name: payload.name,
206-
reviewType: _.get(payload, 'legacy.reviewType'),
216+
reviewType: _.get(payload, 'legacy.reviewType', 'INTERNAL'),
207217
projectId,
208218
status: payload.status
209219
}
@@ -357,6 +367,12 @@ async function processCreate (message) {
357367
logger.debug('processCreate :: beforeTry')
358368
try {
359369
const newChallenge = await helper.postRequest(`${config.V4_CHALLENGE_API_URL}`, { param: _.omit(saveDraftContestDTO, ['groupsToBeAdded', 'groupsToBeDeleted']) }, m2mToken)
370+
371+
let forumId = 0
372+
if (message.payload.legacy && message.payload.legacy.forumId) {
373+
forumId = message.payload.legacy.forumId
374+
}
375+
forumId = _.get(newChallenge, 'body.result.content.forumId', forumId)
360376
await helper.forceV4ESFeeder(newChallenge.body.result.content.id)
361377
await associateChallengeGroups(saveDraftContestDTO.groupsToBeAdded, saveDraftContestDTO.groupsToBeDeleted, newChallenge.body.result.content.id)
362378
// await associateChallengeTerms(saveDraftContestDTO.termsToBeAdded, saveDraftContestDTO.termsToBeRemoved, newChallenge.body.result.content.id)
@@ -368,7 +384,7 @@ async function processCreate (message) {
368384
subTrack: saveDraftContestDTO.subTrack,
369385
isTask: saveDraftContestDTO.task || false,
370386
directProjectId: newChallenge.body.result.content.projectId,
371-
forumId: _.get(newChallenge, 'body.result.content.forumId', message.payload.legacy.forumId)
387+
forumId
372388
},
373389
legacyId: newChallenge.body.result.content.id
374390
}, m2mToken)

src/services/termsService.js

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,27 +43,28 @@ async function getTermsForChallenge (challengeLegacyId) {
4343
return _.map(result, r => ({ id: r.terms_of_use_id, roleId: r.resource_role_id }))
4444
}
4545

46-
async function addTermsToChallenge (challengeLegacyId, legacyTermsId, legacyResourceRoleId, createdBy, updatedBy) {
46+
async function addTermsToChallenge (challengeLegacyId, legacyTermsId, legacyResourceRoleId, createdBy, updatedBy, isNDA = false) {
4747
const connection = await helper.getInformixConnection()
4848
let result = null
4949
try {
50-
logger.debug(`Creating Terms ${legacyTermsId} for Challenge ${challengeLegacyId}`)
50+
logger.debug(`Creating Terms ${legacyTermsId} for Challenge ${challengeLegacyId} - NDA Flag: ${isNDA === true ? 'true' : 'false'}`)
5151
await connection.beginTransactionAsync()
5252
// create association
5353
const query = await prepare(connection, QUERY_INSERT_CHALLENGE_TERMS)
5454
result = await query.executeAsync([challengeLegacyId, legacyResourceRoleId, legacyTermsId])
5555

56-
logger.debug(`Creating Terms - deleting project info record for ${challengeLegacyId}`)
57-
// make sure there are no project info records
58-
const piqueryDelete = await prepare(connection, QUERY_DELETE_PROJECT_INFO_CHALLENGE_TERMS)
59-
await piqueryDelete.executeAsync([challengeLegacyId])
60-
61-
logger.debug(`Creating Terms - adding project info record for ${challengeLegacyId} ${legacyTermsId} === ${config.LEGACY_TERMS_NDA_ID}`)
62-
// add the project info record for the `Confidentiality Type`
63-
const termsProjectInfoValue = (legacyTermsId.toString() === config.LEGACY_TERMS_NDA_ID.toString()) ? 'standard_cca' : 'public'
64-
const piquery = await prepare(connection, QUERY_INSERT_PROJECT_INFO_CHALLENGE_TERMS)
65-
await piquery.executeAsync([challengeLegacyId, termsProjectInfoValue, createdBy, updatedBy])
56+
if (isNDA) {
57+
logger.debug(`Creating Terms - deleting project info record for ${challengeLegacyId}`)
58+
// make sure there are no project info records
59+
const piqueryDelete = await prepare(connection, QUERY_DELETE_PROJECT_INFO_CHALLENGE_TERMS)
60+
await piqueryDelete.executeAsync([challengeLegacyId])
6661

62+
logger.debug(`Creating Terms - adding project info record for ${challengeLegacyId} ${legacyTermsId} === ${config.LEGACY_TERMS_NDA_ID}`)
63+
// add the project info record for the `Confidentiality Type`
64+
const termsProjectInfoValue = (legacyTermsId.toString() === config.LEGACY_TERMS_NDA_ID.toString()) ? 'standard_cca' : 'public'
65+
const piquery = await prepare(connection, QUERY_INSERT_PROJECT_INFO_CHALLENGE_TERMS)
66+
await piquery.executeAsync([challengeLegacyId, termsProjectInfoValue, createdBy, updatedBy])
67+
}
6768
await connection.commitTransactionAsync()
6869
} catch (e) {
6970
logger.error(`Error in 'addTermsToChallenge' ${e}, rolling back transaction`)
@@ -76,16 +77,18 @@ async function addTermsToChallenge (challengeLegacyId, legacyTermsId, legacyReso
7677
return result
7778
}
7879

79-
async function removeTermsFromChallenge (challengeLegacyId, legacyTermsId, legacyResourceRoleId) {
80+
async function removeTermsFromChallenge (challengeLegacyId, legacyTermsId, legacyResourceRoleId, isNDA = false) {
8081
const connection = await helper.getInformixConnection()
8182
let result = null
8283
try {
8384
await connection.beginTransactionAsync()
8485
const query = await prepare(connection, QUERY_DELETE_CHALLENGE_TERMS)
8586
result = await query.executeAsync([challengeLegacyId, legacyResourceRoleId, legacyTermsId])
8687

87-
const piquery = await prepare(connection, QUERY_DELETE_PROJECT_INFO_CHALLENGE_TERMS)
88-
await piquery.executeAsync([challengeLegacyId])
88+
if (isNDA) {
89+
const piquery = await prepare(connection, QUERY_DELETE_PROJECT_INFO_CHALLENGE_TERMS)
90+
await piquery.executeAsync([challengeLegacyId])
91+
}
8992

9093
await connection.commitTransactionAsync()
9194
} catch (e) {

0 commit comments

Comments
 (0)