@@ -2,12 +2,18 @@ const logger = require('../common/logger')
22const _ = require ( 'lodash' )
33const util = require ( 'util' )
44const helper = require ( '../common/helper' )
5+ const { config } = require ( 'process' )
56
67const QUERY_GET_CHALLENGE_TERMS = 'SELECT resource_role_id, terms_of_use_id FROM project_role_terms_of_use_xref WHERE project_id = %d'
78const QUERY_INSERT_CHALLENGE_TERMS = `INSERT INTO project_role_terms_of_use_xref
89 (project_id, resource_role_id, terms_of_use_id, create_date, modify_date, sort_order, group_ind)
910 VALUES (?, ?, ?, CURRENT, CURRENT, 1, 0)`
11+
12+ const QUERY_INSERT_PROJECT_INFO_CHALLENGE_TERMS = `INSERT INTO project_info
13+ (project_id, project_info_type_id, value, create_user, create_date, modify_user, modify_date)
14+ VALUES (?, 34, ?, ?, CURRENT, ?, CURRENT)`
1015const QUERY_DELETE_CHALLENGE_TERMS = 'DELETE FROM project_role_terms_of_use_xref WHERE project_id = ? AND resource_role_id = ? AND terms_of_use_id = ?'
16+ const QUERY_DELETE_PROJECT_INFO_CHALLENGE_TERMS = 'DELETE FROM project_info WHERE project_id = ? AND project_info_type_id = 34'
1117
1218/**
1319 * Prepare Informix statement
@@ -36,14 +42,28 @@ async function getTermsForChallenge (challengeLegacyId) {
3642 return _ . map ( result , r => ( { id : r . terms_of_use_id , roleId : r . resource_role_id } ) )
3743}
3844
39- async function addTermsToChallenge ( challengeLegacyId , legacyTermsId , legacyResourceRoleId ) {
45+ async function addTermsToChallenge ( challengeLegacyId , legacyTermsId , legacyResourceRoleId , createdBy , updatedBy ) {
4046 const connection = await helper . getInformixConnection ( )
4147 let result = null
4248 try {
43- // await connection.beginTransactionAsync()
49+ logger . debug ( `Creating Terms ${ legacyTermsId } for Challenge ${ challengeLegacyId } ` )
50+ await connection . beginTransactionAsync ( )
51+ // create association
4452 const query = await prepare ( connection , QUERY_INSERT_CHALLENGE_TERMS )
4553 result = await query . executeAsync ( [ challengeLegacyId , legacyResourceRoleId , legacyTermsId ] )
46- // await connection.commitTransactionAsync()
54+
55+ logger . debug ( `Creating Terms - deleting project info record for ${ challengeLegacyId } ` )
56+ // make sure there are no project info records
57+ const piqueryDelete = await prepare ( connection , QUERY_DELETE_PROJECT_INFO_CHALLENGE_TERMS )
58+ await piqueryDelete . executeAsync ( [ challengeLegacyId ] )
59+
60+ logger . debug ( `Creating Terms - adding project info record for ${ challengeLegacyId } ` )
61+ // add the project info record for the `Confidentiality Type`
62+ const termsProjectInfoValue = ( legacyTermsId === config . V5_TERMS_NDA_ID ) ? 'stanard_cca' : 'public'
63+ const piquery = await prepare ( connection , QUERY_INSERT_PROJECT_INFO_CHALLENGE_TERMS )
64+ await piquery . executeAsync ( [ challengeLegacyId , termsProjectInfoValue , createdBy , updatedBy ] )
65+
66+ await connection . commitTransactionAsync ( )
4767 } catch ( e ) {
4868 logger . error ( `Error in 'addTermsToChallenge' ${ e } , rolling back transaction` )
4969 await connection . rollbackTransactionAsync ( )
@@ -59,10 +79,14 @@ async function removeTermsFromChallenge (challengeLegacyId, legacyTermsId, legac
5979 const connection = await helper . getInformixConnection ( )
6080 let result = null
6181 try {
62- // await connection.beginTransactionAsync()
82+ await connection . beginTransactionAsync ( )
6383 const query = await prepare ( connection , QUERY_DELETE_CHALLENGE_TERMS )
6484 result = await query . executeAsync ( [ challengeLegacyId , legacyResourceRoleId , legacyTermsId ] )
65- // await connection.commitTransactionAsync()
85+
86+ const piquery = await prepare ( connection , QUERY_DELETE_PROJECT_INFO_CHALLENGE_TERMS )
87+ await piquery . executeAsync ( [ challengeLegacyId ] )
88+
89+ await connection . commitTransactionAsync ( )
6690 } catch ( e ) {
6791 logger . error ( `Error in 'removeTermsFromChallenge' ${ e } , rolling back transaction` )
6892 await connection . rollbackTransactionAsync ( )
0 commit comments