@getjones/test-infra 5.2.13 → 5.2.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 (296) hide show
  1. package/eslint.config.mjs +156 -156
  2. package/package.json +43 -43
  3. package/src/common/commonFlows/auth/auth.js +95 -95
  4. package/src/common/commonFlows/index.js +5 -5
  5. package/src/common/commonFlows/records/records.js +452 -500
  6. package/src/common/commonFlows/users/users.js +15 -15
  7. package/src/common/consts/accountSettings.js +112 -112
  8. package/src/common/consts/activationStatuses.js +6 -6
  9. package/src/common/consts/analysisStatuses.js +7 -7
  10. package/src/common/consts/autocomplete.js +10 -10
  11. package/src/common/consts/constantsForRecordsSortingAndFilters.js +49 -49
  12. package/src/common/consts/dashboardCharts.js +18 -18
  13. package/src/common/consts/homepage/AttentionTab.js +6 -6
  14. package/src/common/consts/homepage/sortOptions.js +19 -19
  15. package/src/common/consts/projectSettings.js +28 -35
  16. package/src/common/consts/recordTypes.js +5 -5
  17. package/src/common/consts/requirementActions.js +10 -10
  18. package/src/common/consts/s3FileTypes.js +12 -12
  19. package/src/common/consts/userRoles.js +21 -21
  20. package/src/common/consts/userTypes.js +16 -16
  21. package/src/common/errorCodes.js +13 -13
  22. package/src/common/httpResponseStatusCodes.json +19 -19
  23. package/src/common/httpResponseTypes.json +2 -2
  24. package/src/common/requests/apiKeyAuth/requests.js +45 -45
  25. package/src/common/requests/cookieAuth/requests.js +40 -40
  26. package/src/common/requests/internalAuth/requests.js +48 -48
  27. package/src/common/requests/requestHandlers.js +112 -112
  28. package/src/common/utils/arrayUtils.js +19 -19
  29. package/src/common/utils/complianceUtil.js +114 -114
  30. package/src/common/utils/configsUtil.js +22 -22
  31. package/src/common/utils/dataTypeUtils.js +41 -41
  32. package/src/common/utils/numberUtils.js +22 -22
  33. package/src/common/utils/objectUtils.js +102 -102
  34. package/src/common/utils/timeUtils.js +202 -195
  35. package/src/common/validations/typeValidations.js +36 -36
  36. package/src/defaults/configs/attributes.js +170 -170
  37. package/src/defaults/configs/auditConfigs.js +129 -129
  38. package/src/defaults/configs/coverage.js +144 -144
  39. package/src/defaults/configs/polices.js +28 -28
  40. package/src/defaults/configs/requirement.js +218 -218
  41. package/src/defaults/index.js +7 -7
  42. package/src/env.js +58 -58
  43. package/src/factory/globalRecord/globalRecord.js +43 -43
  44. package/src/factory/index.js +8 -8
  45. package/src/factory/records/records.js +295 -295
  46. package/src/factory/users/users.js +70 -70
  47. package/src/index.js +118 -118
  48. package/src/reporters/mochaReporter.js +273 -273
  49. package/src/saas/internal-api/accountDirectory/api/accountDirectory.api.js +152 -152
  50. package/src/saas/internal-api/accountDirectory/api/accountDirectory.service.js +576 -576
  51. package/src/saas/internal-api/accountDirectory/consts/accountDirectory.consts.js +75 -75
  52. package/src/saas/internal-api/accountDirectory/index.js +5 -5
  53. package/src/saas/internal-api/accountDirectory/models/accountDirectory.models.js +172 -172
  54. package/src/saas/internal-api/accounts/api/core/accounts.core.api.js +54 -54
  55. package/src/saas/internal-api/accounts/api/core/accounts.core.service.js +114 -114
  56. package/src/saas/internal-api/accounts/api/emailCustomization/accounts.email.customizations.api.js +29 -29
  57. package/src/saas/internal-api/accounts/api/emailCustomization/accounts.email.customizations.service.js +60 -60
  58. package/src/saas/internal-api/accounts/api/emailCustomization/consts.js +8 -8
  59. package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.api.js +54 -54
  60. package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.service.js +67 -67
  61. package/src/saas/internal-api/accounts/api/settings/settings.api.js +21 -21
  62. package/src/saas/internal-api/accounts/api/settings/settings.service.js +58 -58
  63. package/src/saas/internal-api/accounts/consts/consts.js +8 -8
  64. package/src/saas/internal-api/accounts/index.js +22 -22
  65. package/src/saas/internal-api/accounts/models/core/create.account.model.js +16 -16
  66. package/src/saas/internal-api/accounts/models/settings/update.settings.model.js +110 -110
  67. package/src/saas/internal-api/accounts/utils/utils.js +60 -60
  68. package/src/saas/internal-api/agreement/api/agreement.api.js +39 -39
  69. package/src/saas/internal-api/agreement/api/agreement.service.js +121 -121
  70. package/src/saas/internal-api/agreement/consts/consts.js +11 -11
  71. package/src/saas/internal-api/agreement/index.js +12 -12
  72. package/src/saas/internal-api/agreement/models/create.agreement.model.js +12 -12
  73. package/src/saas/internal-api/agreement/models/createAgreementByAuditorModel.js +11 -11
  74. package/src/saas/internal-api/agreement/models/createAgreementByPMModel.js +13 -13
  75. package/src/saas/internal-api/auditCustomerRules/api/customer.rules.api.js +49 -49
  76. package/src/saas/internal-api/auditCustomerRules/api/customer.rules.service.js +121 -121
  77. package/src/saas/internal-api/auditCustomerRules/consts/customer.rule.js +40 -40
  78. package/src/saas/internal-api/auditCustomerRules/index.js +7 -7
  79. package/src/saas/internal-api/auditCustomerRules/models/customer.rule.model.js +55 -55
  80. package/src/saas/internal-api/auditCustomerRules/utils/customer.rule.util.js +70 -70
  81. package/src/saas/internal-api/auditNotes/api/audit.notes.api.js +40 -40
  82. package/src/saas/internal-api/auditNotes/api/audit.notes.service.js +116 -116
  83. package/src/saas/internal-api/auditNotes/index.js +4 -4
  84. package/src/saas/internal-api/auditNotes/models/audit.note.model.js +32 -32
  85. package/src/saas/internal-api/auditorComments/api/auditor.comments.api.js +20 -20
  86. package/src/saas/internal-api/auditorComments/api/auditor.comments.service.js +27 -27
  87. package/src/saas/internal-api/auditorComments/consts/auditor.comment.js +16 -16
  88. package/src/saas/internal-api/auditorComments/index.js +5 -5
  89. package/src/saas/internal-api/auditorComments/models/auditor.comment.model.js +40 -40
  90. package/src/saas/internal-api/auth/api/auth.api.js +78 -78
  91. package/src/saas/internal-api/auth/api/auth.service.js +217 -217
  92. package/src/saas/internal-api/auth/index.js +3 -3
  93. package/src/saas/internal-api/certificial/api/certificial.api.js +15 -15
  94. package/src/saas/internal-api/certificial/api/certificial.service.js +24 -24
  95. package/src/saas/internal-api/certificial/consts.js +8 -8
  96. package/src/saas/internal-api/certificial/index.js +4 -4
  97. package/src/saas/internal-api/coi/api/coi.api.js +76 -76
  98. package/src/saas/internal-api/coi/api/coi.service.js +104 -104
  99. package/src/saas/internal-api/coi/consts/coiUploaderTypes.js +9 -0
  100. package/src/saas/internal-api/coi/consts/duplicateHandling.js +7 -7
  101. package/src/saas/internal-api/coi/consts/hashes.js +5 -5
  102. package/src/saas/internal-api/coi/consts/uploaderTypes.js +3 -3
  103. package/src/saas/internal-api/coi/index.js +1 -0
  104. package/src/saas/internal-api/coi/models/Combine.last.two.cois.model.js +25 -25
  105. package/src/saas/internal-api/coi/models/submit.coi.batch.model.js +23 -23
  106. package/src/saas/internal-api/coi/models/submit.coi.model.js +23 -23
  107. package/src/saas/internal-api/coi/utils/utils.js +11 -10
  108. package/src/saas/internal-api/compliance/api/amBestRating/am.best.rating.api.js +12 -12
  109. package/src/saas/internal-api/compliance/api/amBestRating/am.best.rating.service.js +14 -14
  110. package/src/saas/internal-api/compliance/api/audit/aiAudit/aiAudit.api.js +63 -63
  111. package/src/saas/internal-api/compliance/api/audit/aiAudit/aiAudit.service.js +99 -99
  112. package/src/saas/internal-api/compliance/api/audit/audit.api.js +124 -124
  113. package/src/saas/internal-api/compliance/api/audit/audit.service.js +390 -390
  114. package/src/saas/internal-api/compliance/api/complianceSnapshot/compliance.snapshot.api.js +32 -32
  115. package/src/saas/internal-api/compliance/api/complianceSnapshot/compliance.snapshot.service.js +73 -73
  116. package/src/saas/internal-api/compliance/api/convert/convert.api.js +12 -12
  117. package/src/saas/internal-api/compliance/api/convert/convert.service.js +7 -7
  118. package/src/saas/internal-api/compliance/api/coverage/coverage.api.js +33 -33
  119. package/src/saas/internal-api/compliance/api/coverage/coverage.service.js +46 -46
  120. package/src/saas/internal-api/compliance/api/overrideGap/override.gap.api.js +86 -109
  121. package/src/saas/internal-api/compliance/api/overrideGap/override.gap.service.js +300 -391
  122. package/src/saas/internal-api/compliance/consts/audit.js +130 -130
  123. package/src/saas/internal-api/compliance/consts/overrideGapRequest/override.gap.request.js +7 -14
  124. package/src/saas/internal-api/compliance/index.js +41 -41
  125. package/src/saas/internal-api/compliance/models/audit/audit.model.js +109 -109
  126. package/src/saas/internal-api/compliance/models/overrideGapRequest/override.gap.request.model.js +16 -31
  127. package/src/saas/internal-api/compliance/models/waive/waive.model.js +112 -112
  128. package/src/saas/internal-api/compliance/utils/auditUtil.js +308 -308
  129. package/src/saas/internal-api/compliance/utils/coverageUtil.js +45 -45
  130. package/src/saas/internal-api/contractors/api/contractors.api.js +251 -251
  131. package/src/saas/internal-api/contractors/api/contractors.service.js +482 -482
  132. package/src/saas/internal-api/contractors/consts/consts.js +6 -6
  133. package/src/saas/internal-api/contractors/index.js +8 -8
  134. package/src/saas/internal-api/contractors/models/assign.requirement.model.js +11 -11
  135. package/src/saas/internal-api/contractors/models/edit.contractor.model.js +73 -73
  136. package/src/saas/internal-api/contractors/models/link.request.model.js +10 -10
  137. package/src/saas/internal-api/contractors/models/verification.contractor.model.js +29 -29
  138. package/src/saas/internal-api/contractors/utils.js +25 -25
  139. package/src/saas/internal-api/customTags/api/customTags.api.js +47 -47
  140. package/src/saas/internal-api/customTags/api/customTags.service.js +96 -96
  141. package/src/saas/internal-api/customTags/index.js +4 -4
  142. package/src/saas/internal-api/customTags/models/customTagsModels.js +17 -17
  143. package/src/saas/internal-api/dashboard/api/recordList.api.js +38 -38
  144. package/src/saas/internal-api/dashboard/api/recordList.service.js +60 -60
  145. package/src/saas/internal-api/dashboard/index.js +5 -5
  146. package/src/saas/internal-api/dashboard/models/dashboard.filter.criteria.model.js +38 -38
  147. package/src/saas/internal-api/dbEmails/api/db.emails.api.js +25 -25
  148. package/src/saas/internal-api/dbEmails/api/db.emails.service.js +209 -209
  149. package/src/saas/internal-api/dbEmails/consts/consts.js +66 -69
  150. package/src/saas/internal-api/dbEmails/index.js +6 -6
  151. package/src/saas/internal-api/dbEmails/models/db.emails.model.js +22 -22
  152. package/src/saas/internal-api/dbEmails/utils/util.js +82 -82
  153. package/src/saas/internal-api/emailCustomization/api/email.customization.api.js +26 -26
  154. package/src/saas/internal-api/emailCustomization/api/email.customization.service.js +50 -50
  155. package/src/saas/internal-api/emailCustomization/index.js +3 -3
  156. package/src/saas/internal-api/fileScan/api/file.scan.api.js +14 -14
  157. package/src/saas/internal-api/fileScan/api/file.scan.service.js +35 -35
  158. package/src/saas/internal-api/fileScan/index.js +3 -3
  159. package/src/saas/internal-api/fileScan/models/update.scan.status.model.js +13 -13
  160. package/src/saas/internal-api/globalRecord/api/global.record.api.js +95 -95
  161. package/src/saas/internal-api/globalRecord/api/global.record.service.js +112 -112
  162. package/src/saas/internal-api/globalRecord/consts.js +20 -20
  163. package/src/saas/internal-api/globalRecord/index.js +6 -6
  164. package/src/saas/internal-api/globalRecord/models/global.record.model.js +60 -60
  165. package/src/saas/internal-api/globalRecord/utils/util.js +161 -161
  166. package/src/saas/internal-api/homepageCharts/api/charts.api.js +12 -12
  167. package/src/saas/internal-api/homepageCharts/api/charts.service.js +7 -7
  168. package/src/saas/internal-api/homepageCharts/index.js +3 -3
  169. package/src/saas/internal-api/notificationCenter/api/notification.center.api.js +32 -32
  170. package/src/saas/internal-api/notificationCenter/api/notification.center.service.js +49 -49
  171. package/src/saas/internal-api/notificationCenter/consts.js +9 -12
  172. package/src/saas/internal-api/notificationCenter/index.js +4 -4
  173. package/src/saas/internal-api/outlook/api/outlook.api.js +14 -14
  174. package/src/saas/internal-api/outlook/api/outlook.service.js +14 -14
  175. package/src/saas/internal-api/outlook/index.js +3 -3
  176. package/src/saas/internal-api/policyFile/api/policy.file.api.js +43 -43
  177. package/src/saas/internal-api/policyFile/api/policy.file.service.js +117 -117
  178. package/src/saas/internal-api/policyFile/consts.js +21 -21
  179. package/src/saas/internal-api/policyFile/index.js +11 -11
  180. package/src/saas/internal-api/policyFile/models/create.policy.file.model.js +11 -11
  181. package/src/saas/internal-api/policyFile/models/set.publish.flag.to.policy.model.js +13 -13
  182. package/src/saas/internal-api/projects/api/core/projects.api.js +39 -39
  183. package/src/saas/internal-api/projects/api/core/projects.service.js +77 -77
  184. package/src/saas/internal-api/projects/api/settings/project.settings.api.js +18 -18
  185. package/src/saas/internal-api/projects/api/settings/project.settings.service.js +35 -35
  186. package/src/saas/internal-api/projects/consts/defaultProject.js +3 -3
  187. package/src/saas/internal-api/projects/index.js +24 -24
  188. package/src/saas/internal-api/projects/models/core/create.project.model.js +41 -41
  189. package/src/saas/internal-api/projects/models/core/update.project.model.js +47 -47
  190. package/src/saas/internal-api/projects/models/settings/update.project.settings.model.js +56 -64
  191. package/src/saas/internal-api/projects/utils/utils.js +159 -159
  192. package/src/saas/internal-api/recordHub/api/record.hub.api.js +20 -20
  193. package/src/saas/internal-api/recordHub/api/record.hub.service.js +86 -86
  194. package/src/saas/internal-api/recordHub/index.js +3 -3
  195. package/src/saas/internal-api/recordNotes/api/record.notes.api.js +38 -38
  196. package/src/saas/internal-api/recordNotes/api/record.notes.service.js +56 -56
  197. package/src/saas/internal-api/recordNotes/api/record.notes.utils.js +12 -12
  198. package/src/saas/internal-api/recordNotes/index.js +3 -3
  199. package/src/saas/internal-api/relatedDocs/api/related.docs.api.js +98 -98
  200. package/src/saas/internal-api/relatedDocs/api/related.docs.service.js +180 -180
  201. package/src/saas/internal-api/relatedDocs/index.js +4 -4
  202. package/src/saas/internal-api/relatedDocs/models/related.doc.model.js +36 -36
  203. package/src/saas/internal-api/reports/api/reports.api.js +56 -56
  204. package/src/saas/internal-api/reports/api/reports.service.js +68 -68
  205. package/src/saas/internal-api/reports/consts/consts.js +71 -71
  206. package/src/saas/internal-api/reports/index.js +15 -15
  207. package/src/saas/internal-api/reports/models/report.model.js +27 -27
  208. package/src/saas/internal-api/requests/api/requests.api.js +132 -132
  209. package/src/saas/internal-api/requests/api/requests.service.js +315 -315
  210. package/src/saas/internal-api/requests/index.js +21 -21
  211. package/src/saas/internal-api/requests/models/create.request.model.js +39 -39
  212. package/src/saas/internal-api/requests/models/draft.request.criteria.model.js +18 -18
  213. package/src/saas/internal-api/requests/models/draft.request.report.model.js +14 -14
  214. package/src/saas/internal-api/requests/models/edit.request.model.js +31 -31
  215. package/src/saas/internal-api/requests/models/homepageRequestCriteriaModel.js +19 -19
  216. package/src/saas/internal-api/requests/models/requestListCriteriaModel.js +17 -17
  217. package/src/saas/internal-api/requests/models/tenant.request.model.js +9 -9
  218. package/src/saas/internal-api/requests/utils.js +16 -16
  219. package/src/saas/internal-api/requestsTable/api/requests.table.api.js +20 -20
  220. package/src/saas/internal-api/requestsTable/api/requests.table.service.js +14 -14
  221. package/src/saas/internal-api/requestsTable/index.js +3 -3
  222. package/src/saas/internal-api/requirements/api/lease/lease.api.js +74 -74
  223. package/src/saas/internal-api/requirements/api/lease/lease.service.js +167 -167
  224. package/src/saas/internal-api/requirements/api/requirements.api.js +65 -65
  225. package/src/saas/internal-api/requirements/api/requirements.service.js +198 -198
  226. package/src/saas/internal-api/requirements/consts/attributeTypes.json +8 -8
  227. package/src/saas/internal-api/requirements/consts/consts.js +22 -22
  228. package/src/saas/internal-api/requirements/index.js +22 -22
  229. package/src/saas/internal-api/requirements/models/create.requirement.model.js +17 -17
  230. package/src/saas/internal-api/requirements/models/extraction.request.model.js +16 -16
  231. package/src/saas/internal-api/requirements/models/policy.model.js +35 -35
  232. package/src/saas/internal-api/requirements/models/tab.extraction.request.model.js +14 -14
  233. package/src/saas/internal-api/requirements/models/update.requirement.model.js +19 -19
  234. package/src/saas/internal-api/requirements/utils/utils.js +129 -129
  235. package/src/saas/internal-api/sampleCoi/api/sample.coi.api.js +15 -15
  236. package/src/saas/internal-api/sampleCoi/api/sample.coi.service.js +48 -48
  237. package/src/saas/internal-api/sampleCoi/consts/consts.js +22 -22
  238. package/src/saas/internal-api/sampleCoi/index.js +4 -4
  239. package/src/saas/internal-api/schedulerJobRun/api/scheduler.job.run.api.js +31 -31
  240. package/src/saas/internal-api/schedulerJobRun/api/scheduler.job.run.service.js +56 -56
  241. package/src/saas/internal-api/schedulerJobRun/index.js +3 -3
  242. package/src/saas/internal-api/serviceArea/api/coordinates.api.js +12 -12
  243. package/src/saas/internal-api/serviceArea/api/coordinates.service.js +7 -7
  244. package/src/saas/internal-api/serviceArea/index.js +4 -4
  245. package/src/saas/internal-api/serviceArea/utils/utils.js +8 -8
  246. package/src/saas/internal-api/tableOfContents/api/table.of.contents.api.js +37 -37
  247. package/src/saas/internal-api/tableOfContents/api/table.of.contents.service.js +19 -19
  248. package/src/saas/internal-api/tableOfContents/index.js +3 -3
  249. package/src/saas/internal-api/tabs/api/tabs.api.js +32 -32
  250. package/src/saas/internal-api/tabs/api/tabs.service.js +60 -60
  251. package/src/saas/internal-api/tabs/index.js +3 -3
  252. package/src/saas/internal-api/tabs/models/tabs.model.js +19 -19
  253. package/src/saas/internal-api/thread-scheduler/runner.js +86 -86
  254. package/src/saas/internal-api/thread-scheduler/schedulerJobs.js +10 -10
  255. package/src/saas/internal-api/uploadFiles/api/upload.file.api.js +49 -49
  256. package/src/saas/internal-api/uploadFiles/api/upload.file.service.js +176 -176
  257. package/src/saas/internal-api/uploadFiles/consts.js +36 -36
  258. package/src/saas/internal-api/uploadFiles/index.js +5 -5
  259. package/src/saas/internal-api/uploadFiles/utils.js +34 -34
  260. package/src/saas/internal-api/users/api/tenantApp/tenant.app.api.js +38 -38
  261. package/src/saas/internal-api/users/api/tenantApp/tenant.app.service.js +109 -109
  262. package/src/saas/internal-api/users/api/users.api.js +158 -158
  263. package/src/saas/internal-api/users/api/users.service.js +363 -363
  264. package/src/saas/internal-api/users/index.js +17 -17
  265. package/src/saas/internal-api/users/models/create.inner.system.user.model.js +18 -18
  266. package/src/saas/internal-api/users/models/notification.settings.model.js +15 -15
  267. package/src/saas/internal-api/users/models/tenant.user.model.js +11 -11
  268. package/src/saas/internal-api/users/models/users.model.js +43 -43
  269. package/src/saas/internal-api/users/utils/util.js +50 -50
  270. package/src/saas/internal-api/vendorProfile/api/vendor.profile.api.js +26 -26
  271. package/src/saas/internal-api/vendorProfile/api/vendor.profile.service.js +19 -19
  272. package/src/saas/internal-api/vendorProfile/index.js +3 -3
  273. package/src/saas/openapi/accounts/accounts.api.js +17 -17
  274. package/src/saas/openapi/accounts/accounts.service.js +11 -11
  275. package/src/saas/openapi/coi/coi.api.js +35 -35
  276. package/src/saas/openapi/coi/coi.service.js +53 -53
  277. package/src/saas/openapi/projects/projects.api.js +83 -83
  278. package/src/saas/openapi/projects/projects.service.js +89 -71
  279. package/src/saas/openapi/relatedDocs/related.docs.api.js +30 -30
  280. package/src/saas/openapi/relatedDocs/related.docs.service.js +56 -55
  281. package/src/saas/openapi/requests/index.js +7 -7
  282. package/src/saas/openapi/requests/models/invite.request.model.js +42 -42
  283. package/src/saas/openapi/requests/models/update.request.model.js +37 -37
  284. package/src/saas/openapi/requests/requests.api.js +93 -93
  285. package/src/saas/openapi/requests/requests.service.js +100 -94
  286. package/src/saas/openapi/requirements/index.js +6 -6
  287. package/src/saas/openapi/requirements/models/copy.requirement.model.js +10 -10
  288. package/src/saas/openapi/requirements/requirements.api.js +41 -41
  289. package/src/saas/openapi/requirements/requirements.service.js +61 -55
  290. package/src/saas/openapi/tabs/index.js +6 -6
  291. package/src/saas/openapi/tabs/models/create.tab.model.js +6 -6
  292. package/src/saas/openapi/tabs/tabs.api.js +27 -27
  293. package/src/saas/openapi/tabs/tabs.service.js +26 -19
  294. package/src/saas/openapi/users/user.model.js +10 -10
  295. package/src/saas/openapi/users/users.api.js +33 -33
  296. package/src/saas/openapi/users/users.service.js +51 -51
@@ -1,76 +1,76 @@
1
- const axios = require('axios');
2
- const FormData = require('form-data');
3
- const requests = require('../../../../common/requests/cookieAuth/requests');
4
- const internalRequests = require('../../../../common/requests/internalAuth/requests');
5
-
6
- const { backendUrl } = require('../../../../env').getEnv();
7
-
8
- const Endpoints = {
9
- uploadToS3: `${backendUrl}/_saas/coi/upload`,
10
- submitCoi: `${backendUrl}/coi/merge`,
11
- submitCoiByUserContext: `${backendUrl}/saas/coi/merge`,
12
- submitCoiBatch: `${backendUrl}/saas/coi/merge/batch`,
13
- getCoiPresignedUrl: fileName => `${backendUrl}/saas/coi/${fileName}`,
14
- getCoiPresignedUrlBeforeMerge: fileId => `${backendUrl}/saas/coi-file-before-merge/presigned-url/${fileId}`,
15
- getCoiHashes: recordId => `${backendUrl}/jcsc/record/${recordId}/coi/hashes`,
16
- getCombinedCoiByRecordId: recordId => `${backendUrl}/saas/record/${recordId}/coi/combined-coi-mapping`,
17
- combineLastTwoCOIs: `${backendUrl}/saas/auditor/record/coi/merge-last-two`,
18
- downloadProjectCoisInBulk: projectId => `${backendUrl}/saas/project/${projectId}/bulk-coi-download`
19
- };
20
-
21
- const uploadToS3 = (contractorId, fileData) => {
22
- const form = new FormData();
23
- form.append('fileData', fileData);
24
-
25
- return axios.post(Endpoints.uploadToS3, form, { params: { contractorId }, headers: form.getHeaders() });
26
- };
27
-
28
- const submitCoi = submitCoiModel => {
29
- return requests.postRequestHandler(Endpoints.submitCoi, submitCoiModel);
30
- };
31
-
32
- const submitCoiByUserContext = (submitCoiModel, context) => {
33
- return requests.postRequestHandler(Endpoints.submitCoiByUserContext, submitCoiModel, context);
34
- };
35
-
36
- const submitCoiBatch = (submitCoiBatchModel, context) => {
37
- return requests.postRequestHandler(Endpoints.submitCoiBatch, submitCoiBatchModel, context);
38
- };
39
-
40
- const getCoiPreSignedUrl = (coiFileName, context) => {
41
- return requests.getRequestHandler(Endpoints.getCoiPresignedUrl(coiFileName), {}, context);
42
- };
43
-
44
- const getCoiPresignedUrlBeforeMerge = (fileId, context) => {
45
- return requests.getRequestHandler(Endpoints.getCoiPresignedUrlBeforeMerge(fileId), {}, context);
46
- };
47
-
48
- const getCoiHashes = recordId => {
49
- return internalRequests.getRequestHandler(Endpoints.getCoiHashes(recordId));
50
- };
51
-
52
- const getCombinedCoiByRecordId = (recordId, context) => {
53
- return requests.getRequestHandler(Endpoints.getCombinedCoiByRecordId(recordId), {}, context);
54
- };
55
-
56
- const combineLastTwoCOIs = (combineLastTwoCOIsModel, context) => {
57
- return requests.postRequestHandler(Endpoints.combineLastTwoCOIs, combineLastTwoCOIsModel, context);
58
- };
59
-
60
- const downloadProjectCoisInBulk = (projectId, context) => {
61
- const emptyBody = {};
62
- return requests.postRequestHandler(Endpoints.downloadProjectCoisInBulk(projectId), emptyBody, context);
63
- };
64
-
65
- module.exports = {
66
- uploadToS3,
67
- submitCoi,
68
- submitCoiByUserContext,
69
- submitCoiBatch,
70
- getCoiPreSignedUrl,
71
- getCoiPresignedUrlBeforeMerge,
72
- getCoiHashes,
73
- getCombinedCoiByRecordId,
74
- combineLastTwoCOIs,
75
- downloadProjectCoisInBulk
76
- };
1
+ const axios = require('axios');
2
+ const FormData = require('form-data');
3
+ const requests = require('../../../../common/requests/cookieAuth/requests');
4
+ const internalRequests = require('../../../../common/requests/internalAuth/requests');
5
+
6
+ const { backendUrl } = require('../../../../env').getEnv();
7
+
8
+ const Endpoints = {
9
+ uploadToS3: `${backendUrl}/_saas/coi/upload`,
10
+ submitCoi: `${backendUrl}/coi/merge`,
11
+ submitCoiByUserContext: `${backendUrl}/saas/coi/merge`,
12
+ submitCoiBatch: `${backendUrl}/saas/coi/merge/batch`,
13
+ getCoiPresignedUrl: fileName => `${backendUrl}/saas/coi/${fileName}`,
14
+ getCoiPresignedUrlBeforeMerge: fileId => `${backendUrl}/saas/coi-file-before-merge/presigned-url/${fileId}`,
15
+ getCoiHashes: recordId => `${backendUrl}/jcsc/record/${recordId}/coi/hashes`,
16
+ getCombinedCoiByRecordId: recordId => `${backendUrl}/saas/record/${recordId}/coi/combined-coi-mapping`,
17
+ combineLastTwoCOIs: `${backendUrl}/saas/auditor/record/coi/merge-last-two`,
18
+ downloadProjectCoisInBulk: projectId => `${backendUrl}/saas/project/${projectId}/bulk-coi-download`
19
+ };
20
+
21
+ const uploadToS3 = (contractorId, fileData) => {
22
+ const form = new FormData();
23
+ form.append('fileData', fileData);
24
+
25
+ return axios.post(Endpoints.uploadToS3, form, { params: { contractorId }, headers: form.getHeaders() });
26
+ };
27
+
28
+ const submitCoi = submitCoiModel => {
29
+ return requests.postRequestHandler(Endpoints.submitCoi, submitCoiModel);
30
+ };
31
+
32
+ const submitCoiByUserContext = (submitCoiModel, context) => {
33
+ return requests.postRequestHandler(Endpoints.submitCoiByUserContext, submitCoiModel, context);
34
+ };
35
+
36
+ const submitCoiBatch = (submitCoiBatchModel, context) => {
37
+ return requests.postRequestHandler(Endpoints.submitCoiBatch, submitCoiBatchModel, context);
38
+ };
39
+
40
+ const getCoiPreSignedUrl = (coiFileName, context) => {
41
+ return requests.getRequestHandler(Endpoints.getCoiPresignedUrl(coiFileName), {}, context);
42
+ };
43
+
44
+ const getCoiPresignedUrlBeforeMerge = (fileId, context) => {
45
+ return requests.getRequestHandler(Endpoints.getCoiPresignedUrlBeforeMerge(fileId), {}, context);
46
+ };
47
+
48
+ const getCoiHashes = recordId => {
49
+ return internalRequests.getRequestHandler(Endpoints.getCoiHashes(recordId));
50
+ };
51
+
52
+ const getCombinedCoiByRecordId = (recordId, context) => {
53
+ return requests.getRequestHandler(Endpoints.getCombinedCoiByRecordId(recordId), {}, context);
54
+ };
55
+
56
+ const combineLastTwoCOIs = (combineLastTwoCOIsModel, context) => {
57
+ return requests.postRequestHandler(Endpoints.combineLastTwoCOIs, combineLastTwoCOIsModel, context);
58
+ };
59
+
60
+ const downloadProjectCoisInBulk = (projectId, context) => {
61
+ const emptyBody = {};
62
+ return requests.postRequestHandler(Endpoints.downloadProjectCoisInBulk(projectId), emptyBody, context);
63
+ };
64
+
65
+ module.exports = {
66
+ uploadToS3,
67
+ submitCoi,
68
+ submitCoiByUserContext,
69
+ submitCoiBatch,
70
+ getCoiPreSignedUrl,
71
+ getCoiPresignedUrlBeforeMerge,
72
+ getCoiHashes,
73
+ getCombinedCoiByRecordId,
74
+ combineLastTwoCOIs,
75
+ downloadProjectCoisInBulk
76
+ };
@@ -1,104 +1,104 @@
1
- const coiApi = require('./coi.api');
2
- const { SubmitCoiModel } = require('../models/submit.coi.model');
3
- const { SubmitCoiBatchModel } = require('../models/submit.coi.batch.model');
4
- const { CombineLastTwoCOIsModel } = require('../models/Combine.last.two.cois.model');
5
- const { validateType } = require('../../../../common/validations/typeValidations');
6
- const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
7
-
8
- const uploadToS3 = async (contractorId, fileData, { shouldExpectError } = {}) => {
9
- try {
10
- const uploadToS3Response = await coiApi.uploadToS3(contractorId, fileData);
11
- return uploadToS3Response;
12
- } catch (error) {
13
- if (shouldExpectError) {
14
- return error.response;
15
- }
16
-
17
- throw new Error('Failed to upload file to S3');
18
- }
19
- };
20
-
21
- const submitCoi = submitCoiModel => {
22
- validateType(submitCoiModel, SubmitCoiModel);
23
- return coiApi.submitCoi(submitCoiModel);
24
- };
25
-
26
- const submitCoiByUserContext = (submitCoiModel, userContext) => {
27
- validateType(submitCoiModel, SubmitCoiModel);
28
- return coiApi.submitCoiByUserContext(submitCoiModel, userContext);
29
- };
30
-
31
- const submitCoiBatch = async (submitCoiBatchModel, context, { expectError } = {}) => {
32
- validateType(submitCoiBatchModel, SubmitCoiBatchModel);
33
- const response = await coiApi.submitCoiBatch(submitCoiBatchModel, context);
34
-
35
- if (expectError) {
36
- return response;
37
- }
38
-
39
- if (response.status !== httpResponseStatusCodes.OK) {
40
- throw Error(`Failed to submit COI batch. Status code: ${response.status}`);
41
- }
42
-
43
- return response.data;
44
- };
45
-
46
- const getCoiPreSignedUrl = (coiFileName, context) => {
47
- return coiApi.getCoiPreSignedUrl(coiFileName, context);
48
- };
49
-
50
- const getCoiPresignedUrlBeforeMerge = async (fileId, context, { expectError } = {}) => {
51
- const response = await coiApi.getCoiPresignedUrlBeforeMerge(fileId, context);
52
-
53
- if (expectError) {
54
- return response;
55
- }
56
-
57
- if (response.status !== httpResponseStatusCodes.OK) {
58
- throw new Error(`Failed to get presigned url for file before merge with fileId: ${fileId}`);
59
- }
60
-
61
- return response.data.preSignedUrl;
62
- };
63
-
64
- const getCoiHashes = recordId => {
65
- return coiApi.getCoiHashes(recordId);
66
- };
67
-
68
- const combineLastTwoCOIs = async (combineLastTwoCOIsModel, auditorContext) => {
69
- validateType(combineLastTwoCOIsModel, CombineLastTwoCOIsModel);
70
- const response = await coiApi.combineLastTwoCOIs(combineLastTwoCOIsModel, auditorContext);
71
-
72
- if (response.status !== httpResponseStatusCodes.OK) {
73
- throw new Error(`Failed to combine last two COIs for recordId ${combineLastTwoCOIsModel.contractorId}`);
74
- }
75
-
76
- return response;
77
- };
78
-
79
- const getCombinedCoiByRecordId = (recordId, context) => {
80
- return coiApi.getCombinedCoiByRecordId(recordId, context);
81
- };
82
-
83
- const downloadProjectCoisInBulk = async (projectId, context, { expectError } = {}) => {
84
- const response = await coiApi.downloadProjectCoisInBulk(projectId, context);
85
-
86
- if (!expectError && response.status !== httpResponseStatusCodes.ACCEPTED) {
87
- throw new Error(`Failed to trigger bulk COI download for project ${projectId}. Status code: ${response.status}`);
88
- }
89
-
90
- return response;
91
- };
92
-
93
- module.exports = {
94
- uploadToS3,
95
- submitCoi,
96
- submitCoiByUserContext,
97
- submitCoiBatch,
98
- getCoiPreSignedUrl,
99
- getCoiPresignedUrlBeforeMerge,
100
- getCoiHashes,
101
- combineLastTwoCOIs,
102
- getCombinedCoiByRecordId,
103
- downloadProjectCoisInBulk
104
- };
1
+ const coiApi = require('./coi.api');
2
+ const { SubmitCoiModel } = require('../models/submit.coi.model');
3
+ const { SubmitCoiBatchModel } = require('../models/submit.coi.batch.model');
4
+ const { CombineLastTwoCOIsModel } = require('../models/Combine.last.two.cois.model');
5
+ const { validateType } = require('../../../../common/validations/typeValidations');
6
+ const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
7
+
8
+ const uploadToS3 = async (contractorId, fileData, { shouldExpectError } = {}) => {
9
+ try {
10
+ const uploadToS3Response = await coiApi.uploadToS3(contractorId, fileData);
11
+ return uploadToS3Response;
12
+ } catch (error) {
13
+ if (shouldExpectError) {
14
+ return error.response;
15
+ }
16
+
17
+ throw new Error('Failed to upload file to S3');
18
+ }
19
+ };
20
+
21
+ const submitCoi = submitCoiModel => {
22
+ validateType(submitCoiModel, SubmitCoiModel);
23
+ return coiApi.submitCoi(submitCoiModel);
24
+ };
25
+
26
+ const submitCoiByUserContext = (submitCoiModel, userContext) => {
27
+ validateType(submitCoiModel, SubmitCoiModel);
28
+ return coiApi.submitCoiByUserContext(submitCoiModel, userContext);
29
+ };
30
+
31
+ const submitCoiBatch = async (submitCoiBatchModel, context, { expectError } = {}) => {
32
+ validateType(submitCoiBatchModel, SubmitCoiBatchModel);
33
+ const response = await coiApi.submitCoiBatch(submitCoiBatchModel, context);
34
+
35
+ if (expectError) {
36
+ return response;
37
+ }
38
+
39
+ if (response.status !== httpResponseStatusCodes.OK) {
40
+ throw Error(`Failed to submit COI batch. Status code: ${response.status}`);
41
+ }
42
+
43
+ return response.data;
44
+ };
45
+
46
+ const getCoiPreSignedUrl = (coiFileName, context) => {
47
+ return coiApi.getCoiPreSignedUrl(coiFileName, context);
48
+ };
49
+
50
+ const getCoiPresignedUrlBeforeMerge = async (fileId, context, { expectError } = {}) => {
51
+ const response = await coiApi.getCoiPresignedUrlBeforeMerge(fileId, context);
52
+
53
+ if (expectError) {
54
+ return response;
55
+ }
56
+
57
+ if (response.status !== httpResponseStatusCodes.OK) {
58
+ throw new Error(`Failed to get presigned url for file before merge with fileId: ${fileId}`);
59
+ }
60
+
61
+ return response.data.preSignedUrl;
62
+ };
63
+
64
+ const getCoiHashes = recordId => {
65
+ return coiApi.getCoiHashes(recordId);
66
+ };
67
+
68
+ const combineLastTwoCOIs = async (combineLastTwoCOIsModel, auditorContext) => {
69
+ validateType(combineLastTwoCOIsModel, CombineLastTwoCOIsModel);
70
+ const response = await coiApi.combineLastTwoCOIs(combineLastTwoCOIsModel, auditorContext);
71
+
72
+ if (response.status !== httpResponseStatusCodes.OK) {
73
+ throw new Error(`Failed to combine last two COIs for recordId ${combineLastTwoCOIsModel.contractorId}`);
74
+ }
75
+
76
+ return response;
77
+ };
78
+
79
+ const getCombinedCoiByRecordId = (recordId, context) => {
80
+ return coiApi.getCombinedCoiByRecordId(recordId, context);
81
+ };
82
+
83
+ const downloadProjectCoisInBulk = async (projectId, context, { expectError } = {}) => {
84
+ const response = await coiApi.downloadProjectCoisInBulk(projectId, context);
85
+
86
+ if (!expectError && response.status !== httpResponseStatusCodes.ACCEPTED) {
87
+ throw new Error(`Failed to trigger bulk COI download for project ${projectId}. Status code: ${response.status}`);
88
+ }
89
+
90
+ return response;
91
+ };
92
+
93
+ module.exports = {
94
+ uploadToS3,
95
+ submitCoi,
96
+ submitCoiByUserContext,
97
+ submitCoiBatch,
98
+ getCoiPreSignedUrl,
99
+ getCoiPresignedUrlBeforeMerge,
100
+ getCoiHashes,
101
+ combineLastTwoCOIs,
102
+ getCombinedCoiByRecordId,
103
+ downloadProjectCoisInBulk
104
+ };
@@ -0,0 +1,9 @@
1
+ const COI_UPLOADER_TYPES = {
2
+ PM: 'pmUploadedCOI',
3
+ ICS: 'ICSUploadedCOI',
4
+ AUDITOR: 'AuditorUploadedCOI',
5
+ VENDOR: 'vendorUploadedCOI',
6
+ BOT: 'botUploadedCOI'
7
+ };
8
+
9
+ module.exports = COI_UPLOADER_TYPES;
@@ -1,7 +1,7 @@
1
- const DUPLICATE_HANDLING = {
2
- STRICT: 'STRICT',
3
- NONE: 'NONE',
4
- FILTER: 'FILTER'
5
- };
6
-
7
- module.exports = DUPLICATE_HANDLING;
1
+ const DUPLICATE_HANDLING = {
2
+ STRICT: 'STRICT',
3
+ NONE: 'NONE',
4
+ FILTER: 'FILTER'
5
+ };
6
+
7
+ module.exports = DUPLICATE_HANDLING;
@@ -1,5 +1,5 @@
1
- const defaultCoiHashValue = '79c8e018c43de2d8f4c6b489dde08cc3e21abe30f3e5f3a26ee4a0bca1ca6226';
2
- const realCoiHashValue = '71de8e0b212168cb513c9f38af63f6b4f6186f950412b9e1e0ea84e1e54e47ce';
3
- const secondCoiHashValue = '01d359a1d4ec9336526723e6533b92569515be1dd57115d0d73da7b45b48a827';
4
-
5
- module.exports = { defaultCoiHashValue, realCoiHashValue, secondCoiHashValue };
1
+ const defaultCoiHashValue = '79c8e018c43de2d8f4c6b489dde08cc3e21abe30f3e5f3a26ee4a0bca1ca6226';
2
+ const realCoiHashValue = '71de8e0b212168cb513c9f38af63f6b4f6186f950412b9e1e0ea84e1e54e47ce';
3
+ const secondCoiHashValue = '01d359a1d4ec9336526723e6533b92569515be1dd57115d0d73da7b45b48a827';
4
+
5
+ module.exports = { defaultCoiHashValue, realCoiHashValue, secondCoiHashValue };
@@ -1,3 +1,3 @@
1
- const UPLOADER_TYPES = { ICS: 'ICS', PM: 'PM', AUDITOR: 'Auditor', VENDOR: 'Vendor' };
2
-
3
- module.exports = UPLOADER_TYPES;
1
+ const UPLOADER_TYPES = { ICS: 'ICS', PM: 'PM', AUDITOR: 'Auditor', VENDOR: 'Vendor', BOT: 'Bot' };
2
+
3
+ module.exports = UPLOADER_TYPES;
@@ -9,6 +9,7 @@ const utils = require('./utils/utils');
9
9
 
10
10
  const consts = {
11
11
  UPLOADER_TYPES: require('./consts/uploaderTypes'),
12
+ COI_UPLOADER_TYPES: require('./consts/coiUploaderTypes'),
12
13
  HASHES: require('./consts/hashes'),
13
14
  DUPLICATE_HANDLING: require('./consts/duplicateHandling')
14
15
  };
@@ -1,25 +1,25 @@
1
- const { SubmitCoiModel } = require('../models/submit.coi.model');
2
-
3
- class CombineLastTwoCOIsModel extends SubmitCoiModel {
4
- constructor({
5
- recordId,
6
- fileIds,
7
- uploadedBy,
8
- uploaderEmail,
9
- recordDateModified,
10
- isContractorExist,
11
- isNewCoiOnTop = true
12
- }) {
13
- super({
14
- recordId,
15
- fileIds,
16
- uploadedBy,
17
- uploaderEmail,
18
- recordDateModified,
19
- isContractorExist
20
- });
21
- this.isNewCoiOnTop = isNewCoiOnTop;
22
- }
23
- }
24
-
25
- module.exports = { CombineLastTwoCOIsModel };
1
+ const { SubmitCoiModel } = require('../models/submit.coi.model');
2
+
3
+ class CombineLastTwoCOIsModel extends SubmitCoiModel {
4
+ constructor({
5
+ recordId,
6
+ fileIds,
7
+ uploadedBy,
8
+ uploaderEmail,
9
+ recordDateModified,
10
+ isContractorExist,
11
+ isNewCoiOnTop = true
12
+ }) {
13
+ super({
14
+ recordId,
15
+ fileIds,
16
+ uploadedBy,
17
+ uploaderEmail,
18
+ recordDateModified,
19
+ isContractorExist
20
+ });
21
+ this.isNewCoiOnTop = isNewCoiOnTop;
22
+ }
23
+ }
24
+
25
+ module.exports = { CombineLastTwoCOIsModel };
@@ -1,23 +1,23 @@
1
- const DUPLICATE_HANDLING = require('../consts/duplicateHandling');
2
-
3
- class SubmitCoiBatchModel {
4
- constructor({
5
- fileIds,
6
- sourceRecordId,
7
- records,
8
- uploadedBy,
9
- uploaderEmail,
10
- isContractorExist = true,
11
- duplicateHandling = DUPLICATE_HANDLING.STRICT
12
- }) {
13
- this.chosenIds = fileIds;
14
- this.sourceRecordId = sourceRecordId;
15
- this.records = records;
16
- this.uploadedBy = uploadedBy;
17
- this.uploaderEmail = uploaderEmail;
18
- this.isContractorExist = isContractorExist;
19
- this.duplicateHandling = duplicateHandling;
20
- }
21
- }
22
-
23
- module.exports = { SubmitCoiBatchModel };
1
+ const DUPLICATE_HANDLING = require('../consts/duplicateHandling');
2
+
3
+ class SubmitCoiBatchModel {
4
+ constructor({
5
+ fileIds,
6
+ sourceRecordId,
7
+ records,
8
+ uploadedBy,
9
+ uploaderEmail,
10
+ isContractorExist = true,
11
+ duplicateHandling = DUPLICATE_HANDLING.STRICT
12
+ }) {
13
+ this.chosenIds = fileIds;
14
+ this.sourceRecordId = sourceRecordId;
15
+ this.records = records;
16
+ this.uploadedBy = uploadedBy;
17
+ this.uploaderEmail = uploaderEmail;
18
+ this.isContractorExist = isContractorExist;
19
+ this.duplicateHandling = duplicateHandling;
20
+ }
21
+ }
22
+
23
+ module.exports = { SubmitCoiBatchModel };
@@ -1,23 +1,23 @@
1
- class SubmitCoiModel {
2
- constructor({
3
- recordId: contractorId,
4
- fileIds,
5
- uploadedBy,
6
- uploaderContext,
7
- uploaderEmail,
8
- recordDateModified,
9
- isContractorExist = true,
10
- duplicateHandling
11
- }) {
12
- this.contractorId = contractorId;
13
- this.chosenIds = fileIds;
14
- this.uploadedBy = uploadedBy;
15
- this.uploaderContext = uploaderContext;
16
- this.uploaderEmail = uploaderEmail;
17
- this.isContractorExist = isContractorExist;
18
- this.recordDateModified = recordDateModified;
19
- this.duplicateHandling = duplicateHandling;
20
- }
21
- }
22
-
23
- module.exports = { SubmitCoiModel };
1
+ class SubmitCoiModel {
2
+ constructor({
3
+ recordId: contractorId,
4
+ fileIds,
5
+ uploadedBy,
6
+ uploaderContext,
7
+ uploaderEmail,
8
+ recordDateModified,
9
+ isContractorExist = true,
10
+ duplicateHandling
11
+ }) {
12
+ this.contractorId = contractorId;
13
+ this.chosenIds = fileIds;
14
+ this.uploadedBy = uploadedBy;
15
+ this.uploaderContext = uploaderContext;
16
+ this.uploaderEmail = uploaderEmail;
17
+ this.isContractorExist = isContractorExist;
18
+ this.recordDateModified = recordDateModified;
19
+ this.duplicateHandling = duplicateHandling;
20
+ }
21
+ }
22
+
23
+ module.exports = { SubmitCoiModel };
@@ -27,6 +27,9 @@ const submitCoiFilesUpload = async ({
27
27
  recordDateModified,
28
28
  duplicateHandling
29
29
  }) => {
30
+ // ICS is the default uploader, so without a session it falls back to the ICS cookie; other types go out unauthenticated
31
+ const isUnauthenticatedUpload = !uploaderContext && uploadedBy !== UPLOADER_TYPES.ICS;
32
+
30
33
  const submitCoiModel = new SubmitCoiModel({
31
34
  recordId,
32
35
  fileIds,
@@ -37,11 +40,12 @@ const submitCoiFilesUpload = async ({
37
40
  duplicateHandling
38
41
  });
39
42
 
40
- if (uploadedBy != UPLOADER_TYPES.ICS) { // Upload by user role
43
+ if (isUnauthenticatedUpload) {
41
44
  return services.submitCoi(submitCoiModel);
42
45
  }
43
46
 
44
- return services.submitCoiByUserContext(submitCoiModel, uploaderContext); // Upload by user context
47
+ const sessionContext = uploaderContext || await getIcsCookie();
48
+ return services.submitCoiByUserContext(submitCoiModel, sessionContext);
45
49
  };
46
50
 
47
51
  const uploadCoi = async (
@@ -50,16 +54,13 @@ const uploadCoi = async (
50
54
  uploadedBy,
51
55
  uploaderEmail,
52
56
  {
53
- markAsScaned, // Should be passed with context
57
+ markAsScaned,
54
58
  uploaderContext,
55
59
  duplicateHandling
56
60
  } = {}
57
61
  ) => {
58
- if (!uploaderContext) {
59
- uploaderContext = await getIcsCookie();
60
- }
61
-
62
- const recordResponse = await getContractorById(recordId, uploaderContext);
62
+ const icsContext = await getIcsCookie();
63
+ const recordResponse = await getContractorById(recordId, icsContext); // Auditors can't read the record, same as combineLastTwoCOIs
63
64
  const recordDateModified = recordResponse.data.dateModified;
64
65
  const fileId = await uploadFileToStorage(recordId, filePath);
65
66
 
@@ -75,8 +76,8 @@ const uploadCoi = async (
75
76
 
76
77
  const uploadedCoi = !!submitResponse.data.fileName && { id: fileId, name: submitResponse.data.fileName };
77
78
 
78
- if (uploadedCoi.name && markAsScaned && uploaderContext) {
79
- await fileScanService.completeCoiScan(recordId, uploadedCoi.name, uploaderContext);
79
+ if (uploadedCoi.name && markAsScaned) {
80
+ await fileScanService.completeCoiScan(recordId, uploadedCoi.name, icsContext); // Only ICS may update the scan status
80
81
  }
81
82
 
82
83
  return uploadedCoi;
@@ -1,12 +1,12 @@
1
- const internalRequests = require('../../../../../common/requests/internalAuth/requests');
2
- const { nodeBackendUrl } = require('../../../../../env').getEnv();
3
-
4
- const Endpoints = {
5
- getAMBestRatingForInsurers: `${nodeBackendUrl}/compliance/am-best-rating`
6
- };
7
-
8
- const getAMBestRatingForInsurers = insurerList => {
9
- return internalRequests.postRequestHandler(Endpoints.getAMBestRatingForInsurers, insurerList);
10
- };
11
-
12
- module.exports = { getAMBestRatingForInsurers };
1
+ const internalRequests = require('../../../../../common/requests/internalAuth/requests');
2
+ const { nodeBackendUrl } = require('../../../../../env').getEnv();
3
+
4
+ const Endpoints = {
5
+ getAMBestRatingForInsurers: `${nodeBackendUrl}/compliance/am-best-rating`
6
+ };
7
+
8
+ const getAMBestRatingForInsurers = insurerList => {
9
+ return internalRequests.postRequestHandler(Endpoints.getAMBestRatingForInsurers, insurerList);
10
+ };
11
+
12
+ module.exports = { getAMBestRatingForInsurers };