@getjones/test-infra 3.0.3 → 3.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/package.json +30 -30
  2. package/src/common/commonFlows/auth/auth.js +40 -40
  3. package/src/common/commonFlows/index.js +4 -4
  4. package/src/common/commonFlows/records/records.js +146 -146
  5. package/src/common/consts/accountSettings.js +10 -10
  6. package/src/common/consts/activationStatuses.js +6 -6
  7. package/src/common/consts/constantsForRecordsSortingAndFilters.js +40 -40
  8. package/src/common/consts/dashboardCharts.js +18 -18
  9. package/src/common/consts/ocrStatuses.js +6 -6
  10. package/src/common/consts/projectSettings.js +6 -6
  11. package/src/common/consts/recordTypes.js +5 -5
  12. package/src/common/consts/s3FileTypes.js +12 -12
  13. package/src/common/consts/userTypes.js +8 -8
  14. package/src/common/errorCodes.js +3 -3
  15. package/src/common/httpResponseStatusCodes.json +11 -11
  16. package/src/common/requests/apiKeyAuth/requests.js +44 -44
  17. package/src/common/requests/cookieAuth/requests.js +40 -40
  18. package/src/common/requests/internalAuth/requests.js +48 -48
  19. package/src/common/requests/requestHandlers.js +78 -78
  20. package/src/common/utils/complianceUtil.js +106 -83
  21. package/src/common/utils/configsUtil.js +22 -22
  22. package/src/common/utils/dataTypeUtils.js +41 -41
  23. package/src/common/utils/numberUtils.js +22 -22
  24. package/src/common/utils/objectUtils.js +7 -7
  25. package/src/common/utils/timeUtils.js +177 -177
  26. package/src/common/validations/errorValidation.js +16 -16
  27. package/src/common/validations/typeValidations.js +36 -36
  28. package/src/defaults/configs/auditConfigs.js +99 -91
  29. package/src/defaults/configs/coverage.js +227 -227
  30. package/src/defaults/configs/polices.js +67 -67
  31. package/src/defaults/configs/requirement.js +32 -32
  32. package/src/defaults/index.js +6 -6
  33. package/src/env.js +57 -57
  34. package/src/factory/globalRecord/globalRecord.js +70 -70
  35. package/src/factory/index.js +8 -8
  36. package/src/factory/records/records.js +225 -169
  37. package/src/factory/users/users.js +77 -77
  38. package/src/index.js +91 -91
  39. package/src/resources/virusFile.pdf +0 -0
  40. package/src/saas/internal-api/accounts/api/core/accounts.core.api.js +35 -35
  41. package/src/saas/internal-api/accounts/api/core/accounts.core.service.js +93 -93
  42. package/src/saas/internal-api/accounts/api/emailCustomization/accounts.email.customizations.api.js +29 -29
  43. package/src/saas/internal-api/accounts/api/emailCustomization/accounts.email.customizations.service.js +61 -61
  44. package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.api.js +48 -48
  45. package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.service.js +74 -74
  46. package/src/saas/internal-api/accounts/api/settings/settings.api.js +21 -21
  47. package/src/saas/internal-api/accounts/api/settings/settings.service.js +41 -41
  48. package/src/saas/internal-api/accounts/consts/consts.js +6 -6
  49. package/src/saas/internal-api/accounts/index.js +22 -22
  50. package/src/saas/internal-api/accounts/models/core/create.account.model.js +16 -16
  51. package/src/saas/internal-api/accounts/models/settings/update.settings.model.js +38 -38
  52. package/src/saas/internal-api/accounts/utils/utils.js +58 -58
  53. package/src/saas/internal-api/agreement/api/agreement.api.js +35 -35
  54. package/src/saas/internal-api/agreement/api/agreement.service.js +81 -81
  55. package/src/saas/internal-api/agreement/consts/consts.js +8 -8
  56. package/src/saas/internal-api/agreement/index.js +11 -11
  57. package/src/saas/internal-api/agreement/models/create.agreement.model.js +12 -12
  58. package/src/saas/internal-api/auditCustomerRules/api/customer.rules.api.js +43 -43
  59. package/src/saas/internal-api/auditCustomerRules/api/customer.rules.service.js +105 -105
  60. package/src/saas/internal-api/auditCustomerRules/consts/customer.rule.js +11 -11
  61. package/src/saas/internal-api/auditCustomerRules/index.js +6 -6
  62. package/src/saas/internal-api/auditCustomerRules/models/customer.rule.model.js +46 -46
  63. package/src/saas/internal-api/auditCustomerRules/utils/customer.rule.util.js +19 -19
  64. package/src/saas/internal-api/auditNotes/api/audit.notes.api.js +40 -40
  65. package/src/saas/internal-api/auditNotes/api/audit.notes.service.js +115 -115
  66. package/src/saas/internal-api/auditNotes/index.js +4 -4
  67. package/src/saas/internal-api/auditNotes/models/audit.note.model.js +30 -30
  68. package/src/saas/internal-api/auth/api/auth.api.js +27 -27
  69. package/src/saas/internal-api/auth/api/auth.service.js +90 -90
  70. package/src/saas/internal-api/auth/index.js +3 -3
  71. package/src/saas/internal-api/coi/api/coi.api.js +40 -40
  72. package/src/saas/internal-api/coi/api/coi.service.js +26 -26
  73. package/src/saas/internal-api/coi/consts/hashes.js +4 -4
  74. package/src/saas/internal-api/coi/consts/uploaderTypes.js +5 -5
  75. package/src/saas/internal-api/coi/index.js +14 -14
  76. package/src/saas/internal-api/coi/models/submit.coi.model.js +9 -19
  77. package/src/saas/internal-api/coi/utils/utils.js +48 -70
  78. package/src/saas/internal-api/compliance/api/audit/audit.api.js +100 -100
  79. package/src/saas/internal-api/compliance/api/audit/audit.service.js +242 -242
  80. package/src/saas/internal-api/compliance/api/convert/convert.api.js +17 -17
  81. package/src/saas/internal-api/compliance/api/convert/convert.service.js +11 -11
  82. package/src/saas/internal-api/compliance/api/coverage/coverage.api.js +33 -33
  83. package/src/saas/internal-api/compliance/api/coverage/coverage.service.js +48 -48
  84. package/src/saas/internal-api/compliance/api/overrideGap/override.gap.api.js +33 -33
  85. package/src/saas/internal-api/compliance/api/overrideGap/override.gap.service.js +141 -141
  86. package/src/saas/internal-api/compliance/consts/audit.js +103 -103
  87. package/src/saas/internal-api/compliance/index.js +33 -33
  88. package/src/saas/internal-api/compliance/models/audit/audit.model.js +94 -94
  89. package/src/saas/internal-api/compliance/models/waive/waive.model.js +49 -49
  90. package/src/saas/internal-api/compliance/utils/auditUtil.js +222 -222
  91. package/src/saas/internal-api/compliance/utils/coverageUtil.js +40 -40
  92. package/src/saas/internal-api/contractors/api/contractors.api.js +203 -203
  93. package/src/saas/internal-api/contractors/api/contractors.service.js +318 -318
  94. package/src/saas/internal-api/contractors/consts/consts.js +6 -6
  95. package/src/saas/internal-api/contractors/index.js +8 -8
  96. package/src/saas/internal-api/contractors/models/assign.requirement.model.js +10 -10
  97. package/src/saas/internal-api/contractors/models/edit.contractor.model.js +62 -62
  98. package/src/saas/internal-api/contractors/models/link.request.model.js +10 -10
  99. package/src/saas/internal-api/contractors/models/subscription.contractor.model.js +13 -13
  100. package/src/saas/internal-api/contractors/models/verification.contractor.model.js +27 -27
  101. package/src/saas/internal-api/contractors/utils.js +25 -25
  102. package/src/saas/internal-api/dashboard/api/recordList.api.js +38 -38
  103. package/src/saas/internal-api/dashboard/api/recordList.service.js +60 -60
  104. package/src/saas/internal-api/dashboard/index.js +5 -5
  105. package/src/saas/internal-api/dashboard/models/dashboard.filter.criteria.model.js +38 -38
  106. package/src/saas/internal-api/dbEmails/api/db.emails.api.js +25 -25
  107. package/src/saas/internal-api/dbEmails/api/db.emails.service.js +156 -156
  108. package/src/saas/internal-api/dbEmails/consts/consts.js +54 -54
  109. package/src/saas/internal-api/dbEmails/index.js +6 -6
  110. package/src/saas/internal-api/dbEmails/models/db.emails.model.js +22 -22
  111. package/src/saas/internal-api/dbEmails/utils/util.js +87 -87
  112. package/src/saas/internal-api/emailCustomization/api/email.customization.api.js +26 -26
  113. package/src/saas/internal-api/emailCustomization/api/email.customization.service.js +50 -50
  114. package/src/saas/internal-api/emailCustomization/index.js +3 -3
  115. package/src/saas/internal-api/globalRecord/api/global.record.api.js +95 -95
  116. package/src/saas/internal-api/globalRecord/api/global.record.service.js +105 -105
  117. package/src/saas/internal-api/globalRecord/consts.js +20 -20
  118. package/src/saas/internal-api/globalRecord/index.js +6 -6
  119. package/src/saas/internal-api/globalRecord/models/global.record.model.js +60 -60
  120. package/src/saas/internal-api/globalRecord/utils/util.js +161 -161
  121. package/src/saas/internal-api/homepageCharts/api/charts.api.js +12 -12
  122. package/src/saas/internal-api/homepageCharts/api/charts.service.js +7 -7
  123. package/src/saas/internal-api/homepageCharts/index.js +3 -3
  124. package/src/saas/internal-api/projects/api/core/projects.api.js +39 -39
  125. package/src/saas/internal-api/projects/api/core/projects.service.js +65 -65
  126. package/src/saas/internal-api/projects/api/settings/project.settings.api.js +18 -18
  127. package/src/saas/internal-api/projects/api/settings/project.settings.service.js +35 -35
  128. package/src/saas/internal-api/projects/consts/defaultProject.js +3 -3
  129. package/src/saas/internal-api/projects/index.js +24 -24
  130. package/src/saas/internal-api/projects/models/core/create.project.model.js +41 -41
  131. package/src/saas/internal-api/projects/models/core/update.project.model.js +47 -47
  132. package/src/saas/internal-api/projects/models/settings/update.project.settings.model.js +41 -41
  133. package/src/saas/internal-api/projects/utils/utils.js +156 -156
  134. package/src/saas/internal-api/recordNotes/api/record.notes.api.js +38 -38
  135. package/src/saas/internal-api/recordNotes/api/record.notes.service.js +47 -47
  136. package/src/saas/internal-api/recordNotes/api/record.notes.utils.js +12 -12
  137. package/src/saas/internal-api/recordNotes/index.js +3 -3
  138. package/src/saas/internal-api/reports/api/reports.api.js +39 -39
  139. package/src/saas/internal-api/reports/api/reports.service.js +34 -34
  140. package/src/saas/internal-api/reports/consts/consts.js +65 -65
  141. package/src/saas/internal-api/reports/index.js +15 -15
  142. package/src/saas/internal-api/reports/models/report.model.js +27 -27
  143. package/src/saas/internal-api/requests/api/requests.api.js +120 -120
  144. package/src/saas/internal-api/requests/api/requests.service.js +272 -272
  145. package/src/saas/internal-api/requests/index.js +20 -20
  146. package/src/saas/internal-api/requests/models/create.request.model.js +33 -33
  147. package/src/saas/internal-api/requests/models/draft.request.criteria.model.js +18 -18
  148. package/src/saas/internal-api/requests/models/draft.request.report.model.js +14 -14
  149. package/src/saas/internal-api/requests/models/edit.request.model.js +31 -31
  150. package/src/saas/internal-api/requests/models/requestListCriteriaModel.js +17 -17
  151. package/src/saas/internal-api/requests/models/tenant.request.model.js +9 -9
  152. package/src/saas/internal-api/requests/utils.js +8 -8
  153. package/src/saas/internal-api/requestsTable/api/requests.table.api.js +20 -20
  154. package/src/saas/internal-api/requestsTable/api/requests.table.service.js +14 -14
  155. package/src/saas/internal-api/requestsTable/index.js +3 -3
  156. package/src/saas/internal-api/requirements/api/requirements.api.js +51 -51
  157. package/src/saas/internal-api/requirements/api/requirements.service.js +153 -153
  158. package/src/saas/internal-api/requirements/consts/attributeTypes.json +6 -6
  159. package/src/saas/internal-api/requirements/consts/consts.js +6 -6
  160. package/src/saas/internal-api/requirements/index.js +10 -10
  161. package/src/saas/internal-api/requirements/models/create.requirement.model.js +17 -17
  162. package/src/saas/internal-api/requirements/models/policy.model.js +33 -33
  163. package/src/saas/internal-api/requirements/models/update.requirement.model.js +19 -19
  164. package/src/saas/internal-api/requirements/utils/utils.js +116 -116
  165. package/src/saas/internal-api/serviceArea/api/coordinates.api.js +12 -12
  166. package/src/saas/internal-api/serviceArea/api/coordinates.service.js +7 -7
  167. package/src/saas/internal-api/serviceArea/index.js +4 -4
  168. package/src/saas/internal-api/serviceArea/utils/utils.js +8 -8
  169. package/src/saas/internal-api/tabs/api/tabs.api.js +32 -32
  170. package/src/saas/internal-api/tabs/api/tabs.service.js +54 -54
  171. package/src/saas/internal-api/tabs/index.js +3 -3
  172. package/src/saas/internal-api/tabs/models/tabs.model.js +19 -19
  173. package/src/saas/internal-api/thread-scheduler/runner.js +39 -39
  174. package/src/saas/internal-api/uploadFiles/api/upload.file.api.js +31 -31
  175. package/src/saas/internal-api/uploadFiles/api/upload.file.service.js +42 -42
  176. package/src/saas/internal-api/uploadFiles/consts.js +12 -12
  177. package/src/saas/internal-api/uploadFiles/index.js +3 -3
  178. package/src/saas/internal-api/users/api/tenantApp/tenant.app.api.js +32 -32
  179. package/src/saas/internal-api/users/api/tenantApp/tenant.app.service.js +97 -97
  180. package/src/saas/internal-api/users/api/users.api.js +115 -115
  181. package/src/saas/internal-api/users/api/users.service.js +203 -203
  182. package/src/saas/internal-api/users/index.js +16 -16
  183. package/src/saas/internal-api/users/models/create.inner.system.user.model.js +18 -18
  184. package/src/saas/internal-api/users/models/notification.settings.model.js +12 -12
  185. package/src/saas/internal-api/users/models/tenent.user.model.js +11 -11
  186. package/src/saas/internal-api/users/models/users.model.js +41 -41
  187. package/src/saas/internal-api/users/utils/util.js +39 -39
  188. package/src/saas/internal-api/vendorProfile/api/vendor.profile.api.js +20 -20
  189. package/src/saas/internal-api/vendorProfile/api/vendor.profile.service.js +14 -14
  190. package/src/saas/internal-api/vendorProfile/index.js +3 -3
  191. package/src/saas/openapi/accounts/accounts.api.js +17 -17
  192. package/src/saas/openapi/accounts/accounts.service.js +11 -11
  193. package/src/saas/openapi/coi/coi.api.js +20 -20
  194. package/src/saas/openapi/coi/coi.service.js +13 -13
  195. package/src/saas/openapi/projects/projects.api.js +83 -83
  196. package/src/saas/openapi/projects/projects.service.js +64 -64
  197. package/src/saas/openapi/requests/index.js +7 -7
  198. package/src/saas/openapi/requests/models/invite.request.model.js +37 -37
  199. package/src/saas/openapi/requests/models/update.request.model.js +35 -35
  200. package/src/saas/openapi/requests/requests.api.js +82 -82
  201. package/src/saas/openapi/requests/requests.service.js +70 -70
  202. package/src/saas/openapi/requirements/index.js +6 -6
  203. package/src/saas/openapi/requirements/models/copy.requirement.model.js +10 -10
  204. package/src/saas/openapi/requirements/requirements.api.js +32 -32
  205. package/src/saas/openapi/requirements/requirements.service.js +37 -37
  206. package/src/saas/openapi/tabs/index.js +6 -6
  207. package/src/saas/openapi/tabs/models/create.tab.model.js +6 -6
  208. package/src/saas/openapi/tabs/tabs.api.js +27 -27
  209. package/src/saas/openapi/tabs/tabs.service.js +19 -19
  210. package/src/saas/openapi/users/user.model.js +10 -10
  211. package/src/saas/openapi/users/users.api.js +33 -33
  212. package/src/saas/openapi/users/users.service.js +41 -41
  213. package/tests/env.test.js +40 -40
  214. package/tests/validation.test.js +83 -83
@@ -1,90 +1,90 @@
1
- const { getEnv, requiredValidation, getSystemUserIdentity, addUserIdentity } = require('../../../../env');
2
- const { credentials } = getEnv();
3
-
4
- const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
5
-
6
- const authApi = require('./auth.api');
7
-
8
- const getAuthCookie = async (email, password) => {
9
- const systemUser = getSystemUserIdentity(email);
10
-
11
- if (systemUser) {
12
- return systemUser.cookie;
13
- }
14
-
15
- try {
16
- const response = await authApi.login(email, password);
17
-
18
- if (response.status !== httpResponseStatusCodes.OK) {
19
- throw Error(`Error: ${JSON.stringify(response.data)}`);
20
- }
21
-
22
- const authCookie = response.headers['set-cookie'].find(item => item.startsWith('JonesToken='));
23
-
24
- addUserIdentity(email, authCookie, response.data.id);
25
-
26
- return authCookie;
27
- } catch (error) {
28
- throw new Error(`Failed to login with email: ${email}\nError: ${error}`);
29
- }
30
- };
31
-
32
- const verifyEmail = email => {
33
- return authApi.verifyEmail(email);
34
- };
35
-
36
- const createOneTimeSession = email => {
37
- return authApi.createOneTimeSession(email);
38
- };
39
-
40
- const getHubUserCookie = async (email, oneTimeCode) => {
41
- try {
42
- const response = await authApi.verifyUser(email, oneTimeCode);
43
-
44
- if (response.status !== httpResponseStatusCodes.OK && response.status !== httpResponseStatusCodes.NO_CONTENT) {
45
- throw Error(`Error: ${JSON.stringify(response.data)}`);
46
- }
47
-
48
- const authCookie = response.headers['set-cookie'].find(item => item.startsWith('JonesToken='));
49
-
50
- return authCookie;
51
- } catch (error) {
52
- throw new Error(`Failed to login to vendor hub by email:${email}`, error);
53
- }
54
- };
55
-
56
- const getIcsCookie = () => {
57
- requiredValidation({
58
- 'credentials.superUser': credentials.superUser,
59
- 'credentials.superUserPassword': credentials.superUserPassword
60
- });
61
- return getAuthCookie(credentials.superUser, credentials.superUserPassword);
62
- };
63
-
64
- const getAuditorCookie = () => {
65
- const { auditorUser, auditorPassword } = credentials;
66
- requiredValidation({
67
- 'credentials.auditorUser': auditorUser,
68
- 'credentials.auditorPassword': auditorPassword
69
- });
70
- return getAuthCookie(auditorUser, auditorPassword);
71
- };
72
-
73
- const getOperatorCookie = () => {
74
- const { operatorUser, operatorPassword } = credentials;
75
- requiredValidation({
76
- 'credentials.operatorUser': operatorUser,
77
- 'credentials.operatorPassword': operatorPassword
78
- });
79
- return getAuthCookie(operatorUser, operatorPassword);
80
- };
81
-
82
- module.exports = {
83
- getAuthCookie,
84
- verifyEmail,
85
- createOneTimeSession,
86
- getHubUserCookie,
87
- getIcsCookie,
88
- getAuditorCookie,
89
- getOperatorCookie
90
- };
1
+ const { getEnv, requiredValidation, getSystemUserIdentity, addUserIdentity } = require('../../../../env');
2
+ const { credentials } = getEnv();
3
+
4
+ const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
5
+
6
+ const authApi = require('./auth.api');
7
+
8
+ const getAuthCookie = async (email, password) => {
9
+ const systemUser = getSystemUserIdentity(email);
10
+
11
+ if (systemUser) {
12
+ return systemUser.cookie;
13
+ }
14
+
15
+ try {
16
+ const response = await authApi.login(email, password);
17
+
18
+ if (response.status !== httpResponseStatusCodes.OK) {
19
+ throw Error(`Error: ${JSON.stringify(response.data)}`);
20
+ }
21
+
22
+ const authCookie = response.headers['set-cookie'].find(item => item.startsWith('JonesToken='));
23
+
24
+ addUserIdentity(email, authCookie, response.data.id);
25
+
26
+ return authCookie;
27
+ } catch (error) {
28
+ throw new Error(`Failed to login with email: ${email}\nError: ${error}`);
29
+ }
30
+ };
31
+
32
+ const verifyEmail = email => {
33
+ return authApi.verifyEmail(email);
34
+ };
35
+
36
+ const createOneTimeSession = email => {
37
+ return authApi.createOneTimeSession(email);
38
+ };
39
+
40
+ const getHubUserCookie = async (email, oneTimeCode) => {
41
+ try {
42
+ const response = await authApi.verifyUser(email, oneTimeCode);
43
+
44
+ if (response.status !== httpResponseStatusCodes.OK && response.status !== httpResponseStatusCodes.NO_CONTENT) {
45
+ throw Error(`Error: ${JSON.stringify(response.data)}`);
46
+ }
47
+
48
+ const authCookie = response.headers['set-cookie'].find(item => item.startsWith('JonesToken='));
49
+
50
+ return authCookie;
51
+ } catch (error) {
52
+ throw new Error(`Failed to login to vendor hub by email:${email}`, error);
53
+ }
54
+ };
55
+
56
+ const getIcsCookie = () => {
57
+ requiredValidation({
58
+ 'credentials.superUser': credentials.superUser,
59
+ 'credentials.superUserPassword': credentials.superUserPassword
60
+ });
61
+ return getAuthCookie(credentials.superUser, credentials.superUserPassword);
62
+ };
63
+
64
+ const getAuditorCookie = () => {
65
+ const { auditorUser, auditorPassword } = credentials;
66
+ requiredValidation({
67
+ 'credentials.auditorUser': auditorUser,
68
+ 'credentials.auditorPassword': auditorPassword
69
+ });
70
+ return getAuthCookie(auditorUser, auditorPassword);
71
+ };
72
+
73
+ const getOperatorCookie = () => {
74
+ const { operatorUser, operatorPassword } = credentials;
75
+ requiredValidation({
76
+ 'credentials.operatorUser': operatorUser,
77
+ 'credentials.operatorPassword': operatorPassword
78
+ });
79
+ return getAuthCookie(operatorUser, operatorPassword);
80
+ };
81
+
82
+ module.exports = {
83
+ getAuthCookie,
84
+ verifyEmail,
85
+ createOneTimeSession,
86
+ getHubUserCookie,
87
+ getIcsCookie,
88
+ getAuditorCookie,
89
+ getOperatorCookie
90
+ };
@@ -1,3 +1,3 @@
1
- const services = require('./api/auth.service');
2
-
3
- module.exports = { services };
1
+ const services = require('./api/auth.service');
2
+
3
+ module.exports = { services };
@@ -1,40 +1,40 @@
1
- const axiosFile = require('axios-file');
2
- const requests = require('../../../../common/requests/cookieAuth/requests');
3
- const internalRequests = require('../../../../common/requests/internalAuth/requests');
4
-
5
- const { backendUrl } = require('../../../../env').getEnv();
6
-
7
- const Endpoints = {
8
- uploadToS3: `${backendUrl}/_saas/coi/upload`,
9
- submitCoi: `${backendUrl}/coi/merge`,
10
- completeScan: contractorId => `${backendUrl}/saas/auditor/contractors/${contractorId}/coi/complete-scan`,
11
- getCoiPresignedUrl: fileName => `${backendUrl}/saas/coi/${fileName}`,
12
- getCoiHashes: recordId => `${backendUrl}/jcsc/record/${recordId}/coi/hashes`
13
- };
14
-
15
- const uploadToS3 = (contractorId, fileData) => {
16
- return axiosFile({
17
- url: Endpoints.uploadToS3,
18
- method: 'post',
19
- params: { contractorId },
20
- data: { fileData }
21
- });
22
- };
23
-
24
- const submitCoi = submitCoiModel => {
25
- return requests.postRequestHandler(Endpoints.submitCoi, submitCoiModel);
26
- };
27
-
28
- const completeScan = (contractorId, pdfFileName, context) => {
29
- return requests.postRequestHandler(Endpoints.completeScan(contractorId), { pdfFileName }, context);
30
- };
31
-
32
- const getCoiPreSignedUrl = (coiFileName, context) => {
33
- return requests.getRequestHandler(Endpoints.getCoiPresignedUrl(coiFileName), {}, context);
34
- };
35
-
36
- const getCoiHashes = recordId => {
37
- return internalRequests.getRequestHandler(Endpoints.getCoiHashes(recordId));
38
- };
39
-
40
- module.exports = { uploadToS3, submitCoi, completeScan, getCoiPreSignedUrl, getCoiHashes };
1
+ const axiosFile = require('axios-file');
2
+ const requests = require('../../../../common/requests/cookieAuth/requests');
3
+ const internalRequests = require('../../../../common/requests/internalAuth/requests');
4
+
5
+ const { backendUrl } = require('../../../../env').getEnv();
6
+
7
+ const Endpoints = {
8
+ uploadToS3: `${backendUrl}/_saas/coi/upload`,
9
+ submitCoi: `${backendUrl}/coi/merge`,
10
+ completeScan: contractorId => `${backendUrl}/saas/auditor/contractors/${contractorId}/coi/complete-scan`,
11
+ getCoiPresignedUrl: fileName => `${backendUrl}/saas/coi/${fileName}`,
12
+ getCoiHashes: recordId => `${backendUrl}/jcsc/record/${recordId}/coi/hashes`
13
+ };
14
+
15
+ const uploadToS3 = (contractorId, fileData) => {
16
+ return axiosFile({
17
+ url: Endpoints.uploadToS3,
18
+ method: 'post',
19
+ params: { contractorId },
20
+ data: { fileData }
21
+ });
22
+ };
23
+
24
+ const submitCoi = submitCoiModel => {
25
+ return requests.postRequestHandler(Endpoints.submitCoi, submitCoiModel);
26
+ };
27
+
28
+ const completeScan = (contractorId, pdfFileName, context) => {
29
+ return requests.postRequestHandler(Endpoints.completeScan(contractorId), { pdfFileName }, context);
30
+ };
31
+
32
+ const getCoiPreSignedUrl = (coiFileName, context) => {
33
+ return requests.getRequestHandler(Endpoints.getCoiPresignedUrl(coiFileName), {}, context);
34
+ };
35
+
36
+ const getCoiHashes = recordId => {
37
+ return internalRequests.getRequestHandler(Endpoints.getCoiHashes(recordId));
38
+ };
39
+
40
+ module.exports = { uploadToS3, submitCoi, completeScan, getCoiPreSignedUrl, getCoiHashes };
@@ -1,26 +1,26 @@
1
- const coiApi = require('./coi.api');
2
- const { SubmitCoiModel } = require('../models/submit.coi.model');
3
- const { validateType } = require('../../../../common/validations/typeValidations');
4
-
5
- const uploadToS3 = (contractorId, fileData) => {
6
- return coiApi.uploadToS3(contractorId, fileData);
7
- };
8
-
9
- const submitCoi = submitCoiModel => {
10
- validateType(submitCoiModel, SubmitCoiModel);
11
- return coiApi.submitCoi(submitCoiModel);
12
- };
13
-
14
- const completeScan = (contractorId, pdfFileName, context) => {
15
- return coiApi.completeScan(contractorId, pdfFileName, context);
16
- };
17
-
18
- const getCoiPreSignedUrl = (coiFileName, context) => {
19
- return coiApi.getCoiPreSignedUrl(coiFileName, context);
20
- };
21
-
22
- const getCoiHashes = recordId => {
23
- return coiApi.getCoiHashes(recordId);
24
- };
25
-
26
- module.exports = { uploadToS3, submitCoi, getCoiPreSignedUrl, completeScan, getCoiHashes };
1
+ const coiApi = require('./coi.api');
2
+ const { SubmitCoiModel } = require('../models/submit.coi.model');
3
+ const { validateType } = require('../../../../common/validations/typeValidations');
4
+
5
+ const uploadToS3 = (contractorId, fileData) => {
6
+ return coiApi.uploadToS3(contractorId, fileData);
7
+ };
8
+
9
+ const submitCoi = submitCoiModel => {
10
+ validateType(submitCoiModel, SubmitCoiModel);
11
+ return coiApi.submitCoi(submitCoiModel);
12
+ };
13
+
14
+ const completeScan = (contractorId, pdfFileName, context) => {
15
+ return coiApi.completeScan(contractorId, pdfFileName, context);
16
+ };
17
+
18
+ const getCoiPreSignedUrl = (coiFileName, context) => {
19
+ return coiApi.getCoiPreSignedUrl(coiFileName, context);
20
+ };
21
+
22
+ const getCoiHashes = recordId => {
23
+ return coiApi.getCoiHashes(recordId);
24
+ };
25
+
26
+ module.exports = { uploadToS3, submitCoi, getCoiPreSignedUrl, completeScan, getCoiHashes };
@@ -1,4 +1,4 @@
1
- const defaultCoiHashValue = '79c8e018c43de2d8f4c6b489dde08cc3e21abe30f3e5f3a26ee4a0bca1ca6226';
2
- const realCoiHashValue = '71de8e0b212168cb513c9f38af63f6b4f6186f950412b9e1e0ea84e1e54e47ce';
3
-
4
- module.exports = { defaultCoiHashValue, realCoiHashValue };
1
+ const defaultCoiHashValue = '79c8e018c43de2d8f4c6b489dde08cc3e21abe30f3e5f3a26ee4a0bca1ca6226';
2
+ const realCoiHashValue = '71de8e0b212168cb513c9f38af63f6b4f6186f950412b9e1e0ea84e1e54e47ce';
3
+
4
+ module.exports = { defaultCoiHashValue, realCoiHashValue };
@@ -1,5 +1,5 @@
1
- const { ICS, PM, AUDITOR, VENDOR } = require('../../../../common/consts/userTypes');
2
-
3
- const UPLOADER_TYPES = { ICS, PM, AUDITOR, VENDOR };
4
-
5
- module.exports = UPLOADER_TYPES;
1
+ const { ICS, PM, AUDITOR, VENDOR } = require('../../../../common/consts/userTypes');
2
+
3
+ const UPLOADER_TYPES = { ICS, PM, AUDITOR, VENDOR };
4
+
5
+ module.exports = UPLOADER_TYPES;
@@ -1,14 +1,14 @@
1
- const services = require('./api/coi.service');
2
-
3
- const models = {
4
- submit: require('./models/submit.coi.model')
5
- };
6
-
7
- const utils = require('./utils/utils');
8
-
9
- const consts = {
10
- UPLOADER_TYPES: require('./consts/uploaderTypes'),
11
- HASHES: require('./consts/hashes')
12
- };
13
-
14
- module.exports = { services, models, utils, consts };
1
+ const services = require('./api/coi.service');
2
+
3
+ const models = {
4
+ submit: require('./models/submit.coi.model')
5
+ };
6
+
7
+ const utils = require('./utils/utils');
8
+
9
+ const consts = {
10
+ UPLOADER_TYPES: require('./consts/uploaderTypes'),
11
+ HASHES: require('./consts/hashes')
12
+ };
13
+
14
+ module.exports = { services, models, utils, consts };
@@ -1,19 +1,9 @@
1
- class SubmitCoiModel {
2
- constructor({
3
- recordId: contractorId,
4
- fileIds,
5
- uploadedBy,
6
- uploaderEmail,
7
- recordDateModified: contractorDateModified,
8
- isContractorExist = true
9
- }) {
10
- this.contractorId = contractorId;
11
- this.chosenIds = fileIds;
12
- this.uploadedBy = uploadedBy;
13
- this.uploaderEmail = uploaderEmail;
14
- this.isContractorExist = isContractorExist;
15
- this.contractorDateModified = contractorDateModified;
16
- }
17
- }
18
-
19
- module.exports = { SubmitCoiModel };
1
+ function SubmitCoiModel(contractorId, fileIds, uploadedBy, uploaderEmail, isContractorExist = true) {
2
+ this.contractorId = contractorId;
3
+ this.chosenIds = fileIds;
4
+ this.uploadedBy = uploadedBy;
5
+ this.uploaderEmail = uploaderEmail;
6
+ this.isContractorExist = isContractorExist;
7
+ }
8
+
9
+ module.exports = { SubmitCoiModel };
@@ -1,70 +1,48 @@
1
- const fs = require('fs');
2
-
3
- const services = require('../api/coi.service');
4
- const { SubmitCoiModel } = require('../models/submit.coi.model');
5
- const { getContractorById } = require('../../contractors/api/contractors.service');
6
- const { getIcsCookie } = require('../../auth/api/auth.service');
7
-
8
- const uploadFileToStorage = (recordId, filePath) => {
9
- const fileData = fs.createReadStream(filePath);
10
- return services.uploadToS3(recordId, fileData);
11
- };
12
-
13
- const submitCoiFilesUpload = ({
14
- recordId,
15
- fileIds,
16
- uploadedBy,
17
- uploaderEmail,
18
- recordDateModified
19
- }) => {
20
- const submitCoiModel = new SubmitCoiModel({
21
- recordId,
22
- fileIds,
23
- uploadedBy,
24
- uploaderEmail,
25
- recordDateModified
26
- });
27
- return services.submitCoi(submitCoiModel);
28
- };
29
-
30
- const uploadCoi = async (
31
- recordId,
32
- filePath,
33
- uploadedBy,
34
- uploaderEmail,
35
- {
36
- markAsScaned, // Should be passed with context
37
- context
38
- } = {}
39
- ) => {
40
- if (!context) {
41
- context = await getIcsCookie();
42
- }
43
-
44
- const recordResponse = await getContractorById(recordId, context);
45
- const recordDateModified = recordResponse.data.dateModified;
46
- const uploadResponse = await uploadFileToStorage(recordId, filePath);
47
- const fileId = uploadResponse.data.fileId;
48
-
49
- const submitResponse = fileId && await submitCoiFilesUpload({
50
- recordId,
51
- fileIds: [fileId],
52
- uploadedBy,
53
- uploaderEmail,
54
- recordDateModified
55
- });
56
-
57
- const uploadedCoi = !!submitResponse.data.fileName && { id: fileId, name: submitResponse.data.fileName };
58
-
59
- if (uploadedCoi.name && markAsScaned && context) {
60
- await services.completeScan(recordId, uploadedCoi.name, context);
61
- }
62
-
63
- return uploadedCoi;
64
- };
65
-
66
- module.exports = {
67
- uploadCoi,
68
- uploadFileToStorage,
69
- submitCoiFilesUpload
70
- };
1
+ const fs = require('fs');
2
+
3
+ const services = require('../api/coi.service');
4
+ const { SubmitCoiModel } = require('../models/submit.coi.model');
5
+
6
+ const uploadFileToStorage = (recordId, filePath) => {
7
+ const fileData = fs.createReadStream(filePath);
8
+ return services.uploadToS3(recordId, fileData);
9
+ };
10
+
11
+ const submitCoiFilesUpload = (recordId, fileIds, uploaderType, uploaderEmail) => {
12
+ const submitCoiModel = new SubmitCoiModel(
13
+ recordId,
14
+ fileIds,
15
+ uploaderType,
16
+ uploaderEmail
17
+ );
18
+ return services.submitCoi(submitCoiModel);
19
+ };
20
+
21
+ const uploadCoi = async (
22
+ recordId,
23
+ filePath,
24
+ uploaderType,
25
+ uploaderEmail,
26
+ {
27
+ markAsScaned, // Should be passed with context
28
+ context
29
+ } = {}
30
+ ) => {
31
+ const uploadResponse = await uploadFileToStorage(recordId, filePath);
32
+ const fileId = uploadResponse.data.fileId;
33
+
34
+ const submitResponse = fileId && await submitCoiFilesUpload(recordId, [fileId], uploaderType, uploaderEmail);
35
+ const uploadedCoi = !!submitResponse.data.fileName && { id: fileId, name: submitResponse.data.fileName };
36
+
37
+ if (uploadedCoi.name && markAsScaned && context) {
38
+ await services.completeScan(recordId, uploadedCoi.name, context);
39
+ }
40
+
41
+ return uploadedCoi;
42
+ };
43
+
44
+ module.exports = {
45
+ uploadCoi,
46
+ uploadFileToStorage,
47
+ submitCoiFilesUpload
48
+ };