@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,70 +1,70 @@
1
- const { customerRuleNames, customerRuleVerbs, ruleAttributeGroups } = require('../consts/customer.rule');
2
- const { policiesCoverageConfig } = require('../../../../defaults/configs/coverage');
3
-
4
- const ruleNamesByVerb = Object.fromEntries(
5
- Object.entries(customerRuleVerbs).map(([name, verb]) => [verb, name])
6
- );
7
-
8
- const policyNameToScopeKey = policyName => policiesCoverageConfig[policyName]?.key ?? policyName;
9
-
10
- const LIMIT_ATTRIBUTE_NAMES = new Set(['Each Occurrence', 'combinedSingleLimit']);
11
- const isEndorsementAttributeName = attributeName => /endorsement/i.test(attributeName || '');
12
- const isLimitAttributeName = attributeName => LIMIT_ATTRIBUTE_NAMES.has(attributeName);
13
-
14
- const getAttributeGroupName = attributeName => {
15
- if (isEndorsementAttributeName(attributeName)) {
16
- return ruleAttributeGroups.ENDORSEMENTS;
17
- }
18
-
19
- if (isLimitAttributeName(attributeName)) {
20
- return ruleAttributeGroups.LIMITS;
21
- }
22
-
23
- return ruleAttributeGroups.PROVISIONS;
24
- };
25
-
26
- const buildTarget = (policyName, attributeName) => {
27
- const target = { scope: [policyNameToScopeKey(policyName)] };
28
-
29
- if (attributeName) {
30
- target[getAttributeGroupName(attributeName)] = [attributeName];
31
- }
32
-
33
- return target;
34
- };
35
-
36
- const readTargetPolicyAndAttribute = target => {
37
- if (!target) {
38
- return {};
39
- }
40
-
41
- const [policyName] = target.scope || [];
42
- const attributeName = target.limits?.[0] ?? target.provisions?.[0] ?? target.endorsements?.[0];
43
-
44
- return { policyName, attributeName };
45
- };
46
-
47
- const convertGetRulesToModelConfig = rule => {
48
- const { accountId, projectId, requirementId, level } = rule.ruleAssociation;
49
- const { rule: ruleVerb, target, gapQuote, criteria, tabType } = rule.ruleConfig;
50
- const { policyName, attributeName } = readTargetPolicyAndAttribute(target);
51
-
52
- const customerRuleConfig = {
53
- id: rule.id,
54
- accountId,
55
- name: ruleNamesByVerb[ruleVerb] || customerRuleNames.noGap,
56
- level,
57
- policyName,
58
- projectId,
59
- requirementId,
60
- attributeName,
61
- gapQuote,
62
- target,
63
- criteria,
64
- tabType,
65
- dateModified: rule.dateModified
66
- };
67
- return customerRuleConfig;
68
- };
69
-
70
- module.exports = { convertGetRulesToModelConfig, buildTarget, getAttributeGroupName, policyNameToScopeKey };
1
+ const { customerRuleNames, customerRuleVerbs, ruleAttributeGroups } = require('../consts/customer.rule');
2
+ const { policiesCoverageConfig } = require('../../../../defaults/configs/coverage');
3
+
4
+ const ruleNamesByVerb = Object.fromEntries(
5
+ Object.entries(customerRuleVerbs).map(([name, verb]) => [verb, name])
6
+ );
7
+
8
+ const policyNameToScopeKey = policyName => policiesCoverageConfig[policyName]?.key ?? policyName;
9
+
10
+ const LIMIT_ATTRIBUTE_NAMES = new Set(['Each Occurrence', 'combinedSingleLimit']);
11
+ const isEndorsementAttributeName = attributeName => /endorsement/i.test(attributeName || '');
12
+ const isLimitAttributeName = attributeName => LIMIT_ATTRIBUTE_NAMES.has(attributeName);
13
+
14
+ const getAttributeGroupName = attributeName => {
15
+ if (isEndorsementAttributeName(attributeName)) {
16
+ return ruleAttributeGroups.ENDORSEMENTS;
17
+ }
18
+
19
+ if (isLimitAttributeName(attributeName)) {
20
+ return ruleAttributeGroups.LIMITS;
21
+ }
22
+
23
+ return ruleAttributeGroups.PROVISIONS;
24
+ };
25
+
26
+ const buildTarget = (policyName, attributeName) => {
27
+ const target = { scope: [policyNameToScopeKey(policyName)] };
28
+
29
+ if (attributeName) {
30
+ target[getAttributeGroupName(attributeName)] = [attributeName];
31
+ }
32
+
33
+ return target;
34
+ };
35
+
36
+ const readTargetPolicyAndAttribute = target => {
37
+ if (!target) {
38
+ return {};
39
+ }
40
+
41
+ const [policyName] = target.scope || [];
42
+ const attributeName = target.limits?.[0] ?? target.provisions?.[0] ?? target.endorsements?.[0];
43
+
44
+ return { policyName, attributeName };
45
+ };
46
+
47
+ const convertGetRulesToModelConfig = rule => {
48
+ const { accountId, projectId, requirementId, level } = rule.ruleAssociation;
49
+ const { rule: ruleVerb, target, gapQuote, criteria, tabType } = rule.ruleConfig;
50
+ const { policyName, attributeName } = readTargetPolicyAndAttribute(target);
51
+
52
+ const customerRuleConfig = {
53
+ id: rule.id,
54
+ accountId,
55
+ name: ruleNamesByVerb[ruleVerb] || customerRuleNames.noGap,
56
+ level,
57
+ policyName,
58
+ projectId,
59
+ requirementId,
60
+ attributeName,
61
+ gapQuote,
62
+ target,
63
+ criteria,
64
+ tabType,
65
+ dateModified: rule.dateModified
66
+ };
67
+ return customerRuleConfig;
68
+ };
69
+
70
+ module.exports = { convertGetRulesToModelConfig, buildTarget, getAttributeGroupName, policyNameToScopeKey };
@@ -1,40 +1,40 @@
1
- const requests = require('../../../../common/requests/cookieAuth/requests');
2
- const { backendUrl } = require('../../../../env').getEnv();
3
-
4
- const saas_notes_path = 'saas/notes';
5
- const Endpoints = {
6
- saasNotes: `${backendUrl}/${saas_notes_path}`,
7
- getNotesForAuditor: `${backendUrl}/${saas_notes_path}/auditor`,
8
- updateNote: `${backendUrl}/${saas_notes_path}/update`,
9
- deleteNote: noteId => `${backendUrl}/${saas_notes_path}/${noteId}`
10
- };
11
-
12
- const createAuditNote = (noteModel, context) => {
13
- return requests.postRequestHandler(Endpoints.saasNotes, noteModel, context);
14
- };
15
-
16
- const getAuditNotesByProjectId = (projectId, context) => {
17
- const params = { projectId };
18
- return requests.getRequestHandler(Endpoints.saasNotes, params, context);
19
- };
20
-
21
- const getAuditNotesByRecordId = (recordId, context) => {
22
- const params = { contractorId: recordId };
23
- return requests.getRequestHandler(Endpoints.getNotesForAuditor, params, context);
24
- };
25
-
26
- const updateAuditNote = (noteModel, context) => {
27
- return requests.postRequestHandler(Endpoints.updateNote, noteModel, context);
28
- };
29
-
30
- const deleteAuditNoteById = (noteId, context) => {
31
- return requests.deleteRequestHandler(Endpoints.deleteNote(noteId), context);
32
- };
33
-
34
- module.exports = {
35
- createAuditNote,
36
- getAuditNotesByProjectId,
37
- getAuditNotesByRecordId,
38
- updateAuditNote,
39
- deleteAuditNoteById
40
- };
1
+ const requests = require('../../../../common/requests/cookieAuth/requests');
2
+ const { backendUrl } = require('../../../../env').getEnv();
3
+
4
+ const saas_notes_path = 'saas/notes';
5
+ const Endpoints = {
6
+ saasNotes: `${backendUrl}/${saas_notes_path}`,
7
+ getNotesForAuditor: `${backendUrl}/${saas_notes_path}/auditor`,
8
+ updateNote: `${backendUrl}/${saas_notes_path}/update`,
9
+ deleteNote: noteId => `${backendUrl}/${saas_notes_path}/${noteId}`
10
+ };
11
+
12
+ const createAuditNote = (noteModel, context) => {
13
+ return requests.postRequestHandler(Endpoints.saasNotes, noteModel, context);
14
+ };
15
+
16
+ const getAuditNotesByProjectId = (projectId, context) => {
17
+ const params = { projectId };
18
+ return requests.getRequestHandler(Endpoints.saasNotes, params, context);
19
+ };
20
+
21
+ const getAuditNotesByRecordId = (recordId, context) => {
22
+ const params = { contractorId: recordId };
23
+ return requests.getRequestHandler(Endpoints.getNotesForAuditor, params, context);
24
+ };
25
+
26
+ const updateAuditNote = (noteModel, context) => {
27
+ return requests.postRequestHandler(Endpoints.updateNote, noteModel, context);
28
+ };
29
+
30
+ const deleteAuditNoteById = (noteId, context) => {
31
+ return requests.deleteRequestHandler(Endpoints.deleteNote(noteId), context);
32
+ };
33
+
34
+ module.exports = {
35
+ createAuditNote,
36
+ getAuditNotesByProjectId,
37
+ getAuditNotesByRecordId,
38
+ updateAuditNote,
39
+ deleteAuditNoteById
40
+ };
@@ -1,116 +1,116 @@
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
- const errorCode = response.data && response.data.errorCode;
12
- throw Error(`Failed to create audit note - Response: ${response.status}${errorCode ? ` Error Code: ${errorCode}` : ''}`);
13
- }
14
-
15
- return response;
16
- };
17
-
18
- const getAuditNotesByProjectId = async (projectId, context) => {
19
- const response = await auditApi.getAuditNotesByProjectId(projectId, context);
20
-
21
- if (response.status !== httpResponseStatusCodes.OK) {
22
- throw Error(`Failed to get audit notes by project id: ${projectId} - Response: ${response.status}`);
23
- }
24
-
25
- return response.data;
26
- };
27
-
28
- const getAuditNotesByRecordId = async (recordId, context) => {
29
- const response = await auditApi.getAuditNotesByRecordId(recordId, context);
30
-
31
- if (response.status !== httpResponseStatusCodes.OK) {
32
- throw Error(`Failed to get audit notes by record id: ${recordId} - Response: ${response.status}`);
33
- }
34
-
35
- return response.data;
36
- };
37
-
38
- const updateAuditNote = async (auditNoteModel, context) => {
39
- validateType(auditNoteModel, AuditNoteModel);
40
- const response = await auditApi.updateAuditNote(auditNoteModel, context);
41
-
42
- if (response.status !== httpResponseStatusCodes.NO_CONTENT) {
43
- throw Error(`Failed to update audit note - Response: ${response.status}`);
44
- }
45
-
46
- return response;
47
- };
48
-
49
- const deleteAuditNoteById = (noteId, context) => {
50
- return auditApi.deleteAuditNoteById(noteId, context);
51
- };
52
-
53
- const deleteAllAuditNotesInProject = async (projectId, context) => {
54
- const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
55
-
56
- for (const auditNotesType in existingAuditNotes) {
57
- if (existingAuditNotes[auditNotesType] && existingAuditNotes[auditNotesType].length) {
58
- await deleteAuditNotesByIds(existingAuditNotes[auditNotesType], context);
59
- }
60
- }
61
- };
62
-
63
- const deleteAllAccountLevelNotes = async (projectId, context) => { //does not delete all notes in account, only account level notes!
64
- const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
65
- const accountLevelNotesArr = existingAuditNotes.Account;
66
-
67
- if (accountLevelNotesArr.length) {
68
- await deleteAuditNotesByIds(accountLevelNotesArr, context);
69
- }
70
- };
71
-
72
- const deleteAllProjectLevelNotes = async (projectId, context) => { //does not delete all notes in project, only project level notes!
73
- const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
74
- const projectLevelNotesArr = existingAuditNotes.Project;
75
-
76
- if (projectLevelNotesArr.length) {
77
- await deleteAuditNotesByIds(projectLevelNotesArr, context);
78
- }
79
- };
80
-
81
- const deleteAllRequirementLevelNotes = async (projectId, context) => {
82
- const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
83
- const requirementLevelNotesArr = existingAuditNotes.Requirement;
84
-
85
- if (requirementLevelNotesArr.length) {
86
- await deleteAuditNotesByIds(requirementLevelNotesArr, context);
87
- }
88
- };
89
-
90
- module.exports = {
91
- createAuditNote,
92
- getAuditNotesByProjectId,
93
- getAuditNotesByRecordId,
94
- updateAuditNote,
95
- deleteAuditNoteById,
96
- deleteAllAccountLevelNotes,
97
- deleteAllProjectLevelNotes,
98
- deleteAllRequirementLevelNotes,
99
- deleteAllAuditNotesInProject
100
- };
101
-
102
- async function deleteAuditNotesByIds(notes, context) {
103
- const failed = [];
104
- for (const note of notes) {
105
- const deleteNoteResponse = await deleteAuditNoteById(note.id, context);
106
-
107
- if (deleteNoteResponse.status !== httpResponseStatusCodes.NO_CONTENT) { //see what EP of delete is returning when all goes well - maybe need to change !status
108
- console.error('Failed to delete note: ', note.id);
109
- failed.push(deleteNoteResponse);
110
- }
111
- }
112
-
113
- if (failed.length) {
114
- throw Error(`Failed to delete ${failed.length} of ${notes.length} notes in account. Failed with status: ${ failed[0].status }`);
115
- }
116
- }
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
+ const errorCode = response.data && response.data.errorCode;
12
+ throw Error(`Failed to create audit note - Response: ${response.status}${errorCode ? ` Error Code: ${errorCode}` : ''}`);
13
+ }
14
+
15
+ return response;
16
+ };
17
+
18
+ const getAuditNotesByProjectId = async (projectId, context) => {
19
+ const response = await auditApi.getAuditNotesByProjectId(projectId, context);
20
+
21
+ if (response.status !== httpResponseStatusCodes.OK) {
22
+ throw Error(`Failed to get audit notes by project id: ${projectId} - Response: ${response.status}`);
23
+ }
24
+
25
+ return response.data;
26
+ };
27
+
28
+ const getAuditNotesByRecordId = async (recordId, context) => {
29
+ const response = await auditApi.getAuditNotesByRecordId(recordId, context);
30
+
31
+ if (response.status !== httpResponseStatusCodes.OK) {
32
+ throw Error(`Failed to get audit notes by record id: ${recordId} - Response: ${response.status}`);
33
+ }
34
+
35
+ return response.data;
36
+ };
37
+
38
+ const updateAuditNote = async (auditNoteModel, context) => {
39
+ validateType(auditNoteModel, AuditNoteModel);
40
+ const response = await auditApi.updateAuditNote(auditNoteModel, context);
41
+
42
+ if (response.status !== httpResponseStatusCodes.NO_CONTENT) {
43
+ throw Error(`Failed to update audit note - Response: ${response.status}`);
44
+ }
45
+
46
+ return response;
47
+ };
48
+
49
+ const deleteAuditNoteById = (noteId, context) => {
50
+ return auditApi.deleteAuditNoteById(noteId, context);
51
+ };
52
+
53
+ const deleteAllAuditNotesInProject = async (projectId, context) => {
54
+ const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
55
+
56
+ for (const auditNotesType in existingAuditNotes) {
57
+ if (existingAuditNotes[auditNotesType] && existingAuditNotes[auditNotesType].length) {
58
+ await deleteAuditNotesByIds(existingAuditNotes[auditNotesType], context);
59
+ }
60
+ }
61
+ };
62
+
63
+ const deleteAllAccountLevelNotes = async (projectId, context) => { //does not delete all notes in account, only account level notes!
64
+ const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
65
+ const accountLevelNotesArr = existingAuditNotes.Account;
66
+
67
+ if (accountLevelNotesArr.length) {
68
+ await deleteAuditNotesByIds(accountLevelNotesArr, context);
69
+ }
70
+ };
71
+
72
+ const deleteAllProjectLevelNotes = async (projectId, context) => { //does not delete all notes in project, only project level notes!
73
+ const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
74
+ const projectLevelNotesArr = existingAuditNotes.Project;
75
+
76
+ if (projectLevelNotesArr.length) {
77
+ await deleteAuditNotesByIds(projectLevelNotesArr, context);
78
+ }
79
+ };
80
+
81
+ const deleteAllRequirementLevelNotes = async (projectId, context) => {
82
+ const existingAuditNotes = await getAuditNotesByProjectId(projectId, context);
83
+ const requirementLevelNotesArr = existingAuditNotes.Requirement;
84
+
85
+ if (requirementLevelNotesArr.length) {
86
+ await deleteAuditNotesByIds(requirementLevelNotesArr, context);
87
+ }
88
+ };
89
+
90
+ module.exports = {
91
+ createAuditNote,
92
+ getAuditNotesByProjectId,
93
+ getAuditNotesByRecordId,
94
+ updateAuditNote,
95
+ deleteAuditNoteById,
96
+ deleteAllAccountLevelNotes,
97
+ deleteAllProjectLevelNotes,
98
+ deleteAllRequirementLevelNotes,
99
+ deleteAllAuditNotesInProject
100
+ };
101
+
102
+ async function deleteAuditNotesByIds(notes, context) {
103
+ const failed = [];
104
+ for (const note of notes) {
105
+ const deleteNoteResponse = await deleteAuditNoteById(note.id, context);
106
+
107
+ if (deleteNoteResponse.status !== httpResponseStatusCodes.NO_CONTENT) { //see what EP of delete is returning when all goes well - maybe need to change !status
108
+ console.error('Failed to delete note: ', note.id);
109
+ failed.push(deleteNoteResponse);
110
+ }
111
+ }
112
+
113
+ if (failed.length) {
114
+ throw Error(`Failed to delete ${failed.length} of ${notes.length} notes in account. Failed with status: ${ failed[0].status }`);
115
+ }
116
+ }
@@ -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,32 +1,32 @@
1
- class AuditNoteModel {
2
- constructor(noteEntityType, entityId, note, { id, gapQuote, requirementName, policyKey, attributeKey } = {}) {
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
- this.policyKey = policyKey;
13
- this.attributeKey = attributeKey;
14
- }
15
- }
16
-
17
- const auditNoteTypes = {
18
- account: 'Account',
19
- project: 'Project',
20
- requirement: 'Requirement'
21
- };
22
-
23
- module.exports = {
24
- AuditNoteModel,
25
- auditNoteTypes
26
- };
27
-
28
- const validateNoteEntityType = noteEntityType => {
29
- if (![auditNoteTypes.account, auditNoteTypes.project, auditNoteTypes.requirement].includes(noteEntityType)) {
30
- throw new Error(`Invalid noteEntityType: ${noteEntityType}`);
31
- }
32
- };
1
+ class AuditNoteModel {
2
+ constructor(noteEntityType, entityId, note, { id, gapQuote, requirementName, policyKey, attributeKey } = {}) {
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
+ this.policyKey = policyKey;
13
+ this.attributeKey = attributeKey;
14
+ }
15
+ }
16
+
17
+ const auditNoteTypes = {
18
+ account: 'Account',
19
+ project: 'Project',
20
+ requirement: 'Requirement'
21
+ };
22
+
23
+ module.exports = {
24
+ AuditNoteModel,
25
+ auditNoteTypes
26
+ };
27
+
28
+ const validateNoteEntityType = noteEntityType => {
29
+ if (![auditNoteTypes.account, auditNoteTypes.project, auditNoteTypes.requirement].includes(noteEntityType)) {
30
+ throw new Error(`Invalid noteEntityType: ${noteEntityType}`);
31
+ }
32
+ };
@@ -1,20 +1,20 @@
1
- const requests = require('../../../../common/requests/cookieAuth/requests');
2
- const { backendUrl } = require('../../../../env').getEnv();
3
-
4
- const Endpoints = {
5
- getCommentsByRecordId: recordId => `${backendUrl}/saas/auditor/records/${recordId}/comments`,
6
- getCommentHistory: commentId => `${backendUrl}/saas/integration-tests/comments/${commentId}/history`
7
- };
8
-
9
- const getCommentsByRecordId = (recordId, context) => {
10
- return requests.getRequestHandler(Endpoints.getCommentsByRecordId(recordId), {}, context);
11
- };
12
-
13
- const getCommentHistory = (commentId, context) => {
14
- return requests.getRequestHandler(Endpoints.getCommentHistory(commentId), {}, context);
15
- };
16
-
17
- module.exports = {
18
- getCommentsByRecordId,
19
- getCommentHistory
20
- };
1
+ const requests = require('../../../../common/requests/cookieAuth/requests');
2
+ const { backendUrl } = require('../../../../env').getEnv();
3
+
4
+ const Endpoints = {
5
+ getCommentsByRecordId: recordId => `${backendUrl}/saas/auditor/records/${recordId}/comments`,
6
+ getCommentHistory: commentId => `${backendUrl}/saas/integration-tests/comments/${commentId}/history`
7
+ };
8
+
9
+ const getCommentsByRecordId = (recordId, context) => {
10
+ return requests.getRequestHandler(Endpoints.getCommentsByRecordId(recordId), {}, context);
11
+ };
12
+
13
+ const getCommentHistory = (commentId, context) => {
14
+ return requests.getRequestHandler(Endpoints.getCommentHistory(commentId), {}, context);
15
+ };
16
+
17
+ module.exports = {
18
+ getCommentsByRecordId,
19
+ getCommentHistory
20
+ };
@@ -1,27 +1,27 @@
1
- const auditorCommentsApi = require('./auditor.comments.api');
2
- const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
3
-
4
- const getCommentsByRecordId = async (recordId, context) => {
5
- const response = await auditorCommentsApi.getCommentsByRecordId(recordId, context);
6
-
7
- if (response.status !== httpResponseStatusCodes.OK) {
8
- throw Error(`Failed to get audit comments by record id: ${recordId} - Response: ${response.status}`);
9
- }
10
-
11
- return response.data;
12
- };
13
-
14
- const getCommentHistory = async (commentId, context) => {
15
- const response = await auditorCommentsApi.getCommentHistory(commentId, context);
16
-
17
- if (response.status !== httpResponseStatusCodes.OK) {
18
- throw Error(`Failed to get comment history for comment id: ${commentId}`);
19
- }
20
-
21
- return response.data;
22
- };
23
-
24
- module.exports = {
25
- getCommentsByRecordId,
26
- getCommentHistory
27
- };
1
+ const auditorCommentsApi = require('./auditor.comments.api');
2
+ const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
3
+
4
+ const getCommentsByRecordId = async (recordId, context) => {
5
+ const response = await auditorCommentsApi.getCommentsByRecordId(recordId, context);
6
+
7
+ if (response.status !== httpResponseStatusCodes.OK) {
8
+ throw Error(`Failed to get audit comments by record id: ${recordId} - Response: ${response.status}`);
9
+ }
10
+
11
+ return response.data;
12
+ };
13
+
14
+ const getCommentHistory = async (commentId, context) => {
15
+ const response = await auditorCommentsApi.getCommentHistory(commentId, context);
16
+
17
+ if (response.status !== httpResponseStatusCodes.OK) {
18
+ throw Error(`Failed to get comment history for comment id: ${commentId}`);
19
+ }
20
+
21
+ return response.data;
22
+ };
23
+
24
+ module.exports = {
25
+ getCommentsByRecordId,
26
+ getCommentHistory
27
+ };
@@ -1,16 +1,16 @@
1
- const CommentAction = {
2
- CREATE: 'CREATE',
3
- MUTE: 'MUTE',
4
- UNMUTE: 'UNMUTE',
5
- DELETE: 'DELETE'
6
- };
7
-
8
- const CommentActionReason = {
9
- MANUAL_MUTE: 'MANUAL_MUTE',
10
- MANUAL_UNMUTE: 'MANUAL_UNMUTE',
11
- RESOLUTION_CHANGED: 'RESOLUTION_CHANGED',
12
- EXPIRATION_CHANGED: 'EXPIRATION_CHANGED',
13
- AUTO_REMOVE_MUTED_COMMENT: 'AUTO_REMOVE_MUTED_COMMENT'
14
- };
15
-
16
- module.exports = { CommentAction, CommentActionReason };
1
+ const CommentAction = {
2
+ CREATE: 'CREATE',
3
+ MUTE: 'MUTE',
4
+ UNMUTE: 'UNMUTE',
5
+ DELETE: 'DELETE'
6
+ };
7
+
8
+ const CommentActionReason = {
9
+ MANUAL_MUTE: 'MANUAL_MUTE',
10
+ MANUAL_UNMUTE: 'MANUAL_UNMUTE',
11
+ RESOLUTION_CHANGED: 'RESOLUTION_CHANGED',
12
+ EXPIRATION_CHANGED: 'EXPIRATION_CHANGED',
13
+ AUTO_REMOVE_MUTED_COMMENT: 'AUTO_REMOVE_MUTED_COMMENT'
14
+ };
15
+
16
+ module.exports = { CommentAction, CommentActionReason };