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

Commit 64b7903

Browse files
author
James Cori
committed
Adding Standard Terms check/manipulation
1 parent 179d797 commit 64b7903

File tree

3 files changed

+39
-21
lines changed

3 files changed

+39
-21
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: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,23 +67,34 @@ 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+
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+
if (standardTerms && standardTerms.id && !legacyStandardTerms) {
78+
logger.debug('Associate Challenge Terms - v5 Standard Terms exist, not in legacy. Adding to Legacy.')
79+
const m2mToken = await helper.getM2MToken()
80+
const v5Term = await getV5Terms(standardTerms.id, m2mToken)
81+
await termsService.addTermsToChallenge(legacyChallengeId, v5Term.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)
85+
}
86+
7487
if (nda && nda.id && !legacyNDA) {
7588
logger.debug('Associate Challenge Terms - v5 NDA exist, not in legacy. Adding to Legacy.')
7689
const m2mToken = await helper.getM2MToken()
7790
const v5Term = await getV5Terms(nda.id, m2mToken)
78-
return termsService.addTermsToChallenge(legacyChallengeId, v5Term.legacyId, config.LEGACY_SUBMITTER_ROLE_ID, createdBy, updatedBy)
79-
}
80-
81-
if (!nda && legacyNDA && legacyNDA.id) {
91+
await termsService.addTermsToChallenge(legacyChallengeId, v5Term.legacyId, config.LEGACY_SUBMITTER_ROLE_ID, createdBy, updatedBy, true)
92+
} else if (!nda && legacyNDA && legacyNDA.id) {
8293
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)
94+
await termsService.removeTermsFromChallenge(legacyChallengeId, legacyNDA.id, config.LEGACY_SUBMITTER_ROLE_ID, true)
8495
}
8596

86-
logger.debug('Associate Challenge Terms - Nothing to Do')
97+
// logger.debug('Associate Challenge Terms - Nothing to Do')
8798
}
8899

89100
/**

src/services/termsService.js

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ 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 {
@@ -53,17 +53,18 @@ async function addTermsToChallenge (challengeLegacyId, legacyTermsId, legacyReso
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)