1
1
const logger = require ( '../common/logger' )
2
2
const _ = require ( 'lodash' )
3
3
const util = require ( 'util' )
4
+ const config = require ( 'config' )
4
5
const helper = require ( '../common/helper' )
5
6
7
+
6
8
const QUERY_GET_CHALLENGE_TERMS = 'SELECT resource_role_id, terms_of_use_id FROM project_role_terms_of_use_xref WHERE project_id = %d'
7
9
const QUERY_INSERT_CHALLENGE_TERMS = `INSERT INTO project_role_terms_of_use_xref
8
10
(project_id, resource_role_id, terms_of_use_id, create_date, modify_date, sort_order, group_ind)
9
11
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)`
10
16
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'
11
18
12
19
/**
13
20
* Prepare Informix statement
@@ -36,14 +43,28 @@ async function getTermsForChallenge (challengeLegacyId) {
36
43
return _ . map ( result , r => ( { id : r . terms_of_use_id , roleId : r . resource_role_id } ) )
37
44
}
38
45
39
- async function addTermsToChallenge ( challengeLegacyId , legacyTermsId , legacyResourceRoleId ) {
46
+ async function addTermsToChallenge ( challengeLegacyId , legacyTermsId , legacyResourceRoleId , createdBy , updatedBy ) {
40
47
const connection = await helper . getInformixConnection ( )
41
48
let result = null
42
49
try {
43
- // await connection.beginTransactionAsync()
50
+ logger . debug ( `Creating Terms ${ legacyTermsId } for Challenge ${ challengeLegacyId } ` )
51
+ await connection . beginTransactionAsync ( )
52
+ // create association
44
53
const query = await prepare ( connection , QUERY_INSERT_CHALLENGE_TERMS )
45
54
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 ( )
47
68
} catch ( e ) {
48
69
logger . error ( `Error in 'addTermsToChallenge' ${ e } , rolling back transaction` )
49
70
await connection . rollbackTransactionAsync ( )
@@ -59,10 +80,14 @@ async function removeTermsFromChallenge (challengeLegacyId, legacyTermsId, legac
59
80
const connection = await helper . getInformixConnection ( )
60
81
let result = null
61
82
try {
62
- // await connection.beginTransactionAsync()
83
+ await connection . beginTransactionAsync ( )
63
84
const query = await prepare ( connection , QUERY_DELETE_CHALLENGE_TERMS )
64
85
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 ( )
66
91
} catch ( e ) {
67
92
logger . error ( `Error in 'removeTermsFromChallenge' ${ e } , rolling back transaction` )
68
93
await connection . rollbackTransactionAsync ( )
0 commit comments