11const logger = require ( '../common/logger' )
22const _ = require ( 'lodash' )
33const util = require ( 'util' )
4+ const config = require ( 'config' )
45const helper = require ( '../common/helper' )
56
7+
68const QUERY_GET_CHALLENGE_TERMS = 'SELECT resource_role_id, terms_of_use_id FROM project_role_terms_of_use_xref WHERE project_id = %d'
79const 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)`
1016const 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