@getjones/test-infra 4.5.14 → 4.5.15

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 (245) 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 +269 -269
  5. package/src/common/consts/accountSettings.js +44 -44
  6. package/src/common/consts/activationStatuses.js +6 -6
  7. package/src/common/consts/autocomplete.js +10 -10
  8. package/src/common/consts/constantsForRecordsSortingAndFilters.js +49 -49
  9. package/src/common/consts/dashboardCharts.js +18 -18
  10. package/src/common/consts/homepage/AttentionTab.js +6 -6
  11. package/src/common/consts/homepage/sortOptions.js +19 -19
  12. package/src/common/consts/ocrStatuses.js +6 -6
  13. package/src/common/consts/projectSettings.js +21 -21
  14. package/src/common/consts/recordTypes.js +5 -5
  15. package/src/common/consts/requirementActions.js +10 -10
  16. package/src/common/consts/s3FileTypes.js +13 -13
  17. package/src/common/consts/userRoles.js +18 -18
  18. package/src/common/consts/userTypes.js +8 -8
  19. package/src/common/errorCodes.js +3 -3
  20. package/src/common/httpResponseStatusCodes.json +11 -11
  21. package/src/common/httpResponseTypes.json +2 -2
  22. package/src/common/requests/apiKeyAuth/requests.js +44 -44
  23. package/src/common/requests/cookieAuth/requests.js +40 -40
  24. package/src/common/requests/internalAuth/requests.js +48 -48
  25. package/src/common/requests/requestHandlers.js +80 -80
  26. package/src/common/utils/complianceUtil.js +113 -113
  27. package/src/common/utils/configsUtil.js +22 -22
  28. package/src/common/utils/dataTypeUtils.js +41 -41
  29. package/src/common/utils/numberUtils.js +22 -22
  30. package/src/common/utils/objectUtils.js +7 -7
  31. package/src/common/utils/timeUtils.js +177 -177
  32. package/src/common/validations/errorValidation.js +16 -16
  33. package/src/common/validations/typeValidations.js +36 -36
  34. package/src/defaults/configs/auditConfigs.js +125 -125
  35. package/src/defaults/configs/coverage.js +144 -144
  36. package/src/defaults/configs/polices.js +76 -76
  37. package/src/defaults/configs/requirement.js +32 -32
  38. package/src/defaults/index.js +6 -6
  39. package/src/env.js +57 -57
  40. package/src/factory/globalRecord/globalRecord.js +43 -43
  41. package/src/factory/index.js +8 -8
  42. package/src/factory/records/records.js +281 -281
  43. package/src/factory/users/users.js +69 -69
  44. package/src/index.js +103 -103
  45. package/src/resources/virusFile.pdf +0 -0
  46. package/src/saas/internal-api/accountDirectory/api/accountDirectory.api.js +50 -50
  47. package/src/saas/internal-api/accountDirectory/api/accountDirectory.service.js +182 -182
  48. package/src/saas/internal-api/accountDirectory/index.js +4 -4
  49. package/src/saas/internal-api/accountDirectory/models/accountDirectory.model.js +40 -40
  50. package/src/saas/internal-api/accounts/api/core/accounts.core.api.js +35 -35
  51. package/src/saas/internal-api/accounts/api/core/accounts.core.service.js +93 -93
  52. package/src/saas/internal-api/accounts/api/emailCustomization/accounts.email.customizations.api.js +29 -29
  53. package/src/saas/internal-api/accounts/api/emailCustomization/accounts.email.customizations.service.js +61 -61
  54. package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.api.js +48 -48
  55. package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.service.js +74 -74
  56. package/src/saas/internal-api/accounts/api/settings/settings.api.js +21 -21
  57. package/src/saas/internal-api/accounts/api/settings/settings.service.js +41 -41
  58. package/src/saas/internal-api/accounts/consts/consts.js +8 -8
  59. package/src/saas/internal-api/accounts/index.js +22 -22
  60. package/src/saas/internal-api/accounts/models/core/create.account.model.js +16 -16
  61. package/src/saas/internal-api/accounts/models/settings/update.settings.model.js +53 -53
  62. package/src/saas/internal-api/accounts/utils/utils.js +61 -61
  63. package/src/saas/internal-api/agreement/api/agreement.api.js +39 -39
  64. package/src/saas/internal-api/agreement/api/agreement.service.js +121 -121
  65. package/src/saas/internal-api/agreement/consts/consts.js +11 -11
  66. package/src/saas/internal-api/agreement/index.js +12 -12
  67. package/src/saas/internal-api/agreement/models/create.agreement.model.js +12 -12
  68. package/src/saas/internal-api/agreement/models/createAgreementByAuditorModel.js +11 -11
  69. package/src/saas/internal-api/agreement/models/createAgreementByPMModel.js +13 -13
  70. package/src/saas/internal-api/auditCustomerRules/api/customer.rules.api.js +43 -43
  71. package/src/saas/internal-api/auditCustomerRules/api/customer.rules.service.js +105 -105
  72. package/src/saas/internal-api/auditCustomerRules/consts/customer.rule.js +11 -11
  73. package/src/saas/internal-api/auditCustomerRules/index.js +6 -6
  74. package/src/saas/internal-api/auditCustomerRules/models/customer.rule.model.js +46 -46
  75. package/src/saas/internal-api/auditCustomerRules/utils/customer.rule.util.js +19 -19
  76. package/src/saas/internal-api/auditNotes/api/audit.notes.api.js +40 -40
  77. package/src/saas/internal-api/auditNotes/api/audit.notes.service.js +115 -115
  78. package/src/saas/internal-api/auditNotes/index.js +4 -4
  79. package/src/saas/internal-api/auditNotes/models/audit.note.model.js +30 -30
  80. package/src/saas/internal-api/auth/api/auth.api.js +27 -27
  81. package/src/saas/internal-api/auth/api/auth.service.js +90 -90
  82. package/src/saas/internal-api/auth/index.js +3 -3
  83. package/src/saas/internal-api/coi/api/coi.api.js +58 -58
  84. package/src/saas/internal-api/coi/api/coi.service.js +61 -61
  85. package/src/saas/internal-api/coi/consts/hashes.js +5 -5
  86. package/src/saas/internal-api/coi/consts/uploaderTypes.js +5 -5
  87. package/src/saas/internal-api/coi/index.js +14 -14
  88. package/src/saas/internal-api/coi/models/Combine.last.two.cois.model.js +25 -25
  89. package/src/saas/internal-api/coi/models/submit.coi.model.js +19 -19
  90. package/src/saas/internal-api/coi/utils/utils.js +117 -117
  91. package/src/saas/internal-api/compliance/api/amBestRating/am.best.rating.api.js +12 -12
  92. package/src/saas/internal-api/compliance/api/amBestRating/am.best.rating.service.js +14 -14
  93. package/src/saas/internal-api/compliance/api/audit/audit.api.js +112 -106
  94. package/src/saas/internal-api/compliance/api/audit/audit.service.js +319 -307
  95. package/src/saas/internal-api/compliance/api/convert/convert.api.js +17 -17
  96. package/src/saas/internal-api/compliance/api/convert/convert.service.js +11 -11
  97. package/src/saas/internal-api/compliance/api/coverage/coverage.api.js +33 -33
  98. package/src/saas/internal-api/compliance/api/coverage/coverage.service.js +46 -46
  99. package/src/saas/internal-api/compliance/api/overrideGap/override.gap.api.js +38 -38
  100. package/src/saas/internal-api/compliance/api/overrideGap/override.gap.service.js +189 -189
  101. package/src/saas/internal-api/compliance/consts/audit.js +113 -113
  102. package/src/saas/internal-api/compliance/index.js +36 -36
  103. package/src/saas/internal-api/compliance/models/audit/audit.model.js +96 -96
  104. package/src/saas/internal-api/compliance/models/waive/waive.model.js +49 -49
  105. package/src/saas/internal-api/compliance/utils/auditUtil.js +269 -269
  106. package/src/saas/internal-api/compliance/utils/coverageUtil.js +45 -45
  107. package/src/saas/internal-api/contractors/api/contractors.api.js +209 -209
  108. package/src/saas/internal-api/contractors/api/contractors.service.js +361 -361
  109. package/src/saas/internal-api/contractors/consts/consts.js +6 -6
  110. package/src/saas/internal-api/contractors/index.js +8 -8
  111. package/src/saas/internal-api/contractors/models/assign.requirement.model.js +10 -10
  112. package/src/saas/internal-api/contractors/models/edit.contractor.model.js +73 -73
  113. package/src/saas/internal-api/contractors/models/link.request.model.js +10 -10
  114. package/src/saas/internal-api/contractors/models/subscription.contractor.model.js +13 -13
  115. package/src/saas/internal-api/contractors/models/verification.contractor.model.js +27 -27
  116. package/src/saas/internal-api/contractors/utils.js +25 -25
  117. package/src/saas/internal-api/dashboard/api/recordList.api.js +38 -38
  118. package/src/saas/internal-api/dashboard/api/recordList.service.js +60 -60
  119. package/src/saas/internal-api/dashboard/index.js +5 -5
  120. package/src/saas/internal-api/dashboard/models/dashboard.filter.criteria.model.js +38 -38
  121. package/src/saas/internal-api/dbEmails/api/db.emails.api.js +25 -25
  122. package/src/saas/internal-api/dbEmails/api/db.emails.service.js +156 -156
  123. package/src/saas/internal-api/dbEmails/consts/consts.js +56 -56
  124. package/src/saas/internal-api/dbEmails/index.js +6 -6
  125. package/src/saas/internal-api/dbEmails/models/db.emails.model.js +22 -22
  126. package/src/saas/internal-api/dbEmails/utils/util.js +87 -87
  127. package/src/saas/internal-api/emailCustomization/api/email.customization.api.js +26 -26
  128. package/src/saas/internal-api/emailCustomization/api/email.customization.service.js +50 -50
  129. package/src/saas/internal-api/emailCustomization/index.js +3 -3
  130. package/src/saas/internal-api/globalRecord/api/global.record.api.js +95 -95
  131. package/src/saas/internal-api/globalRecord/api/global.record.service.js +112 -112
  132. package/src/saas/internal-api/globalRecord/consts.js +20 -20
  133. package/src/saas/internal-api/globalRecord/index.js +6 -6
  134. package/src/saas/internal-api/globalRecord/models/global.record.model.js +60 -60
  135. package/src/saas/internal-api/globalRecord/utils/util.js +161 -161
  136. package/src/saas/internal-api/homepageCharts/api/charts.api.js +12 -12
  137. package/src/saas/internal-api/homepageCharts/api/charts.service.js +7 -7
  138. package/src/saas/internal-api/homepageCharts/index.js +3 -3
  139. package/src/saas/internal-api/jonesNetworkTab/api/jones.network.tab.api.js +14 -14
  140. package/src/saas/internal-api/jonesNetworkTab/api/jones.network.tab.service.js +16 -16
  141. package/src/saas/internal-api/jonesNetworkTab/index.js +3 -3
  142. package/src/saas/internal-api/notificationCenter/api/notification.center.api.js +32 -32
  143. package/src/saas/internal-api/notificationCenter/api/notification.center.service.js +49 -49
  144. package/src/saas/internal-api/notificationCenter/index.js +3 -3
  145. package/src/saas/internal-api/policyFile/api/policy.file.api.js +43 -43
  146. package/src/saas/internal-api/policyFile/api/policy.file.service.js +117 -117
  147. package/src/saas/internal-api/policyFile/consts.js +21 -21
  148. package/src/saas/internal-api/policyFile/index.js +11 -11
  149. package/src/saas/internal-api/policyFile/models/create.policy.file.model.js +11 -11
  150. package/src/saas/internal-api/policyFile/models/set.publish.flag.to.policy.model.js +13 -13
  151. package/src/saas/internal-api/projects/api/core/projects.api.js +39 -39
  152. package/src/saas/internal-api/projects/api/core/projects.service.js +77 -77
  153. package/src/saas/internal-api/projects/api/settings/project.settings.api.js +18 -18
  154. package/src/saas/internal-api/projects/api/settings/project.settings.service.js +35 -35
  155. package/src/saas/internal-api/projects/consts/defaultProject.js +3 -3
  156. package/src/saas/internal-api/projects/index.js +24 -24
  157. package/src/saas/internal-api/projects/models/core/create.project.model.js +41 -41
  158. package/src/saas/internal-api/projects/models/core/update.project.model.js +47 -47
  159. package/src/saas/internal-api/projects/models/settings/update.project.settings.model.js +40 -40
  160. package/src/saas/internal-api/projects/utils/utils.js +155 -155
  161. package/src/saas/internal-api/recordHub/api/record.hub.api.js +14 -14
  162. package/src/saas/internal-api/recordHub/api/record.hub.service.js +32 -32
  163. package/src/saas/internal-api/recordHub/index.js +3 -3
  164. package/src/saas/internal-api/recordNotes/api/record.notes.api.js +38 -38
  165. package/src/saas/internal-api/recordNotes/api/record.notes.service.js +56 -56
  166. package/src/saas/internal-api/recordNotes/api/record.notes.utils.js +12 -12
  167. package/src/saas/internal-api/recordNotes/index.js +3 -3
  168. package/src/saas/internal-api/reports/api/reports.api.js +62 -62
  169. package/src/saas/internal-api/reports/api/reports.service.js +79 -79
  170. package/src/saas/internal-api/reports/consts/consts.js +74 -74
  171. package/src/saas/internal-api/reports/index.js +15 -15
  172. package/src/saas/internal-api/reports/models/report.model.js +27 -27
  173. package/src/saas/internal-api/requests/api/requests.api.js +132 -132
  174. package/src/saas/internal-api/requests/api/requests.service.js +312 -312
  175. package/src/saas/internal-api/requests/index.js +21 -21
  176. package/src/saas/internal-api/requests/models/create.request.model.js +36 -36
  177. package/src/saas/internal-api/requests/models/draft.request.criteria.model.js +18 -18
  178. package/src/saas/internal-api/requests/models/draft.request.report.model.js +14 -14
  179. package/src/saas/internal-api/requests/models/edit.request.model.js +31 -31
  180. package/src/saas/internal-api/requests/models/homepageRequestCriteriaModel.js +19 -19
  181. package/src/saas/internal-api/requests/models/requestListCriteriaModel.js +17 -17
  182. package/src/saas/internal-api/requests/models/tenant.request.model.js +9 -9
  183. package/src/saas/internal-api/requests/utils.js +16 -16
  184. package/src/saas/internal-api/requestsTable/api/requests.table.api.js +20 -20
  185. package/src/saas/internal-api/requestsTable/api/requests.table.service.js +14 -14
  186. package/src/saas/internal-api/requestsTable/index.js +3 -3
  187. package/src/saas/internal-api/requirements/api/requirements.api.js +57 -57
  188. package/src/saas/internal-api/requirements/api/requirements.service.js +184 -184
  189. package/src/saas/internal-api/requirements/consts/attributeTypes.json +8 -8
  190. package/src/saas/internal-api/requirements/consts/consts.js +6 -6
  191. package/src/saas/internal-api/requirements/index.js +10 -10
  192. package/src/saas/internal-api/requirements/models/create.requirement.model.js +17 -17
  193. package/src/saas/internal-api/requirements/models/policy.model.js +35 -35
  194. package/src/saas/internal-api/requirements/models/update.requirement.model.js +19 -19
  195. package/src/saas/internal-api/requirements/utils/utils.js +129 -129
  196. package/src/saas/internal-api/serviceArea/api/coordinates.api.js +12 -12
  197. package/src/saas/internal-api/serviceArea/api/coordinates.service.js +7 -7
  198. package/src/saas/internal-api/serviceArea/index.js +4 -4
  199. package/src/saas/internal-api/serviceArea/utils/utils.js +8 -8
  200. package/src/saas/internal-api/tabs/api/tabs.api.js +32 -32
  201. package/src/saas/internal-api/tabs/api/tabs.service.js +60 -60
  202. package/src/saas/internal-api/tabs/index.js +3 -3
  203. package/src/saas/internal-api/tabs/models/tabs.model.js +19 -19
  204. package/src/saas/internal-api/thread-scheduler/runner.js +55 -55
  205. package/src/saas/internal-api/uploadFiles/api/upload.file.api.js +43 -43
  206. package/src/saas/internal-api/uploadFiles/api/upload.file.service.js +107 -107
  207. package/src/saas/internal-api/uploadFiles/consts.js +12 -12
  208. package/src/saas/internal-api/uploadFiles/index.js +5 -5
  209. package/src/saas/internal-api/users/api/tenantApp/tenant.app.api.js +38 -38
  210. package/src/saas/internal-api/users/api/tenantApp/tenant.app.service.js +108 -108
  211. package/src/saas/internal-api/users/api/users.api.js +126 -126
  212. package/src/saas/internal-api/users/api/users.service.js +258 -258
  213. package/src/saas/internal-api/users/index.js +16 -16
  214. package/src/saas/internal-api/users/models/create.inner.system.user.model.js +18 -18
  215. package/src/saas/internal-api/users/models/notification.settings.model.js +12 -12
  216. package/src/saas/internal-api/users/models/tenent.user.model.js +11 -11
  217. package/src/saas/internal-api/users/models/users.model.js +43 -43
  218. package/src/saas/internal-api/users/utils/util.js +39 -39
  219. package/src/saas/internal-api/vendorProfile/api/vendor.profile.api.js +26 -26
  220. package/src/saas/internal-api/vendorProfile/api/vendor.profile.service.js +19 -19
  221. package/src/saas/internal-api/vendorProfile/index.js +3 -3
  222. package/src/saas/openapi/accounts/accounts.api.js +17 -17
  223. package/src/saas/openapi/accounts/accounts.service.js +11 -11
  224. package/src/saas/openapi/coi/coi.api.js +30 -30
  225. package/src/saas/openapi/coi/coi.service.js +43 -43
  226. package/src/saas/openapi/projects/projects.api.js +83 -83
  227. package/src/saas/openapi/projects/projects.service.js +64 -64
  228. package/src/saas/openapi/requests/index.js +7 -7
  229. package/src/saas/openapi/requests/models/invite.request.model.js +40 -40
  230. package/src/saas/openapi/requests/models/update.request.model.js +35 -35
  231. package/src/saas/openapi/requests/requests.api.js +93 -93
  232. package/src/saas/openapi/requests/requests.service.js +94 -94
  233. package/src/saas/openapi/requirements/index.js +6 -6
  234. package/src/saas/openapi/requirements/models/copy.requirement.model.js +10 -10
  235. package/src/saas/openapi/requirements/requirements.api.js +41 -41
  236. package/src/saas/openapi/requirements/requirements.service.js +49 -49
  237. package/src/saas/openapi/tabs/index.js +6 -6
  238. package/src/saas/openapi/tabs/models/create.tab.model.js +6 -6
  239. package/src/saas/openapi/tabs/tabs.api.js +27 -27
  240. package/src/saas/openapi/tabs/tabs.service.js +19 -19
  241. package/src/saas/openapi/users/user.model.js +10 -10
  242. package/src/saas/openapi/users/users.api.js +33 -33
  243. package/src/saas/openapi/users/users.service.js +51 -51
  244. package/tests/env.test.js +40 -40
  245. package/tests/validation.test.js +83 -83
@@ -1,115 +1,115 @@
1
- const auditApi = require('./audit.notes.api');
2
- const { AuditNoteModel } = require('../models/audit.note.model');
3
- const { validateType } = require('../../../../common/validations/typeValidations');
4
- const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
5
-
6
- const createAuditNote = async (auditNoteModel, context) => {
7
- validateType(auditNoteModel, AuditNoteModel);
8
- const response = await auditApi.createAuditNote(auditNoteModel, context);
9
-
10
- if (response.status !== httpResponseStatusCodes.NO_CONTENT) {
11
- throw Error(`Failed to create audit note - Response: ${response.status}`);
12
- }
13
-
14
- return response;
15
- };
16
-
17
- const getAuditNotesByProjectId = async (projectId, context) => {
18
- const response = await auditApi.getAuditNotesByProjectId(projectId, context);
19
-
20
- if (response.status !== httpResponseStatusCodes.OK) {
21
- throw Error(`Failed to get audit notes by project id: ${projectId} - Response: ${response.status}`);
22
- }
23
-
24
- return response.data;
25
- };
26
-
27
- const getAuditNotesByRecordId = async (recordId, context) => {
28
- const response = await auditApi.getAuditNotesByRecordId(recordId, context);
29
-
30
- if (response.status !== httpResponseStatusCodes.OK) {
31
- throw Error(`Failed to get audit notes by record id: ${recordId} - Response: ${response.status}`);
32
- }
33
-
34
- return response.data;
35
- };
36
-
37
- const updateAuditNote = async (auditNoteModel, context) => {
38
- validateType(auditNoteModel, AuditNoteModel);
39
- const response = await auditApi.updateAuditNote(auditNoteModel, context);
40
-
41
- if (response.status !== httpResponseStatusCodes.NO_CONTENT) {
42
- throw Error(`Failed to update audit note - Response: ${response.status}`);
43
- }
44
-
45
- return response;
46
- };
47
-
48
- const deleteAuditNoteById = (noteId, context) => {
49
- return auditApi.deleteAuditNoteById(noteId, context);
50
- };
51
-
52
- const deleteAllAuditNotesInProject = async (projectId, context) => {
53
- const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
54
-
55
- for (const auditNotesType in existingAuditNotes) {
56
- if (existingAuditNotes[auditNotesType] && existingAuditNotes[auditNotesType].length) {
57
- await deleteAuditNotesByIds(existingAuditNotes[auditNotesType], context);
58
- }
59
- }
60
- };
61
-
62
- const deleteAllAccountLevelNotes = async (projectId, context) => { //does not delete all notes in account, only account level notes!
63
- const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
64
- const accountLevelNotesArr = existingAuditNotes.Account;
65
-
66
- if (accountLevelNotesArr.length) {
67
- await deleteAuditNotesByIds(accountLevelNotesArr, context);
68
- }
69
- };
70
-
71
- const deleteAllProjectLevelNotes = async (projectId, context) => { //does not delete all notes in project, only project level notes!
72
- const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
73
- const projectLevelNotesArr = existingAuditNotes.Project;
74
-
75
- if (projectLevelNotesArr.length) {
76
- await deleteAuditNotesByIds(projectLevelNotesArr, context);
77
- }
78
- };
79
-
80
- const deleteAllRequirementLevelNotes = async (projectId, context) => {
81
- const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
82
- const requirementLevelNotesArr = existingAuditNotes.Requirement;
83
-
84
- if (requirementLevelNotesArr.length) {
85
- await deleteAuditNotesByIds(requirementLevelNotesArr, context);
86
- }
87
- };
88
-
89
- module.exports = {
90
- createAuditNote,
91
- getAuditNotesByProjectId,
92
- getAuditNotesByRecordId,
93
- updateAuditNote,
94
- deleteAuditNoteById,
95
- deleteAllAccountLevelNotes,
96
- deleteAllProjectLevelNotes,
97
- deleteAllRequirementLevelNotes,
98
- deleteAllAuditNotesInProject
99
- };
100
-
101
- async function deleteAuditNotesByIds(notes, context) {
102
- const failed = [];
103
- for (const note of notes) {
104
- const deleteNoteResponse = await deleteAuditNoteById(note.id, context);
105
-
106
- if (deleteNoteResponse.status !== httpResponseStatusCodes.NO_CONTENT) { //see what EP of delete is returning when all goes well - maybe need to change !status
107
- console.error('Failed to delete note: ', note.id);
108
- failed.push(deleteNoteResponse);
109
- }
110
- }
111
-
112
- if (failed.length) {
113
- throw Error(`Failed to delete ${failed.length} of ${notes.length} notes in account. Failed with status: ${ failed[0].status }`);
114
- }
115
- }
1
+ const auditApi = require('./audit.notes.api');
2
+ const { AuditNoteModel } = require('../models/audit.note.model');
3
+ const { validateType } = require('../../../../common/validations/typeValidations');
4
+ const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
5
+
6
+ const createAuditNote = async (auditNoteModel, context) => {
7
+ validateType(auditNoteModel, AuditNoteModel);
8
+ const response = await auditApi.createAuditNote(auditNoteModel, context);
9
+
10
+ if (response.status !== httpResponseStatusCodes.NO_CONTENT) {
11
+ throw Error(`Failed to create audit note - Response: ${response.status}`);
12
+ }
13
+
14
+ return response;
15
+ };
16
+
17
+ const getAuditNotesByProjectId = async (projectId, context) => {
18
+ const response = await auditApi.getAuditNotesByProjectId(projectId, context);
19
+
20
+ if (response.status !== httpResponseStatusCodes.OK) {
21
+ throw Error(`Failed to get audit notes by project id: ${projectId} - Response: ${response.status}`);
22
+ }
23
+
24
+ return response.data;
25
+ };
26
+
27
+ const getAuditNotesByRecordId = async (recordId, context) => {
28
+ const response = await auditApi.getAuditNotesByRecordId(recordId, context);
29
+
30
+ if (response.status !== httpResponseStatusCodes.OK) {
31
+ throw Error(`Failed to get audit notes by record id: ${recordId} - Response: ${response.status}`);
32
+ }
33
+
34
+ return response.data;
35
+ };
36
+
37
+ const updateAuditNote = async (auditNoteModel, context) => {
38
+ validateType(auditNoteModel, AuditNoteModel);
39
+ const response = await auditApi.updateAuditNote(auditNoteModel, context);
40
+
41
+ if (response.status !== httpResponseStatusCodes.NO_CONTENT) {
42
+ throw Error(`Failed to update audit note - Response: ${response.status}`);
43
+ }
44
+
45
+ return response;
46
+ };
47
+
48
+ const deleteAuditNoteById = (noteId, context) => {
49
+ return auditApi.deleteAuditNoteById(noteId, context);
50
+ };
51
+
52
+ const deleteAllAuditNotesInProject = async (projectId, context) => {
53
+ const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
54
+
55
+ for (const auditNotesType in existingAuditNotes) {
56
+ if (existingAuditNotes[auditNotesType] && existingAuditNotes[auditNotesType].length) {
57
+ await deleteAuditNotesByIds(existingAuditNotes[auditNotesType], context);
58
+ }
59
+ }
60
+ };
61
+
62
+ const deleteAllAccountLevelNotes = async (projectId, context) => { //does not delete all notes in account, only account level notes!
63
+ const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
64
+ const accountLevelNotesArr = existingAuditNotes.Account;
65
+
66
+ if (accountLevelNotesArr.length) {
67
+ await deleteAuditNotesByIds(accountLevelNotesArr, context);
68
+ }
69
+ };
70
+
71
+ const deleteAllProjectLevelNotes = async (projectId, context) => { //does not delete all notes in project, only project level notes!
72
+ const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
73
+ const projectLevelNotesArr = existingAuditNotes.Project;
74
+
75
+ if (projectLevelNotesArr.length) {
76
+ await deleteAuditNotesByIds(projectLevelNotesArr, context);
77
+ }
78
+ };
79
+
80
+ const deleteAllRequirementLevelNotes = async (projectId, context) => {
81
+ const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
82
+ const requirementLevelNotesArr = existingAuditNotes.Requirement;
83
+
84
+ if (requirementLevelNotesArr.length) {
85
+ await deleteAuditNotesByIds(requirementLevelNotesArr, context);
86
+ }
87
+ };
88
+
89
+ module.exports = {
90
+ createAuditNote,
91
+ getAuditNotesByProjectId,
92
+ getAuditNotesByRecordId,
93
+ updateAuditNote,
94
+ deleteAuditNoteById,
95
+ deleteAllAccountLevelNotes,
96
+ deleteAllProjectLevelNotes,
97
+ deleteAllRequirementLevelNotes,
98
+ deleteAllAuditNotesInProject
99
+ };
100
+
101
+ async function deleteAuditNotesByIds(notes, context) {
102
+ const failed = [];
103
+ for (const note of notes) {
104
+ const deleteNoteResponse = await deleteAuditNoteById(note.id, context);
105
+
106
+ if (deleteNoteResponse.status !== httpResponseStatusCodes.NO_CONTENT) { //see what EP of delete is returning when all goes well - maybe need to change !status
107
+ console.error('Failed to delete note: ', note.id);
108
+ failed.push(deleteNoteResponse);
109
+ }
110
+ }
111
+
112
+ if (failed.length) {
113
+ throw Error(`Failed to delete ${failed.length} of ${notes.length} notes in account. Failed with status: ${ failed[0].status }`);
114
+ }
115
+ }
@@ -1,4 +1,4 @@
1
- const services = require('./api/audit.notes.service');
2
- const models = require('./models/audit.note.model');
3
-
4
- module.exports = { services, models };
1
+ const services = require('./api/audit.notes.service');
2
+ const models = require('./models/audit.note.model');
3
+
4
+ module.exports = { services, models };
@@ -1,30 +1,30 @@
1
- class AuditNoteModel {
2
- constructor(noteEntityType, entityId, note, { id, gapQuote, requirementName } = {}) {
3
- validateNoteEntityType(noteEntityType);
4
-
5
- this.noteEntityType = noteEntityType;
6
- this.entityId = entityId;
7
- this.note = note;
8
-
9
- this.id = id;
10
- this.gapQuote = gapQuote;
11
- this.requirementName = requirementName;
12
- }
13
- }
14
-
15
- const auditNoteTypes = {
16
- account: 'Account',
17
- project: 'Project',
18
- requirement: 'Requirement'
19
- };
20
-
21
- module.exports = {
22
- AuditNoteModel,
23
- auditNoteTypes
24
- };
25
-
26
- const validateNoteEntityType = noteEntityType => {
27
- if (![auditNoteTypes.account, auditNoteTypes.project, auditNoteTypes.requirement].includes(noteEntityType)) {
28
- throw new Error(`Invalid noteEntityType: ${noteEntityType}`);
29
- }
30
- };
1
+ class AuditNoteModel {
2
+ constructor(noteEntityType, entityId, note, { id, gapQuote, requirementName } = {}) {
3
+ validateNoteEntityType(noteEntityType);
4
+
5
+ this.noteEntityType = noteEntityType;
6
+ this.entityId = entityId;
7
+ this.note = note;
8
+
9
+ this.id = id;
10
+ this.gapQuote = gapQuote;
11
+ this.requirementName = requirementName;
12
+ }
13
+ }
14
+
15
+ const auditNoteTypes = {
16
+ account: 'Account',
17
+ project: 'Project',
18
+ requirement: 'Requirement'
19
+ };
20
+
21
+ module.exports = {
22
+ AuditNoteModel,
23
+ auditNoteTypes
24
+ };
25
+
26
+ const validateNoteEntityType = noteEntityType => {
27
+ if (![auditNoteTypes.account, auditNoteTypes.project, auditNoteTypes.requirement].includes(noteEntityType)) {
28
+ throw new Error(`Invalid noteEntityType: ${noteEntityType}`);
29
+ }
30
+ };
@@ -1,27 +1,27 @@
1
- const requests = require('../../../../common/requests/cookieAuth/requests');
2
- const { backendUrl } = require('../../../../env').getEnv();
3
-
4
- const Endpoints = {
5
- login: `${backendUrl}/logincontroller`,
6
- verifyEmail: `${backendUrl}/verify/email`,
7
- createOneTimeSession: `${backendUrl}/vendor-app/one-time-session/create`,
8
- verifyUser: `${backendUrl}/vendor-app/one-time-session/verify-user`
9
- };
10
-
11
- const login = (email, password) => {
12
- return requests.postRequestHandler(Endpoints.login, { email, password });
13
- };
14
-
15
- const verifyEmail = email => {
16
- return requests.postRequestHandler(Endpoints.verifyEmail, { email });
17
- };
18
-
19
- const createOneTimeSession = email => {
20
- return requests.postRequestHandler(Endpoints.createOneTimeSession, { email });
21
- };
22
-
23
- const verifyUser = (email, oneTimeCode) => {
24
- return requests.postRequestHandler(Endpoints.verifyUser, { email, oneTimeCode });
25
- };
26
-
27
- module.exports = { login, verifyEmail, createOneTimeSession, verifyUser };
1
+ const requests = require('../../../../common/requests/cookieAuth/requests');
2
+ const { backendUrl } = require('../../../../env').getEnv();
3
+
4
+ const Endpoints = {
5
+ login: `${backendUrl}/logincontroller`,
6
+ verifyEmail: `${backendUrl}/verify/email`,
7
+ createOneTimeSession: `${backendUrl}/vendor-app/one-time-session/create`,
8
+ verifyUser: `${backendUrl}/vendor-app/one-time-session/verify-user`
9
+ };
10
+
11
+ const login = (email, password) => {
12
+ return requests.postRequestHandler(Endpoints.login, { email, password });
13
+ };
14
+
15
+ const verifyEmail = email => {
16
+ return requests.postRequestHandler(Endpoints.verifyEmail, { email });
17
+ };
18
+
19
+ const createOneTimeSession = email => {
20
+ return requests.postRequestHandler(Endpoints.createOneTimeSession, { email });
21
+ };
22
+
23
+ const verifyUser = (email, oneTimeCode) => {
24
+ return requests.postRequestHandler(Endpoints.verifyUser, { email, oneTimeCode });
25
+ };
26
+
27
+ module.exports = { login, verifyEmail, createOneTimeSession, verifyUser };
@@ -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,58 +1,58 @@
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
- getCoiPresignedUrlBeforeMerge: fileId => `${backendUrl}/saas/coi-file-before-merge/presigned-url/${fileId}`,
13
- getCoiHashes: recordId => `${backendUrl}/jcsc/record/${recordId}/coi/hashes`,
14
- combineLastTwoCOIs: `${backendUrl}/saas/auditor/record/coi/merge-last-two`
15
- };
16
-
17
- const uploadToS3 = (contractorId, fileData) => {
18
- return axiosFile({
19
- url: Endpoints.uploadToS3,
20
- method: 'post',
21
- params: { contractorId },
22
- data: { fileData }
23
- });
24
- };
25
-
26
- const submitCoi = submitCoiModel => {
27
- return requests.postRequestHandler(Endpoints.submitCoi, submitCoiModel);
28
- };
29
-
30
- const completeScan = (contractorId, pdfFileName, context) => {
31
- return requests.postRequestHandler(Endpoints.completeScan(contractorId), { pdfFileName }, context);
32
- };
33
-
34
- const getCoiPreSignedUrl = (coiFileName, context) => {
35
- return requests.getRequestHandler(Endpoints.getCoiPresignedUrl(coiFileName), {}, context);
36
- };
37
-
38
- const getCoiPresignedUrlBeforeMerge = (fileId, context) => {
39
- return requests.getRequestHandler(Endpoints.getCoiPresignedUrlBeforeMerge(fileId), {}, context);
40
- };
41
-
42
- const getCoiHashes = recordId => {
43
- return internalRequests.getRequestHandler(Endpoints.getCoiHashes(recordId));
44
- };
45
-
46
- const combineLastTwoCOIs = (combineLastTwoCOIsModel, context) => {
47
- return requests.postRequestHandler(Endpoints.combineLastTwoCOIs, combineLastTwoCOIsModel, context);
48
- };
49
-
50
- module.exports = {
51
- uploadToS3,
52
- submitCoi,
53
- completeScan,
54
- getCoiPreSignedUrl,
55
- getCoiPresignedUrlBeforeMerge,
56
- getCoiHashes,
57
- combineLastTwoCOIs
58
- };
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
+ getCoiPresignedUrlBeforeMerge: fileId => `${backendUrl}/saas/coi-file-before-merge/presigned-url/${fileId}`,
13
+ getCoiHashes: recordId => `${backendUrl}/jcsc/record/${recordId}/coi/hashes`,
14
+ combineLastTwoCOIs: `${backendUrl}/saas/auditor/record/coi/merge-last-two`
15
+ };
16
+
17
+ const uploadToS3 = (contractorId, fileData) => {
18
+ return axiosFile({
19
+ url: Endpoints.uploadToS3,
20
+ method: 'post',
21
+ params: { contractorId },
22
+ data: { fileData }
23
+ });
24
+ };
25
+
26
+ const submitCoi = submitCoiModel => {
27
+ return requests.postRequestHandler(Endpoints.submitCoi, submitCoiModel);
28
+ };
29
+
30
+ const completeScan = (contractorId, pdfFileName, context) => {
31
+ return requests.postRequestHandler(Endpoints.completeScan(contractorId), { pdfFileName }, context);
32
+ };
33
+
34
+ const getCoiPreSignedUrl = (coiFileName, context) => {
35
+ return requests.getRequestHandler(Endpoints.getCoiPresignedUrl(coiFileName), {}, context);
36
+ };
37
+
38
+ const getCoiPresignedUrlBeforeMerge = (fileId, context) => {
39
+ return requests.getRequestHandler(Endpoints.getCoiPresignedUrlBeforeMerge(fileId), {}, context);
40
+ };
41
+
42
+ const getCoiHashes = recordId => {
43
+ return internalRequests.getRequestHandler(Endpoints.getCoiHashes(recordId));
44
+ };
45
+
46
+ const combineLastTwoCOIs = (combineLastTwoCOIsModel, context) => {
47
+ return requests.postRequestHandler(Endpoints.combineLastTwoCOIs, combineLastTwoCOIsModel, context);
48
+ };
49
+
50
+ module.exports = {
51
+ uploadToS3,
52
+ submitCoi,
53
+ completeScan,
54
+ getCoiPreSignedUrl,
55
+ getCoiPresignedUrlBeforeMerge,
56
+ getCoiHashes,
57
+ combineLastTwoCOIs
58
+ };