@getjones/test-infra 4.5.11 → 4.5.12

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/saas/internal-api/accountDirectory/api/accountDirectory.api.js +50 -50
  46. package/src/saas/internal-api/accountDirectory/api/accountDirectory.service.js +182 -182
  47. package/src/saas/internal-api/accountDirectory/index.js +4 -4
  48. package/src/saas/internal-api/accountDirectory/models/accountDirectory.model.js +40 -40
  49. package/src/saas/internal-api/accounts/api/core/accounts.core.api.js +35 -35
  50. package/src/saas/internal-api/accounts/api/core/accounts.core.service.js +93 -93
  51. package/src/saas/internal-api/accounts/api/emailCustomization/accounts.email.customizations.api.js +29 -29
  52. package/src/saas/internal-api/accounts/api/emailCustomization/accounts.email.customizations.service.js +61 -61
  53. package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.api.js +48 -48
  54. package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.service.js +74 -74
  55. package/src/saas/internal-api/accounts/api/settings/settings.api.js +21 -21
  56. package/src/saas/internal-api/accounts/api/settings/settings.service.js +41 -41
  57. package/src/saas/internal-api/accounts/consts/consts.js +8 -8
  58. package/src/saas/internal-api/accounts/index.js +22 -22
  59. package/src/saas/internal-api/accounts/models/core/create.account.model.js +16 -16
  60. package/src/saas/internal-api/accounts/models/settings/update.settings.model.js +53 -53
  61. package/src/saas/internal-api/accounts/utils/utils.js +61 -61
  62. package/src/saas/internal-api/agreement/api/agreement.api.js +39 -39
  63. package/src/saas/internal-api/agreement/api/agreement.service.js +121 -121
  64. package/src/saas/internal-api/agreement/consts/consts.js +11 -11
  65. package/src/saas/internal-api/agreement/index.js +12 -12
  66. package/src/saas/internal-api/agreement/models/create.agreement.model.js +12 -12
  67. package/src/saas/internal-api/agreement/models/createAgreementByAuditorModel.js +11 -11
  68. package/src/saas/internal-api/agreement/models/createAgreementByPMModel.js +13 -13
  69. package/src/saas/internal-api/auditCustomerRules/api/customer.rules.api.js +43 -43
  70. package/src/saas/internal-api/auditCustomerRules/api/customer.rules.service.js +105 -105
  71. package/src/saas/internal-api/auditCustomerRules/consts/customer.rule.js +11 -11
  72. package/src/saas/internal-api/auditCustomerRules/index.js +6 -6
  73. package/src/saas/internal-api/auditCustomerRules/models/customer.rule.model.js +46 -46
  74. package/src/saas/internal-api/auditCustomerRules/utils/customer.rule.util.js +19 -19
  75. package/src/saas/internal-api/auditNotes/api/audit.notes.api.js +40 -40
  76. package/src/saas/internal-api/auditNotes/api/audit.notes.service.js +115 -115
  77. package/src/saas/internal-api/auditNotes/index.js +4 -4
  78. package/src/saas/internal-api/auditNotes/models/audit.note.model.js +30 -30
  79. package/src/saas/internal-api/auth/api/auth.api.js +27 -27
  80. package/src/saas/internal-api/auth/api/auth.service.js +90 -90
  81. package/src/saas/internal-api/auth/index.js +3 -3
  82. package/src/saas/internal-api/coi/api/coi.api.js +58 -58
  83. package/src/saas/internal-api/coi/api/coi.service.js +61 -61
  84. package/src/saas/internal-api/coi/consts/hashes.js +5 -5
  85. package/src/saas/internal-api/coi/consts/uploaderTypes.js +5 -5
  86. package/src/saas/internal-api/coi/index.js +14 -14
  87. package/src/saas/internal-api/coi/models/Combine.last.two.cois.model.js +25 -25
  88. package/src/saas/internal-api/coi/models/submit.coi.model.js +19 -19
  89. package/src/saas/internal-api/coi/utils/utils.js +117 -117
  90. package/src/saas/internal-api/compliance/api/amBestRating/am.best.rating.api.js +12 -12
  91. package/src/saas/internal-api/compliance/api/amBestRating/am.best.rating.service.js +14 -14
  92. package/src/saas/internal-api/compliance/api/audit/audit.api.js +112 -106
  93. package/src/saas/internal-api/compliance/api/audit/audit.service.js +318 -307
  94. package/src/saas/internal-api/compliance/api/convert/convert.api.js +17 -17
  95. package/src/saas/internal-api/compliance/api/convert/convert.service.js +11 -11
  96. package/src/saas/internal-api/compliance/api/coverage/coverage.api.js +33 -33
  97. package/src/saas/internal-api/compliance/api/coverage/coverage.service.js +46 -46
  98. package/src/saas/internal-api/compliance/api/overrideGap/override.gap.api.js +38 -38
  99. package/src/saas/internal-api/compliance/api/overrideGap/override.gap.service.js +189 -189
  100. package/src/saas/internal-api/compliance/consts/audit.js +113 -113
  101. package/src/saas/internal-api/compliance/index.js +36 -36
  102. package/src/saas/internal-api/compliance/models/audit/audit.model.js +96 -96
  103. package/src/saas/internal-api/compliance/models/waive/waive.model.js +49 -49
  104. package/src/saas/internal-api/compliance/utils/auditUtil.js +269 -269
  105. package/src/saas/internal-api/compliance/utils/coverageUtil.js +45 -45
  106. package/src/saas/internal-api/contractors/api/contractors.api.js +209 -209
  107. package/src/saas/internal-api/contractors/api/contractors.service.js +361 -361
  108. package/src/saas/internal-api/contractors/consts/consts.js +6 -6
  109. package/src/saas/internal-api/contractors/index.js +8 -8
  110. package/src/saas/internal-api/contractors/models/assign.requirement.model.js +10 -10
  111. package/src/saas/internal-api/contractors/models/edit.contractor.model.js +73 -73
  112. package/src/saas/internal-api/contractors/models/link.request.model.js +10 -10
  113. package/src/saas/internal-api/contractors/models/subscription.contractor.model.js +13 -13
  114. package/src/saas/internal-api/contractors/models/verification.contractor.model.js +27 -27
  115. package/src/saas/internal-api/contractors/utils.js +25 -25
  116. package/src/saas/internal-api/dashboard/api/recordList.api.js +38 -38
  117. package/src/saas/internal-api/dashboard/api/recordList.service.js +60 -60
  118. package/src/saas/internal-api/dashboard/index.js +5 -5
  119. package/src/saas/internal-api/dashboard/models/dashboard.filter.criteria.model.js +38 -38
  120. package/src/saas/internal-api/dbEmails/api/db.emails.api.js +25 -25
  121. package/src/saas/internal-api/dbEmails/api/db.emails.service.js +156 -156
  122. package/src/saas/internal-api/dbEmails/consts/consts.js +56 -56
  123. package/src/saas/internal-api/dbEmails/index.js +6 -6
  124. package/src/saas/internal-api/dbEmails/models/db.emails.model.js +22 -22
  125. package/src/saas/internal-api/dbEmails/utils/util.js +87 -87
  126. package/src/saas/internal-api/emailCustomization/api/email.customization.api.js +26 -26
  127. package/src/saas/internal-api/emailCustomization/api/email.customization.service.js +50 -50
  128. package/src/saas/internal-api/emailCustomization/index.js +3 -3
  129. package/src/saas/internal-api/globalRecord/api/global.record.api.js +95 -95
  130. package/src/saas/internal-api/globalRecord/api/global.record.service.js +112 -112
  131. package/src/saas/internal-api/globalRecord/consts.js +20 -20
  132. package/src/saas/internal-api/globalRecord/index.js +6 -6
  133. package/src/saas/internal-api/globalRecord/models/global.record.model.js +60 -60
  134. package/src/saas/internal-api/globalRecord/utils/util.js +161 -161
  135. package/src/saas/internal-api/homepageCharts/api/charts.api.js +12 -12
  136. package/src/saas/internal-api/homepageCharts/api/charts.service.js +7 -7
  137. package/src/saas/internal-api/homepageCharts/index.js +3 -3
  138. package/src/saas/internal-api/jonesNetworkTab/api/jones.network.tab.api.js +14 -14
  139. package/src/saas/internal-api/jonesNetworkTab/api/jones.network.tab.service.js +16 -16
  140. package/src/saas/internal-api/jonesNetworkTab/index.js +3 -3
  141. package/src/saas/internal-api/notificationCenter/api/notification.center.api.js +32 -32
  142. package/src/saas/internal-api/notificationCenter/api/notification.center.service.js +49 -49
  143. package/src/saas/internal-api/notificationCenter/index.js +3 -3
  144. package/src/saas/internal-api/policyFile/api/policy.file.api.js +43 -43
  145. package/src/saas/internal-api/policyFile/api/policy.file.service.js +117 -117
  146. package/src/saas/internal-api/policyFile/consts.js +21 -21
  147. package/src/saas/internal-api/policyFile/index.js +11 -11
  148. package/src/saas/internal-api/policyFile/models/create.policy.file.model.js +11 -11
  149. package/src/saas/internal-api/policyFile/models/set.publish.flag.to.policy.model.js +13 -13
  150. package/src/saas/internal-api/projects/api/core/projects.api.js +39 -39
  151. package/src/saas/internal-api/projects/api/core/projects.service.js +77 -77
  152. package/src/saas/internal-api/projects/api/settings/project.settings.api.js +18 -18
  153. package/src/saas/internal-api/projects/api/settings/project.settings.service.js +35 -35
  154. package/src/saas/internal-api/projects/consts/defaultProject.js +3 -3
  155. package/src/saas/internal-api/projects/index.js +24 -24
  156. package/src/saas/internal-api/projects/models/core/create.project.model.js +41 -41
  157. package/src/saas/internal-api/projects/models/core/update.project.model.js +47 -47
  158. package/src/saas/internal-api/projects/models/settings/update.project.settings.model.js +40 -40
  159. package/src/saas/internal-api/projects/utils/utils.js +155 -155
  160. package/src/saas/internal-api/recordHub/api/record.hub.api.js +14 -14
  161. package/src/saas/internal-api/recordHub/api/record.hub.service.js +32 -32
  162. package/src/saas/internal-api/recordHub/index.js +3 -3
  163. package/src/saas/internal-api/recordNotes/api/record.notes.api.js +38 -38
  164. package/src/saas/internal-api/recordNotes/api/record.notes.service.js +56 -56
  165. package/src/saas/internal-api/recordNotes/api/record.notes.utils.js +12 -12
  166. package/src/saas/internal-api/recordNotes/index.js +3 -3
  167. package/src/saas/internal-api/reports/api/reports.api.js +62 -62
  168. package/src/saas/internal-api/reports/api/reports.service.js +79 -79
  169. package/src/saas/internal-api/reports/consts/consts.js +74 -74
  170. package/src/saas/internal-api/reports/index.js +15 -15
  171. package/src/saas/internal-api/reports/models/report.model.js +27 -27
  172. package/src/saas/internal-api/requests/api/requests.api.js +132 -132
  173. package/src/saas/internal-api/requests/api/requests.service.js +312 -312
  174. package/src/saas/internal-api/requests/index.js +21 -21
  175. package/src/saas/internal-api/requests/models/create.request.model.js +36 -36
  176. package/src/saas/internal-api/requests/models/draft.request.criteria.model.js +18 -18
  177. package/src/saas/internal-api/requests/models/draft.request.report.model.js +14 -14
  178. package/src/saas/internal-api/requests/models/edit.request.model.js +31 -31
  179. package/src/saas/internal-api/requests/models/homepageRequestCriteriaModel.js +19 -19
  180. package/src/saas/internal-api/requests/models/requestListCriteriaModel.js +17 -17
  181. package/src/saas/internal-api/requests/models/tenant.request.model.js +9 -9
  182. package/src/saas/internal-api/requests/utils.js +16 -16
  183. package/src/saas/internal-api/requestsTable/api/requests.table.api.js +20 -20
  184. package/src/saas/internal-api/requestsTable/api/requests.table.service.js +14 -14
  185. package/src/saas/internal-api/requestsTable/index.js +3 -3
  186. package/src/saas/internal-api/requirements/api/requirements.api.js +57 -57
  187. package/src/saas/internal-api/requirements/api/requirements.service.js +184 -184
  188. package/src/saas/internal-api/requirements/consts/attributeTypes.json +8 -8
  189. package/src/saas/internal-api/requirements/consts/consts.js +6 -6
  190. package/src/saas/internal-api/requirements/index.js +10 -10
  191. package/src/saas/internal-api/requirements/models/create.requirement.model.js +17 -17
  192. package/src/saas/internal-api/requirements/models/policy.model.js +35 -35
  193. package/src/saas/internal-api/requirements/models/update.requirement.model.js +19 -19
  194. package/src/saas/internal-api/requirements/utils/utils.js +129 -129
  195. package/src/saas/internal-api/serviceArea/api/coordinates.api.js +12 -12
  196. package/src/saas/internal-api/serviceArea/api/coordinates.service.js +7 -7
  197. package/src/saas/internal-api/serviceArea/index.js +4 -4
  198. package/src/saas/internal-api/serviceArea/utils/utils.js +8 -8
  199. package/src/saas/internal-api/tabs/api/tabs.api.js +32 -32
  200. package/src/saas/internal-api/tabs/api/tabs.service.js +60 -60
  201. package/src/saas/internal-api/tabs/index.js +3 -3
  202. package/src/saas/internal-api/tabs/models/tabs.model.js +19 -19
  203. package/src/saas/internal-api/thread-scheduler/runner.js +55 -55
  204. package/src/saas/internal-api/uploadFiles/api/upload.file.api.js +43 -43
  205. package/src/saas/internal-api/uploadFiles/api/upload.file.service.js +107 -107
  206. package/src/saas/internal-api/uploadFiles/consts.js +12 -12
  207. package/src/saas/internal-api/uploadFiles/index.js +5 -5
  208. package/src/saas/internal-api/users/api/tenantApp/tenant.app.api.js +38 -38
  209. package/src/saas/internal-api/users/api/tenantApp/tenant.app.service.js +108 -108
  210. package/src/saas/internal-api/users/api/users.api.js +127 -127
  211. package/src/saas/internal-api/users/api/users.service.js +258 -258
  212. package/src/saas/internal-api/users/index.js +16 -16
  213. package/src/saas/internal-api/users/models/create.inner.system.user.model.js +18 -18
  214. package/src/saas/internal-api/users/models/notification.settings.model.js +12 -12
  215. package/src/saas/internal-api/users/models/tenent.user.model.js +11 -11
  216. package/src/saas/internal-api/users/models/users.model.js +43 -43
  217. package/src/saas/internal-api/users/utils/util.js +39 -39
  218. package/src/saas/internal-api/vendorProfile/api/vendor.profile.api.js +26 -26
  219. package/src/saas/internal-api/vendorProfile/api/vendor.profile.service.js +19 -19
  220. package/src/saas/internal-api/vendorProfile/index.js +3 -3
  221. package/src/saas/openapi/accounts/accounts.api.js +17 -17
  222. package/src/saas/openapi/accounts/accounts.service.js +11 -11
  223. package/src/saas/openapi/coi/coi.api.js +30 -30
  224. package/src/saas/openapi/coi/coi.service.js +43 -43
  225. package/src/saas/openapi/projects/projects.api.js +83 -83
  226. package/src/saas/openapi/projects/projects.service.js +64 -64
  227. package/src/saas/openapi/requests/index.js +7 -7
  228. package/src/saas/openapi/requests/models/invite.request.model.js +40 -40
  229. package/src/saas/openapi/requests/models/update.request.model.js +35 -35
  230. package/src/saas/openapi/requests/requests.api.js +93 -93
  231. package/src/saas/openapi/requests/requests.service.js +94 -94
  232. package/src/saas/openapi/requirements/index.js +6 -6
  233. package/src/saas/openapi/requirements/models/copy.requirement.model.js +10 -10
  234. package/src/saas/openapi/requirements/requirements.api.js +41 -41
  235. package/src/saas/openapi/requirements/requirements.service.js +49 -49
  236. package/src/saas/openapi/tabs/index.js +6 -6
  237. package/src/saas/openapi/tabs/models/create.tab.model.js +6 -6
  238. package/src/saas/openapi/tabs/tabs.api.js +27 -27
  239. package/src/saas/openapi/tabs/tabs.service.js +19 -19
  240. package/src/saas/openapi/users/user.model.js +10 -10
  241. package/src/saas/openapi/users/users.api.js +33 -33
  242. package/src/saas/openapi/users/users.service.js +51 -51
  243. package/tests/env.test.js +40 -40
  244. package/tests/validation.test.js +83 -83
  245. package/src/resources/virusFile.pdf +0 -0
@@ -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
+ };