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

Commit daf303c

Browse files
author
James Cori
committed
Merge branch 'develop'
2 parents ad615f8 + 60de4dd commit daf303c

File tree

2 files changed

+33
-14
lines changed

2 files changed

+33
-14
lines changed

src/services/ProcessorService.js

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,22 +65,16 @@ 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 (v5Terms, legacyChallengeId) {
68+
async function associateChallengeTerms (v5Terms, legacyChallengeId, createdBy, updatedBy) {
6969
const nda = _.find(v5Terms, e => e.id === config.V5_TERMS_NDA_ID)
7070
const legacyTermsArray = await termsService.getTermsForChallenge(legacyChallengeId)
7171
const legacyNDA = _.find(legacyTermsArray, e => _.toNumber(e.id) === _.toNumber(config.LEGACY_TERMS_NDA_ID))
7272

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-
7973
if (nda && nda.id && !legacyNDA) {
8074
logger.debug('Associate Challenge Terms - v5 NDA exist, not in legacy. Adding to Legacy.')
8175
const m2mToken = await helper.getM2MToken()
8276
const v5Term = await getV5Terms(nda.id, m2mToken)
83-
return termsService.addTermsToChallenge(legacyChallengeId, v5Term.legacyId, config.LEGACY_SUBMITTER_ROLE_ID)
77+
return termsService.addTermsToChallenge(legacyChallengeId, v5Term.legacyId, config.LEGACY_SUBMITTER_ROLE_ID, createdBy, updatedBy)
8478
}
8579

8680
if (!nda && legacyNDA && legacyNDA.id) {
@@ -487,7 +481,7 @@ async function processUpdate (message) {
487481
try {
488482
await helper.putRequest(`${config.V4_CHALLENGE_API_URL}/${message.payload.legacyId}`, { param: _.omit(saveDraftContestDTO, ['groupsToBeAdded', 'groupsToBeDeleted']) }, m2mToken)
489483
await associateChallengeGroups(saveDraftContestDTO.groupsToBeAdded, saveDraftContestDTO.groupsToBeDeleted, message.payload.legacyId)
490-
await associateChallengeTerms(message.payload.terms, message.payload.legacyId)
484+
await associateChallengeTerms(message.payload.terms, message.payload.legacyId, _.get(message, 'payload.createdBy'), _.get(message, 'payload.updatedBy'))
491485
await setCopilotPayment(message.payload.legacyId, _.get(message, 'payload.prizeSets'), _.get(message, 'payload.createdBy'), _.get(message, 'payload.updatedBy'))
492486

493487
if (message.payload.status) {

src/services/termsService.js

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
const logger = require('../common/logger')
22
const _ = require('lodash')
33
const util = require('util')
4+
const config = require('config')
45
const helper = require('../common/helper')
56

7+
68
const QUERY_GET_CHALLENGE_TERMS = 'SELECT resource_role_id, terms_of_use_id FROM project_role_terms_of_use_xref WHERE project_id = %d'
79
const QUERY_INSERT_CHALLENGE_TERMS = `INSERT INTO project_role_terms_of_use_xref
810
(project_id, resource_role_id, terms_of_use_id, create_date, modify_date, sort_order, group_ind)
911
VALUES (?, ?, ?, CURRENT, CURRENT, 1, 0)`
12+
13+
const QUERY_INSERT_PROJECT_INFO_CHALLENGE_TERMS = `INSERT INTO project_info
14+
(project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date)
15+
VALUES (?, 34, ?, ?, CURRENT, ?, CURRENT)`
1016
const QUERY_DELETE_CHALLENGE_TERMS = 'DELETE FROM project_role_terms_of_use_xref WHERE project_id = ? AND resource_role_id = ? AND terms_of_use_id = ?'
17+
const QUERY_DELETE_PROJECT_INFO_CHALLENGE_TERMS = 'DELETE FROM project_info WHERE project_id = ? AND project_info_type_id = 34'
1118

1219
/**
1320
* Prepare Informix statement
@@ -36,14 +43,28 @@ async function getTermsForChallenge (challengeLegacyId) {
3643
return _.map(result, r => ({ id: r.terms_of_use_id, roleId: r.resource_role_id }))
3744
}
3845

39-
async function addTermsToChallenge (challengeLegacyId, legacyTermsId, legacyResourceRoleId) {
46+
async function addTermsToChallenge (challengeLegacyId, legacyTermsId, legacyResourceRoleId, createdBy, updatedBy) {
4047
const connection = await helper.getInformixConnection()
4148
let result = null
4249
try {
43-
// await connection.beginTransactionAsync()
50+
logger.debug(`Creating Terms ${legacyTermsId} for Challenge ${challengeLegacyId}`)
51+
await connection.beginTransactionAsync()
52+
// create association
4453
const query = await prepare(connection, QUERY_INSERT_CHALLENGE_TERMS)
4554
result = await query.executeAsync([challengeLegacyId, legacyResourceRoleId, legacyTermsId])
46-
// await connection.commitTransactionAsync()
55+
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])
66+
67+
await connection.commitTransactionAsync()
4768
} catch (e) {
4869
logger.error(`Error in 'addTermsToChallenge' ${e}, rolling back transaction`)
4970
await connection.rollbackTransactionAsync()
@@ -59,10 +80,14 @@ async function removeTermsFromChallenge (challengeLegacyId, legacyTermsId, legac
5980
const connection = await helper.getInformixConnection()
6081
let result = null
6182
try {
62-
// await connection.beginTransactionAsync()
83+
await connection.beginTransactionAsync()
6384
const query = await prepare(connection, QUERY_DELETE_CHALLENGE_TERMS)
6485
result = await query.executeAsync([challengeLegacyId, legacyResourceRoleId, legacyTermsId])
65-
// await connection.commitTransactionAsync()
86+
87+
const piquery = await prepare(connection, QUERY_DELETE_PROJECT_INFO_CHALLENGE_TERMS)
88+
await piquery.executeAsync([challengeLegacyId])
89+
90+
await connection.commitTransactionAsync()
6691
} catch (e) {
6792
logger.error(`Error in 'removeTermsFromChallenge' ${e}, rolling back transaction`)
6893
await connection.rollbackTransactionAsync()

0 commit comments

Comments
 (0)