@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,87 +1,87 @@
1
- const { EMAIL_SUBJECT } = require('../consts/consts');
2
-
3
- //compare method for sorting with ignore caseSensitive
4
- const compareFn = (a, b) => a.toLowerCase().localeCompare(b.toLowerCase());
5
-
6
- const compareUnorderedArrays = (arr, other, { caseSensitive = true } = {}) => {
7
- const isEachElementEqual = arr.sort(compareFn).every((mail, i) => {
8
- if (caseSensitive) {
9
- return mail === other.sort((compareFn))[i];
10
- } else {
11
- return mail.toLowerCase() === other.sort(compareFn)[i].toLowerCase();
12
- }
13
- });
14
- return arr.length === other.length && isEachElementEqual;
15
- };
16
-
17
- const recipientsMatchVerification = (expectedRecipients, actualRecipients) => {
18
- const caseSensitive = false;
19
-
20
- return expectedRecipients.from.includes(actualRecipients.from) && // For some emails can be few sendor options (ex: branded emails)
21
- compareUnorderedArrays(actualRecipients.to, expectedRecipients.to, { caseSensitive }) &&
22
- compareUnorderedArrays(actualRecipients.cc, expectedRecipients.cc, { caseSensitive });
23
- };
24
-
25
- const regexVerification = (message, regex, { returnType } = {}) => {
26
- const capturingGroupsArr = message.match(regex);
27
-
28
- if (!capturingGroupsArr || capturingGroupsArr.length < 1) {
29
- return null;
30
- }
31
-
32
- const capturingGroups = capturingGroupsArr[capturingGroupsArr.length - 1];
33
-
34
- if (!capturingGroups || capturingGroups.length < 2) {
35
- return null;
36
- }
37
-
38
- switch (returnType) {
39
- case 'url':
40
- return typeof capturingGroups === 'string' ? capturingGroups : capturingGroups[capturingGroups.length - 1];
41
- case 'body':
42
- return message;
43
- default:
44
- return 'Bad "returnType" argument';
45
- }
46
- };
47
-
48
- const extractEmailFromNameAndEmailFormat = str => {
49
- // In case the format is 'First Last <username@domain.com>' we will return username@domain.com only
50
- return str.split('<').pop().split('>')[0];
51
- };
52
- const logRetrievedEmailInfo = (to, subject, { cc } = {}) => {
53
- let log = 'The following email retrieved and will be sent to trash:';
54
- log += `\n| To: ${to}`;
55
- cc ? log += `\n| Cc: ${cc}` : '';
56
- log += `\n| Subject: ${subject}`;
57
- };
58
-
59
- const getEmailTextInSubject = (recordCompanyName, emailType, isAfterUpdateRequirements = false, { requesterName = 'Default' } = {}) => {
60
- const subject = EMAIL_SUBJECT[emailType]({ recordCompanyName, requesterName });
61
-
62
- return isAfterUpdateRequirements ? `Updated Requirements - ${subject}` : subject;
63
- };
64
-
65
- const getMailActionButtonUrlRegex = () => {
66
- return /(https:\/\/[a-zA-Z0-9.].*[a-zA-Z.]+\/CheckCustomersInviteLinkJSON\?data=[^"]+)/g;
67
- };
68
-
69
- const getUnsubscribeButtonUrlRegex = () => {
70
- return /(\/[a-zA-Z0-9.].*[a-zA-Z.]+\/vendor-app\/email\/unsubscribe\?data=[^"]+)/g;
71
- };
72
-
73
- const getEncryptedDataFromLink = (link, { removeLastTwoCharts } = {}) => {
74
- const encryptedData = link.split('data=').pop();
75
- return removeLastTwoCharts ? encryptedData.slice(0, -2) : encryptedData;
76
- };
77
-
78
- module.exports = {
79
- recipientsMatchVerification,
80
- regexVerification,
81
- extractEmailFromNameAndEmailFormat,
82
- logRetrievedEmailInfo,
83
- getEmailTextInSubject,
84
- getMailActionButtonUrlRegex,
85
- getUnsubscribeButtonUrlRegex,
86
- getEncryptedDataFromLink
87
- };
1
+ const { EMAIL_SUBJECT } = require('../consts/consts');
2
+
3
+ //compare method for sorting with ignore caseSensitive
4
+ const compareFn = (a, b) => a.toLowerCase().localeCompare(b.toLowerCase());
5
+
6
+ const compareUnorderedArrays = (arr, other, { caseSensitive = true } = {}) => {
7
+ const isEachElementEqual = arr.sort(compareFn).every((mail, i) => {
8
+ if (caseSensitive) {
9
+ return mail === other.sort((compareFn))[i];
10
+ } else {
11
+ return mail.toLowerCase() === other.sort(compareFn)[i].toLowerCase();
12
+ }
13
+ });
14
+ return arr.length === other.length && isEachElementEqual;
15
+ };
16
+
17
+ const recipientsMatchVerification = (expectedRecipients, actualRecipients) => {
18
+ const caseSensitive = false;
19
+
20
+ return expectedRecipients.from.includes(actualRecipients.from) && // For some emails can be few sendor options (ex: branded emails)
21
+ compareUnorderedArrays(actualRecipients.to, expectedRecipients.to, { caseSensitive }) &&
22
+ compareUnorderedArrays(actualRecipients.cc, expectedRecipients.cc, { caseSensitive });
23
+ };
24
+
25
+ const regexVerification = (message, regex, { returnType } = {}) => {
26
+ const capturingGroupsArr = message.match(regex);
27
+
28
+ if (!capturingGroupsArr || capturingGroupsArr.length < 1) {
29
+ return null;
30
+ }
31
+
32
+ const capturingGroups = capturingGroupsArr[capturingGroupsArr.length - 1];
33
+
34
+ if (!capturingGroups || capturingGroups.length < 2) {
35
+ return null;
36
+ }
37
+
38
+ switch (returnType) {
39
+ case 'url':
40
+ return typeof capturingGroups === 'string' ? capturingGroups : capturingGroups[capturingGroups.length - 1];
41
+ case 'body':
42
+ return message;
43
+ default:
44
+ return 'Bad "returnType" argument';
45
+ }
46
+ };
47
+
48
+ const extractEmailFromNameAndEmailFormat = str => {
49
+ // In case the format is 'First Last <username@domain.com>' we will return username@domain.com only
50
+ return str.split('<').pop().split('>')[0];
51
+ };
52
+ const logRetrievedEmailInfo = (to, subject, { cc } = {}) => {
53
+ let log = 'The following email retrieved and will be sent to trash:';
54
+ log += `\n| To: ${to}`;
55
+ cc ? log += `\n| Cc: ${cc}` : '';
56
+ log += `\n| Subject: ${subject}`;
57
+ };
58
+
59
+ const getEmailTextInSubject = (recordCompanyName, emailType, isAfterUpdateRequirements = false, { requesterName = 'Default' } = {}) => {
60
+ const subject = EMAIL_SUBJECT[emailType]({ recordCompanyName, requesterName });
61
+
62
+ return isAfterUpdateRequirements ? `Updated Requirements - ${subject}` : subject;
63
+ };
64
+
65
+ const getMailActionButtonUrlRegex = () => {
66
+ return /(https:\/\/[a-zA-Z0-9.].*[a-zA-Z.]+\/CheckCustomersInviteLinkJSON\?data=[^"]+)/g;
67
+ };
68
+
69
+ const getUnsubscribeButtonUrlRegex = () => {
70
+ return /(\/[a-zA-Z0-9.].*[a-zA-Z.]+\/vendor-app\/email\/unsubscribe\?data=[^"]+)/g;
71
+ };
72
+
73
+ const getEncryptedDataFromLink = (link, { removeLastTwoCharts } = {}) => {
74
+ const encryptedData = link.split('data=').pop();
75
+ return removeLastTwoCharts ? encryptedData.slice(0, -2) : encryptedData;
76
+ };
77
+
78
+ module.exports = {
79
+ recipientsMatchVerification,
80
+ regexVerification,
81
+ extractEmailFromNameAndEmailFormat,
82
+ logRetrievedEmailInfo,
83
+ getEmailTextInSubject,
84
+ getMailActionButtonUrlRegex,
85
+ getUnsubscribeButtonUrlRegex,
86
+ getEncryptedDataFromLink
87
+ };
@@ -1,26 +1,26 @@
1
- const requests = require('../../../../common/requests/cookieAuth/requests');
2
- const { backendUrl } = require('../../../../env').getEnv();
3
-
4
- const Endpoints = {
5
- getCustomizationsByAccountId: accountId => `${backendUrl}/saas/email-customizations?accountId=${accountId}`,
6
- restoreDefaultById: id => `${backendUrl}/saas/email-customization/${id}/restore?version=DEFAULT`,
7
- deletePermanentlyById: id => `${backendUrl}/saas/email-customization/${id}/permanently`
8
- };
9
-
10
- const getEmailCustomizationsByAccountId = (accountId, context) => {
11
- return requests.getRequestHandler(Endpoints.getCustomizationsByAccountId(accountId), {}, context);
12
- };
13
-
14
- const restoreDefaultById = (id, context) => {
15
- return requests.postRequestHandler(Endpoints.restoreDefaultById(id), {}, context);
16
- };
17
-
18
- const deleteEmailCustomizationPermanentlyById = (id, context) => {
19
- return requests.deleteRequestHandler(Endpoints.deletePermanentlyById(id), context);
20
- };
21
-
22
- module.exports = {
23
- getEmailCustomizationsByAccountId,
24
- restoreDefaultById,
25
- deleteEmailCustomizationPermanentlyById
26
- };
1
+ const requests = require('../../../../common/requests/cookieAuth/requests');
2
+ const { backendUrl } = require('../../../../env').getEnv();
3
+
4
+ const Endpoints = {
5
+ getCustomizationsByAccountId: accountId => `${backendUrl}/saas/email-customizations?accountId=${accountId}`,
6
+ restoreDefaultById: id => `${backendUrl}/saas/email-customization/${id}/restore?version=DEFAULT`,
7
+ deletePermanentlyById: id => `${backendUrl}/saas/email-customization/${id}/permanently`
8
+ };
9
+
10
+ const getEmailCustomizationsByAccountId = (accountId, context) => {
11
+ return requests.getRequestHandler(Endpoints.getCustomizationsByAccountId(accountId), {}, context);
12
+ };
13
+
14
+ const restoreDefaultById = (id, context) => {
15
+ return requests.postRequestHandler(Endpoints.restoreDefaultById(id), {}, context);
16
+ };
17
+
18
+ const deleteEmailCustomizationPermanentlyById = (id, context) => {
19
+ return requests.deleteRequestHandler(Endpoints.deletePermanentlyById(id), context);
20
+ };
21
+
22
+ module.exports = {
23
+ getEmailCustomizationsByAccountId,
24
+ restoreDefaultById,
25
+ deleteEmailCustomizationPermanentlyById
26
+ };
@@ -1,50 +1,50 @@
1
- const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
2
-
3
- const emailCustomizationApi = require('./email.customization.api');
4
-
5
- const getEmailCustomizationsByAccountId = async (accountId, context) => {
6
- const response = await emailCustomizationApi.getEmailCustomizationsByAccountId(accountId, context);
7
-
8
- if (response.status !== httpResponseStatusCodes.OK) {
9
- throw new Error(`Failed to get email customization by account id ${accountId}`);
10
- }
11
-
12
- return response.data;
13
- };
14
-
15
- const restoreDefaultById = async (id, context) => {
16
- const response = await emailCustomizationApi.restoreDefaultById(id, context);
17
-
18
- if (response.status !== httpResponseStatusCodes.OK) {
19
- throw new Error('Failed to restore email customization to default');
20
- }
21
-
22
- return response;
23
- };
24
-
25
- const deleteEmailCustomizationPermanentlyById = async (id, context) => {
26
- const response = await emailCustomizationApi.deleteEmailCustomizationPermanentlyById(id, context);
27
-
28
- if (response.status !== httpResponseStatusCodes.OK) {
29
- throw new Error(`Failed to delete email customization by id ${id}`);
30
- }
31
-
32
- return response;
33
- };
34
-
35
- const restoreAllEmailCustomizationsInAccount = async (accountId, context) => {
36
- const customizationList = await getEmailCustomizationsByAccountId(accountId, context);
37
-
38
- for (const customization of customizationList) {
39
- if (customization.id) {
40
- await restoreDefaultById(customization.id, context);
41
- }
42
- }
43
- };
44
-
45
- module.exports = {
46
- getEmailCustomizationsByAccountId,
47
- restoreDefaultById,
48
- deleteEmailCustomizationPermanentlyById,
49
- restoreAllEmailCustomizationsInAccount
50
- };
1
+ const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
2
+
3
+ const emailCustomizationApi = require('./email.customization.api');
4
+
5
+ const getEmailCustomizationsByAccountId = async (accountId, context) => {
6
+ const response = await emailCustomizationApi.getEmailCustomizationsByAccountId(accountId, context);
7
+
8
+ if (response.status !== httpResponseStatusCodes.OK) {
9
+ throw new Error(`Failed to get email customization by account id ${accountId}`);
10
+ }
11
+
12
+ return response.data;
13
+ };
14
+
15
+ const restoreDefaultById = async (id, context) => {
16
+ const response = await emailCustomizationApi.restoreDefaultById(id, context);
17
+
18
+ if (response.status !== httpResponseStatusCodes.OK) {
19
+ throw new Error('Failed to restore email customization to default');
20
+ }
21
+
22
+ return response;
23
+ };
24
+
25
+ const deleteEmailCustomizationPermanentlyById = async (id, context) => {
26
+ const response = await emailCustomizationApi.deleteEmailCustomizationPermanentlyById(id, context);
27
+
28
+ if (response.status !== httpResponseStatusCodes.OK) {
29
+ throw new Error(`Failed to delete email customization by id ${id}`);
30
+ }
31
+
32
+ return response;
33
+ };
34
+
35
+ const restoreAllEmailCustomizationsInAccount = async (accountId, context) => {
36
+ const customizationList = await getEmailCustomizationsByAccountId(accountId, context);
37
+
38
+ for (const customization of customizationList) {
39
+ if (customization.id) {
40
+ await restoreDefaultById(customization.id, context);
41
+ }
42
+ }
43
+ };
44
+
45
+ module.exports = {
46
+ getEmailCustomizationsByAccountId,
47
+ restoreDefaultById,
48
+ deleteEmailCustomizationPermanentlyById,
49
+ restoreAllEmailCustomizationsInAccount
50
+ };
@@ -1,3 +1,3 @@
1
- const services = require('./api/email.customization.service');
2
-
3
- module.exports = { services };
1
+ const services = require('./api/email.customization.service');
2
+
3
+ module.exports = { services };
@@ -1,95 +1,95 @@
1
- const requests = require('../../../../common/requests/cookieAuth/requests');
2
- const internalRequests = require('../../../../common/requests/internalAuth/requests');
3
-
4
- const { nodeBackendUrl, backendUrl } = require('../../../../env').getEnv();
5
-
6
- const Endpoints = {
7
- createGlobalRecord: `${nodeBackendUrl}/global-record`,
8
- getGlobalRecordById: id => `${nodeBackendUrl}/global-record/id/${id}`,
9
- getAllGlobalRecords: (pageNumber, itemsInPage) => `${nodeBackendUrl}/global-record/all-global-records/${pageNumber}/items/${itemsInPage}`,
10
- getGlobalRecordServiceAreas: `${backendUrl}/saas/global-record/service-areas`,
11
- deleteGlobalRecord: id => `${nodeBackendUrl}/global-record/id/${id}`,
12
- updateGlobalRecord: id => `${nodeBackendUrl}/global-record/id/${id}`,
13
- getGlobalRecordProfile: id => `${nodeBackendUrl}/global-record/record-profile/id/${id}`,
14
- getGlobalRecordByPolicyNumber: policyNumber => `${nodeBackendUrl}/global-record/policyNumber/${policyNumber}`,
15
- publishGlobalRecord: `${backendUrl}/saas/global-record/publish`,
16
- getGlobalRecordLinkedRecords: id => `${backendUrl}/saas/global-record/${id}/linked-records`,
17
- splitToNewGlobalRecord: `${backendUrl}/saas/global-record/split-to-new`,
18
- splitToExistingRecord: `${backendUrl}/saas/global-record/split-to-existing`,
19
- getGlobalByRecordId: recordId => `${backendUrl}/saas/global-record/${recordId}`,
20
- dismiss: `${backendUrl}/saas/global-record/dismiss`
21
- };
22
-
23
- const getGlobalRecord = id => {
24
- return internalRequests.getRequestHandler(Endpoints.getGlobalRecordById(id));
25
- };
26
-
27
- const createGlobalRecord = globalRecord => {
28
- return internalRequests.postRequestHandler(Endpoints.createGlobalRecord, globalRecord);
29
- };
30
-
31
- const getAllGlobalRecords = (data, pageNumber, itemsInPage, context) => {
32
- return requests.postRequestHandler(Endpoints.getAllGlobalRecords(pageNumber, itemsInPage), data, context);
33
- };
34
-
35
- const deleteGlobalRecord = (id, globalRecordModel) => {
36
- return internalRequests.deleteRequestHandler(Endpoints.deleteGlobalRecord(id), {}, {}, globalRecordModel);
37
- };
38
-
39
- const updateGlobalRecord = (id, updatedGlobalRecord) => {
40
- return internalRequests.putRequestHandler(Endpoints.updateGlobalRecord(id), updatedGlobalRecord);
41
- };
42
-
43
- const getGlobalRecordServiceAreas = context => {
44
- return requests.getRequestHandler(Endpoints.getGlobalRecordServiceAreas, {}, context);
45
- };
46
-
47
- const getGlobalRecordProfile = (id, context) => {
48
- return requests.getRequestHandler(Endpoints.getGlobalRecordProfile(id), {}, context);
49
- };
50
-
51
- const publishGlobalRecord = (globalRecordDetails, context) => {
52
- return requests.putRequestHandler(Endpoints.publishGlobalRecord, globalRecordDetails, context);
53
- };
54
-
55
- const getGlobalRecordByPolicyNumber = policyNumber => {
56
- return internalRequests.getRequestHandler(Endpoints.getGlobalRecordByPolicyNumber(policyNumber));
57
- };
58
-
59
- const getGlobalRecordLinkedRecords = (id, context) => {
60
- return requests.getRequestHandler(Endpoints.getGlobalRecordLinkedRecords(id), {}, context);
61
- };
62
-
63
- const splitToNewGlobalRecord = ({ recordId, glPolicyNumber }, context) => {
64
- return requests.postRequestHandler(Endpoints.splitToNewGlobalRecord, { recordId, glPolicyNumber }, context);
65
- };
66
-
67
- const splitToExistGlobalRecord = ({ recordId, glPolicyNumber, newGlobalRecordId }, context) => {
68
- return requests.putRequestHandler(Endpoints.splitToExistingRecord, { recordId, glPolicyNumber, newGlobalRecordId }, context);
69
- };
70
-
71
- const getGlobalRecordByRecordId = (recordId, context) => {
72
- return requests.getRequestHandler(Endpoints.getGlobalByRecordId(recordId), {}, context);
73
- };
74
-
75
- const dismissGlobalChanges = (id, context) => {
76
- const body = { id, userName: 'Main Operator' };
77
- return requests.putRequestHandler(Endpoints.dismiss, body, context);
78
- };
79
-
80
- module.exports = {
81
- createGlobalRecord,
82
- getGlobalRecord,
83
- getAllGlobalRecords,
84
- getGlobalRecordServiceAreas,
85
- deleteGlobalRecord,
86
- updateGlobalRecord,
87
- getGlobalRecordProfile,
88
- getGlobalRecordByPolicyNumber,
89
- publishGlobalRecord,
90
- getGlobalRecordLinkedRecords,
91
- splitToNewGlobalRecord,
92
- splitToExistGlobalRecord,
93
- getGlobalRecordByRecordId,
94
- dismissGlobalChanges
95
- };
1
+ const requests = require('../../../../common/requests/cookieAuth/requests');
2
+ const internalRequests = require('../../../../common/requests/internalAuth/requests');
3
+
4
+ const { nodeBackendUrl, backendUrl } = require('../../../../env').getEnv();
5
+
6
+ const Endpoints = {
7
+ createGlobalRecord: `${nodeBackendUrl}/global-record`,
8
+ getGlobalRecordById: id => `${nodeBackendUrl}/global-record/id/${id}`,
9
+ getAllGlobalRecords: (pageNumber, itemsInPage) => `${nodeBackendUrl}/global-record/all-global-records/${pageNumber}/items/${itemsInPage}`,
10
+ getGlobalRecordServiceAreas: `${backendUrl}/saas/global-record/service-areas`,
11
+ deleteGlobalRecord: id => `${nodeBackendUrl}/global-record/id/${id}`,
12
+ updateGlobalRecord: id => `${nodeBackendUrl}/global-record/id/${id}`,
13
+ getGlobalRecordProfile: id => `${nodeBackendUrl}/global-record/record-profile/id/${id}`,
14
+ getGlobalRecordByPolicyNumber: policyNumber => `${nodeBackendUrl}/global-record/policyNumber/${policyNumber}`,
15
+ publishGlobalRecord: `${backendUrl}/saas/global-record/publish`,
16
+ getGlobalRecordLinkedRecords: id => `${backendUrl}/saas/global-record/${id}/linked-records`,
17
+ splitToNewGlobalRecord: `${backendUrl}/saas/global-record/split-to-new`,
18
+ splitToExistingRecord: `${backendUrl}/saas/global-record/split-to-existing`,
19
+ getGlobalByRecordId: recordId => `${backendUrl}/saas/global-record/${recordId}`,
20
+ dismiss: `${backendUrl}/saas/global-record/dismiss`
21
+ };
22
+
23
+ const getGlobalRecord = id => {
24
+ return internalRequests.getRequestHandler(Endpoints.getGlobalRecordById(id));
25
+ };
26
+
27
+ const createGlobalRecord = globalRecord => {
28
+ return internalRequests.postRequestHandler(Endpoints.createGlobalRecord, globalRecord);
29
+ };
30
+
31
+ const getAllGlobalRecords = (data, pageNumber, itemsInPage, context) => {
32
+ return requests.postRequestHandler(Endpoints.getAllGlobalRecords(pageNumber, itemsInPage), data, context);
33
+ };
34
+
35
+ const deleteGlobalRecord = (id, globalRecordModel) => {
36
+ return internalRequests.deleteRequestHandler(Endpoints.deleteGlobalRecord(id), {}, {}, globalRecordModel);
37
+ };
38
+
39
+ const updateGlobalRecord = (id, updatedGlobalRecord) => {
40
+ return internalRequests.putRequestHandler(Endpoints.updateGlobalRecord(id), updatedGlobalRecord);
41
+ };
42
+
43
+ const getGlobalRecordServiceAreas = context => {
44
+ return requests.getRequestHandler(Endpoints.getGlobalRecordServiceAreas, {}, context);
45
+ };
46
+
47
+ const getGlobalRecordProfile = (id, context) => {
48
+ return requests.getRequestHandler(Endpoints.getGlobalRecordProfile(id), {}, context);
49
+ };
50
+
51
+ const publishGlobalRecord = (globalRecordDetails, context) => {
52
+ return requests.putRequestHandler(Endpoints.publishGlobalRecord, globalRecordDetails, context);
53
+ };
54
+
55
+ const getGlobalRecordByPolicyNumber = policyNumber => {
56
+ return internalRequests.getRequestHandler(Endpoints.getGlobalRecordByPolicyNumber(policyNumber));
57
+ };
58
+
59
+ const getGlobalRecordLinkedRecords = (id, context) => {
60
+ return requests.getRequestHandler(Endpoints.getGlobalRecordLinkedRecords(id), {}, context);
61
+ };
62
+
63
+ const splitToNewGlobalRecord = ({ recordId, glPolicyNumber }, context) => {
64
+ return requests.postRequestHandler(Endpoints.splitToNewGlobalRecord, { recordId, glPolicyNumber }, context);
65
+ };
66
+
67
+ const splitToExistGlobalRecord = ({ recordId, glPolicyNumber, newGlobalRecordId }, context) => {
68
+ return requests.putRequestHandler(Endpoints.splitToExistingRecord, { recordId, glPolicyNumber, newGlobalRecordId }, context);
69
+ };
70
+
71
+ const getGlobalRecordByRecordId = (recordId, context) => {
72
+ return requests.getRequestHandler(Endpoints.getGlobalByRecordId(recordId), {}, context);
73
+ };
74
+
75
+ const dismissGlobalChanges = (id, context) => {
76
+ const body = { id, userName: 'Main Operator' };
77
+ return requests.putRequestHandler(Endpoints.dismiss, body, context);
78
+ };
79
+
80
+ module.exports = {
81
+ createGlobalRecord,
82
+ getGlobalRecord,
83
+ getAllGlobalRecords,
84
+ getGlobalRecordServiceAreas,
85
+ deleteGlobalRecord,
86
+ updateGlobalRecord,
87
+ getGlobalRecordProfile,
88
+ getGlobalRecordByPolicyNumber,
89
+ publishGlobalRecord,
90
+ getGlobalRecordLinkedRecords,
91
+ splitToNewGlobalRecord,
92
+ splitToExistGlobalRecord,
93
+ getGlobalRecordByRecordId,
94
+ dismissGlobalChanges
95
+ };