@getjones/test-infra 3.0.0 → 3.0.2

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 (210) 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 +123 -102
  5. package/src/common/consts/activationStatuses.js +6 -0
  6. package/src/common/consts/constantsForRecordsSortingAndFilters.js +40 -0
  7. package/src/common/consts/dashboardCharts.js +18 -18
  8. package/src/common/consts/projectSettings.js +6 -0
  9. package/src/common/consts/recordTypes.js +5 -5
  10. package/src/common/consts/s3FileTypes.js +12 -12
  11. package/src/common/consts/userTypes.js +8 -8
  12. package/src/common/errorCodes.js +3 -0
  13. package/src/common/httpResponseStatusCodes.json +11 -11
  14. package/src/common/requests/apiKeyAuth/requests.js +44 -44
  15. package/src/common/requests/cookieAuth/requests.js +40 -40
  16. package/src/common/requests/internalAuth/requests.js +48 -48
  17. package/src/common/requests/requestHandlers.js +78 -78
  18. package/src/common/utils/complianceUtil.js +83 -83
  19. package/src/common/utils/configsUtil.js +22 -22
  20. package/src/common/utils/dataTypeUtils.js +41 -41
  21. package/src/common/utils/numberUtils.js +22 -22
  22. package/src/common/utils/objectUtils.js +7 -7
  23. package/src/common/utils/timeUtils.js +177 -177
  24. package/src/common/validations/errorValidation.js +16 -16
  25. package/src/common/validations/typeValidations.js +36 -36
  26. package/src/defaults/configs/auditConfigs.js +91 -91
  27. package/src/defaults/configs/coverage.js +227 -227
  28. package/src/defaults/configs/polices.js +64 -64
  29. package/src/defaults/configs/requirement.js +32 -32
  30. package/src/defaults/index.js +6 -6
  31. package/src/env.js +57 -57
  32. package/src/factory/globalRecord/globalRecord.js +70 -70
  33. package/src/factory/index.js +8 -8
  34. package/src/factory/records/records.js +169 -147
  35. package/src/factory/users/users.js +77 -77
  36. package/src/index.js +91 -91
  37. package/src/saas/internal-api/accounts/api/core/accounts.core.api.js +35 -35
  38. package/src/saas/internal-api/accounts/api/core/accounts.core.service.js +93 -93
  39. package/src/saas/internal-api/accounts/api/emailCustomization/accounts.email.customizations.api.js +29 -0
  40. package/src/saas/internal-api/accounts/api/emailCustomization/accounts.email.customizations.service.js +61 -0
  41. package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.api.js +48 -48
  42. package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.service.js +74 -74
  43. package/src/saas/internal-api/accounts/api/settings/settings.api.js +21 -21
  44. package/src/saas/internal-api/accounts/api/settings/settings.service.js +41 -41
  45. package/src/saas/internal-api/accounts/consts/consts.js +6 -6
  46. package/src/saas/internal-api/accounts/index.js +22 -20
  47. package/src/saas/internal-api/accounts/models/core/create.account.model.js +16 -16
  48. package/src/saas/internal-api/accounts/models/settings/update.settings.model.js +38 -38
  49. package/src/saas/internal-api/accounts/utils/utils.js +58 -58
  50. package/src/saas/internal-api/agreement/api/agreement.api.js +35 -35
  51. package/src/saas/internal-api/agreement/api/agreement.service.js +81 -81
  52. package/src/saas/internal-api/agreement/consts/consts.js +8 -8
  53. package/src/saas/internal-api/agreement/index.js +11 -11
  54. package/src/saas/internal-api/agreement/models/create.agreement.model.js +12 -12
  55. package/src/saas/internal-api/auditCustomerRules/api/customer.rules.api.js +43 -43
  56. package/src/saas/internal-api/auditCustomerRules/api/customer.rules.service.js +105 -105
  57. package/src/saas/internal-api/auditCustomerRules/consts/customer.rule.js +11 -11
  58. package/src/saas/internal-api/auditCustomerRules/index.js +6 -6
  59. package/src/saas/internal-api/auditCustomerRules/models/customer.rule.model.js +46 -46
  60. package/src/saas/internal-api/auditCustomerRules/utils/customer.rule.util.js +19 -19
  61. package/src/saas/internal-api/auditNotes/api/audit.notes.api.js +40 -40
  62. package/src/saas/internal-api/auditNotes/api/audit.notes.service.js +115 -115
  63. package/src/saas/internal-api/auditNotes/index.js +4 -4
  64. package/src/saas/internal-api/auditNotes/models/audit.note.model.js +30 -30
  65. package/src/saas/internal-api/auth/api/auth.api.js +27 -27
  66. package/src/saas/internal-api/auth/api/auth.service.js +90 -90
  67. package/src/saas/internal-api/auth/index.js +3 -3
  68. package/src/saas/internal-api/coi/api/coi.api.js +40 -34
  69. package/src/saas/internal-api/coi/api/coi.service.js +26 -22
  70. package/src/saas/internal-api/coi/consts/hashes.js +4 -0
  71. package/src/saas/internal-api/coi/consts/uploaderTypes.js +5 -5
  72. package/src/saas/internal-api/coi/index.js +14 -13
  73. package/src/saas/internal-api/coi/models/submit.coi.model.js +9 -9
  74. package/src/saas/internal-api/coi/utils/utils.js +48 -48
  75. package/src/saas/internal-api/compliance/api/audit/audit.api.js +100 -100
  76. package/src/saas/internal-api/compliance/api/audit/audit.service.js +242 -230
  77. package/src/saas/internal-api/compliance/api/convert/convert.api.js +17 -17
  78. package/src/saas/internal-api/compliance/api/convert/convert.service.js +11 -11
  79. package/src/saas/internal-api/compliance/api/coverage/coverage.api.js +33 -33
  80. package/src/saas/internal-api/compliance/api/coverage/coverage.service.js +48 -48
  81. package/src/saas/internal-api/compliance/api/overrideGap/override.gap.api.js +33 -33
  82. package/src/saas/internal-api/compliance/api/overrideGap/override.gap.service.js +141 -141
  83. package/src/saas/internal-api/compliance/consts/audit.js +103 -103
  84. package/src/saas/internal-api/compliance/index.js +33 -33
  85. package/src/saas/internal-api/compliance/models/audit/audit.model.js +94 -94
  86. package/src/saas/internal-api/compliance/models/waive/waive.model.js +49 -49
  87. package/src/saas/internal-api/compliance/utils/auditUtil.js +222 -222
  88. package/src/saas/internal-api/compliance/utils/coverageUtil.js +40 -40
  89. package/src/saas/internal-api/contractors/api/contractors.api.js +185 -179
  90. package/src/saas/internal-api/contractors/api/contractors.service.js +259 -234
  91. package/src/saas/internal-api/contractors/consts/consts.js +6 -6
  92. package/src/saas/internal-api/contractors/index.js +8 -8
  93. package/src/saas/internal-api/contractors/models/assign.requirement.model.js +10 -10
  94. package/src/saas/internal-api/contractors/models/edit.contractor.model.js +62 -60
  95. package/src/saas/internal-api/contractors/models/link.request.model.js +10 -0
  96. package/src/saas/internal-api/contractors/models/verification.contractor.model.js +27 -27
  97. package/src/saas/internal-api/contractors/utils.js +25 -25
  98. package/src/saas/internal-api/dashboard/api/recordList.api.js +38 -38
  99. package/src/saas/internal-api/dashboard/api/recordList.service.js +60 -60
  100. package/src/saas/internal-api/dashboard/index.js +5 -5
  101. package/src/saas/internal-api/dashboard/models/dashboard.filter.criteria.model.js +38 -38
  102. package/src/saas/internal-api/dbEmails/api/db.emails.api.js +25 -25
  103. package/src/saas/internal-api/dbEmails/api/db.emails.service.js +147 -147
  104. package/src/saas/internal-api/dbEmails/consts/consts.js +54 -54
  105. package/src/saas/internal-api/dbEmails/index.js +6 -6
  106. package/src/saas/internal-api/dbEmails/models/db.emails.model.js +22 -22
  107. package/src/saas/internal-api/dbEmails/utils/util.js +82 -82
  108. package/src/saas/internal-api/emailCustomization/api/email.customization.api.js +26 -26
  109. package/src/saas/internal-api/emailCustomization/api/email.customization.service.js +50 -50
  110. package/src/saas/internal-api/emailCustomization/index.js +3 -3
  111. package/src/saas/internal-api/globalRecord/api/global.record.api.js +95 -95
  112. package/src/saas/internal-api/globalRecord/api/global.record.service.js +105 -105
  113. package/src/saas/internal-api/globalRecord/consts.js +20 -20
  114. package/src/saas/internal-api/globalRecord/index.js +6 -6
  115. package/src/saas/internal-api/globalRecord/models/global.record.model.js +60 -60
  116. package/src/saas/internal-api/globalRecord/utils/util.js +161 -161
  117. package/src/saas/internal-api/homepageCharts/api/charts.api.js +12 -12
  118. package/src/saas/internal-api/homepageCharts/api/charts.service.js +7 -7
  119. package/src/saas/internal-api/homepageCharts/index.js +3 -3
  120. package/src/saas/internal-api/projects/api/core/projects.api.js +39 -39
  121. package/src/saas/internal-api/projects/api/core/projects.service.js +65 -65
  122. package/src/saas/internal-api/projects/api/settings/project.settings.api.js +18 -18
  123. package/src/saas/internal-api/projects/api/settings/project.settings.service.js +35 -35
  124. package/src/saas/internal-api/projects/consts/defaultProject.js +3 -3
  125. package/src/saas/internal-api/projects/index.js +24 -24
  126. package/src/saas/internal-api/projects/models/core/create.project.model.js +41 -41
  127. package/src/saas/internal-api/projects/models/core/update.project.model.js +47 -47
  128. package/src/saas/internal-api/projects/models/settings/update.project.settings.model.js +41 -41
  129. package/src/saas/internal-api/projects/utils/utils.js +156 -156
  130. package/src/saas/internal-api/recordNotes/api/record.notes.api.js +38 -38
  131. package/src/saas/internal-api/recordNotes/api/record.notes.service.js +47 -47
  132. package/src/saas/internal-api/recordNotes/api/record.notes.utils.js +12 -12
  133. package/src/saas/internal-api/recordNotes/index.js +3 -3
  134. package/src/saas/internal-api/reports/api/reports.api.js +39 -39
  135. package/src/saas/internal-api/reports/api/reports.service.js +34 -34
  136. package/src/saas/internal-api/reports/consts/consts.js +65 -64
  137. package/src/saas/internal-api/reports/index.js +15 -15
  138. package/src/saas/internal-api/reports/models/report.model.js +27 -27
  139. package/src/saas/internal-api/requests/api/requests.api.js +120 -78
  140. package/src/saas/internal-api/requests/api/requests.service.js +272 -153
  141. package/src/saas/internal-api/requests/index.js +20 -16
  142. package/src/saas/internal-api/requests/models/create.request.model.js +33 -34
  143. package/src/saas/internal-api/requests/models/draft.request.criteria.model.js +18 -0
  144. package/src/saas/internal-api/requests/models/draft.request.report.model.js +14 -0
  145. package/src/saas/internal-api/requests/models/edit.request.model.js +31 -31
  146. package/src/saas/internal-api/requests/models/{inner.page.request.criteria.model.js → requestListCriteriaModel.js} +17 -17
  147. package/src/saas/internal-api/requests/models/tenant.request.model.js +9 -9
  148. package/src/saas/internal-api/requests/utils.js +8 -8
  149. package/src/saas/internal-api/requestsTable/api/requests.table.api.js +20 -20
  150. package/src/saas/internal-api/requestsTable/api/requests.table.service.js +14 -14
  151. package/src/saas/internal-api/requestsTable/index.js +3 -3
  152. package/src/saas/internal-api/requirements/api/requirements.api.js +51 -45
  153. package/src/saas/internal-api/requirements/api/requirements.service.js +153 -142
  154. package/src/saas/internal-api/requirements/consts/attributeTypes.json +6 -6
  155. package/src/saas/internal-api/requirements/consts/consts.js +6 -6
  156. package/src/saas/internal-api/requirements/index.js +10 -10
  157. package/src/saas/internal-api/requirements/models/create.requirement.model.js +17 -17
  158. package/src/saas/internal-api/requirements/models/policy.model.js +33 -33
  159. package/src/saas/internal-api/requirements/models/update.requirement.model.js +19 -19
  160. package/src/saas/internal-api/requirements/utils/utils.js +116 -116
  161. package/src/saas/internal-api/serviceArea/api/coordinates.api.js +12 -12
  162. package/src/saas/internal-api/serviceArea/api/coordinates.service.js +7 -7
  163. package/src/saas/internal-api/serviceArea/index.js +4 -4
  164. package/src/saas/internal-api/serviceArea/utils/utils.js +8 -8
  165. package/src/saas/internal-api/tabs/api/tabs.api.js +32 -32
  166. package/src/saas/internal-api/tabs/api/tabs.service.js +54 -54
  167. package/src/saas/internal-api/tabs/index.js +3 -3
  168. package/src/saas/internal-api/tabs/models/tabs.model.js +19 -19
  169. package/src/saas/internal-api/thread-scheduler/runner.js +39 -39
  170. package/src/saas/internal-api/uploadFiles/api/upload.file.api.js +31 -31
  171. package/src/saas/internal-api/uploadFiles/api/upload.file.service.js +42 -42
  172. package/src/saas/internal-api/uploadFiles/consts.js +12 -12
  173. package/src/saas/internal-api/uploadFiles/index.js +3 -3
  174. package/src/saas/internal-api/users/api/tenantApp/tenant.app.api.js +32 -32
  175. package/src/saas/internal-api/users/api/tenantApp/tenant.app.service.js +97 -93
  176. package/src/saas/internal-api/users/api/users.api.js +115 -115
  177. package/src/saas/internal-api/users/api/users.service.js +203 -203
  178. package/src/saas/internal-api/users/index.js +16 -16
  179. package/src/saas/internal-api/users/models/create.inner.system.user.model.js +18 -18
  180. package/src/saas/internal-api/users/models/notification.settings.model.js +12 -12
  181. package/src/saas/internal-api/users/models/tenent.user.model.js +11 -11
  182. package/src/saas/internal-api/users/models/users.model.js +41 -41
  183. package/src/saas/internal-api/users/utils/util.js +39 -39
  184. package/src/saas/internal-api/vendorProfile/api/vendor.profile.api.js +20 -20
  185. package/src/saas/internal-api/vendorProfile/api/vendor.profile.service.js +14 -14
  186. package/src/saas/internal-api/vendorProfile/index.js +3 -3
  187. package/src/saas/openapi/accounts/accounts.api.js +17 -17
  188. package/src/saas/openapi/accounts/accounts.service.js +11 -11
  189. package/src/saas/openapi/coi/coi.api.js +20 -20
  190. package/src/saas/openapi/coi/coi.service.js +13 -13
  191. package/src/saas/openapi/projects/projects.api.js +83 -83
  192. package/src/saas/openapi/projects/projects.service.js +64 -64
  193. package/src/saas/openapi/requests/index.js +7 -7
  194. package/src/saas/openapi/requests/models/invite.request.model.js +37 -37
  195. package/src/saas/openapi/requests/models/update.request.model.js +35 -35
  196. package/src/saas/openapi/requests/requests.api.js +82 -82
  197. package/src/saas/openapi/requests/requests.service.js +70 -70
  198. package/src/saas/openapi/requirements/index.js +6 -6
  199. package/src/saas/openapi/requirements/models/copy.requirement.model.js +10 -10
  200. package/src/saas/openapi/requirements/requirements.api.js +32 -32
  201. package/src/saas/openapi/requirements/requirements.service.js +37 -37
  202. package/src/saas/openapi/tabs/index.js +6 -6
  203. package/src/saas/openapi/tabs/models/create.tab.model.js +6 -6
  204. package/src/saas/openapi/tabs/tabs.api.js +27 -27
  205. package/src/saas/openapi/tabs/tabs.service.js +19 -19
  206. package/src/saas/openapi/users/user.model.js +10 -10
  207. package/src/saas/openapi/users/users.api.js +33 -33
  208. package/src/saas/openapi/users/users.service.js +41 -41
  209. package/tests/env.test.js +40 -40
  210. package/tests/validation.test.js +83 -83
@@ -0,0 +1,61 @@
1
+ const FormData = require('form-data');
2
+
3
+ const emailCustomizationsAPI = require('./accounts.email.customizations.api');
4
+ const httpResponseStatusCodes = require('../../../../../common/httpResponseStatusCodes.json');
5
+
6
+ const getCobranding = async (accountId, context) => {
7
+ const response = await emailCustomizationsAPI.getCobranding(accountId, context);
8
+
9
+ if (response.status !== httpResponseStatusCodes.OK) {
10
+ throw Error(`Failed to get cobranding by account id: ${accountId} - Response: ${response.status}`);
11
+ }
12
+
13
+ return response.data;
14
+ };
15
+
16
+ const deleteCobranding = async (accountId, context) => {
17
+ const response = await emailCustomizationsAPI.deleteCobranding(accountId, context);
18
+
19
+ if (response.status !== httpResponseStatusCodes.OK) {
20
+ throw Error(`Failed to delete cobranding by account id: ${accountId} - Response: ${response.status}`);
21
+ }
22
+
23
+ return response.data;
24
+ };
25
+
26
+ const publishCobranding = async (publishCobrandingModel, context) => {
27
+ const publishCobrandingStr = JSON.stringify(publishCobrandingModel);
28
+
29
+ const formData = new FormData();
30
+ // File names are passed as empty so the integration tests won't need to start handle files
31
+ // In this case the backend just take the file name from the cobrandingData object
32
+ // and doesn't check against S3. This will work as long as we won't check the content of the cobranded
33
+ // emails themselves as there there won't be images.
34
+ formData.append('file', '');
35
+ formData.append('coBrandingData', publishCobrandingStr) ;
36
+
37
+ const response = await emailCustomizationsAPI.publishCobranding(formData, context);
38
+
39
+ if (response.status !== httpResponseStatusCodes.OK) {
40
+ throw Error(`Failed to publish cobranding with from email: ${publishCobrandingModel.fromEmailAddress} - Response: ${response.status}`);
41
+ }
42
+
43
+ return response.data;
44
+ };
45
+
46
+ const getAccountsByCobrandingEmail = async email => {
47
+ const response = await emailCustomizationsAPI.getAccountsByCobrandingEmail(email);
48
+
49
+ if (response.status !== httpResponseStatusCodes.OK) {
50
+ throw Error(`Failed to get account ids by email: ${email} - Response: ${response.status}`);
51
+ }
52
+
53
+ return response.data;
54
+ };
55
+
56
+ module.exports = {
57
+ getCobranding,
58
+ deleteCobranding,
59
+ publishCobranding,
60
+ getAccountsByCobrandingEmail
61
+ };
@@ -1,48 +1,48 @@
1
- const requests = require('../../../../../common/requests/cookieAuth/requests');
2
- const { backendUrl } = require('../../../../../env').getEnv();
3
-
4
- const Endpoints = {
5
- createApiKey: `${backendUrl}/saas/api-keys`,
6
- getStaticApiKeyByAccountId: accountId => `${backendUrl}/saas/accounts/${accountId}/static-api-keys`,
7
- getApiKeyByKeyValue: `${backendUrl}/saas/api-keys`,
8
- removeStaticApiKey: accountId => `${backendUrl}/saas/accounts/${accountId}/static-api-keys`,
9
- dynamicApiKey: accountId => `${backendUrl}/saas/accounts/${accountId}/dynamic-api-key`
10
- };
11
-
12
- const createStaticApiKey = (data, context) => {
13
- return requests.postRequestHandler(Endpoints.createApiKey, data, context);
14
- };
15
-
16
- const createGeneratorApiKey = (data, context) => {
17
- return requests.postRequestHandler(Endpoints.createApiKey, data, context);
18
- };
19
-
20
- const getStaticApiKeyByAccountId = (accountId, context) => {
21
- return requests.getRequestHandler(Endpoints.getStaticApiKeyByAccountId(accountId), {}, context);
22
- };
23
-
24
- const getApiKeyDetails = (apiKeyValue, context) => {
25
- return requests.getRequestHandler(Endpoints.getApiKeyByKeyValue, { apiKeyValue }, context);
26
- };
27
-
28
- const deleteStaticApiKey = (accountId, context) => {
29
- return requests.deleteRequestHandler(Endpoints.removeStaticApiKey(accountId), context);
30
- };
31
-
32
- const deleteDynamicApiKey = (accountId, context) => {
33
- return requests.deleteRequestHandler(Endpoints.dynamicApiKey(accountId), context);
34
- };
35
-
36
- const makeDynamicApiKeyExpired = (accountId, context) => {
37
- return requests.patchRequestHandler(Endpoints.dynamicApiKey(accountId), context, {});
38
- };
39
-
40
- module.exports = {
41
- createStaticApiKey,
42
- createGeneratorApiKey,
43
- getStaticApiKeyByAccountId,
44
- getApiKeyDetails,
45
- makeDynamicApiKeyExpired,
46
- deleteStaticApiKey,
47
- deleteDynamicApiKey
48
- };
1
+ const requests = require('../../../../../common/requests/cookieAuth/requests');
2
+ const { backendUrl } = require('../../../../../env').getEnv();
3
+
4
+ const Endpoints = {
5
+ createApiKey: `${backendUrl}/saas/api-keys`,
6
+ getStaticApiKeyByAccountId: accountId => `${backendUrl}/saas/accounts/${accountId}/static-api-keys`,
7
+ getApiKeyByKeyValue: `${backendUrl}/saas/api-keys`,
8
+ removeStaticApiKey: accountId => `${backendUrl}/saas/accounts/${accountId}/static-api-keys`,
9
+ dynamicApiKey: accountId => `${backendUrl}/saas/accounts/${accountId}/dynamic-api-key`
10
+ };
11
+
12
+ const createStaticApiKey = (data, context) => {
13
+ return requests.postRequestHandler(Endpoints.createApiKey, data, context);
14
+ };
15
+
16
+ const createGeneratorApiKey = (data, context) => {
17
+ return requests.postRequestHandler(Endpoints.createApiKey, data, context);
18
+ };
19
+
20
+ const getStaticApiKeyByAccountId = (accountId, context) => {
21
+ return requests.getRequestHandler(Endpoints.getStaticApiKeyByAccountId(accountId), {}, context);
22
+ };
23
+
24
+ const getApiKeyDetails = (apiKeyValue, context) => {
25
+ return requests.getRequestHandler(Endpoints.getApiKeyByKeyValue, { apiKeyValue }, context);
26
+ };
27
+
28
+ const deleteStaticApiKey = (accountId, context) => {
29
+ return requests.deleteRequestHandler(Endpoints.removeStaticApiKey(accountId), context);
30
+ };
31
+
32
+ const deleteDynamicApiKey = (accountId, context) => {
33
+ return requests.deleteRequestHandler(Endpoints.dynamicApiKey(accountId), context);
34
+ };
35
+
36
+ const makeDynamicApiKeyExpired = (accountId, context) => {
37
+ return requests.patchRequestHandler(Endpoints.dynamicApiKey(accountId), context, {});
38
+ };
39
+
40
+ module.exports = {
41
+ createStaticApiKey,
42
+ createGeneratorApiKey,
43
+ getStaticApiKeyByAccountId,
44
+ getApiKeyDetails,
45
+ makeDynamicApiKeyExpired,
46
+ deleteStaticApiKey,
47
+ deleteDynamicApiKey
48
+ };
@@ -1,74 +1,74 @@
1
- const accountsAPI = require('./accounts.openapi.api');
2
- const crypto = require('crypto');
3
-
4
- const generateApiKeyValue = accountName => {
5
- return crypto.createHash('sha256').update(accountName).digest('base64');
6
- };
7
-
8
- const createStaticApiKey = async (accountId, apiKeyValue, context, { apiKeyType = 'ACCOUNT_STATIC', apiKeyName = null } = {}) => {
9
- const data = { accountId, apiKeyValue, apiKeyName, apiKeyType };
10
- return accountsAPI.createStaticApiKey(data, context);
11
- };
12
-
13
- const createGeneratorApiKey = async (accountId, apiKeyValue, context, { apiKeyType = 'GENERATOR', apiKeyName = null } = {}) => {
14
- const data = { accountId, apiKeyValue, apiKeyName, apiKeyType };
15
- return accountsAPI.createGeneratorApiKey(data, context);
16
- };
17
-
18
- const getStaticApiKeyByAccountId = async (accountId, context) => {
19
- return accountsAPI.getStaticApiKeyByAccountId(accountId, context);
20
- };
21
-
22
- const getApiKeyDetails = async (apiKeyValue, context) => {
23
- return accountsAPI.getApiKeyDetails(apiKeyValue, context);
24
- };
25
-
26
- const deleteStaticApiKey = async (accountId, context) => {
27
- return accountsAPI.deleteStaticApiKey(accountId, context);
28
- };
29
-
30
- const getOrCreateStaticApiKey = async (accountId, apiKeyValue, context, { apiKeyType = 'ACCOUNT_STATIC', apiKeyName = null } = {}) => {
31
- let response = await getStaticApiKeyByAccountId(accountId, context);
32
-
33
- if (response.data.apiKeyValue) {
34
- return response.data;
35
- }
36
-
37
- response = await getApiKeyDetails(apiKeyValue, context);
38
-
39
- if (!response.data.apiKeyValue) {
40
- response = await createStaticApiKey(accountId, apiKeyValue, context, { apiKeyType, apiKeyName });
41
- }
42
-
43
- return response.data;
44
- };
45
-
46
- const getOrCreateGeneratorApiKey = async (accountId, apiKeyValue, context, { apiKeyType = 'GENERATOR', apiKeyName = null } = {}) => {
47
- const existingApiKey = await getApiKeyDetails(apiKeyValue, context);
48
-
49
- if (!existingApiKey.apiKeyValue) {
50
- return createGeneratorApiKey(accountId, apiKeyValue, context, { apiKeyType, apiKeyName });
51
- }
52
-
53
- return existingApiKey;
54
- };
55
-
56
- const deleteDynamicApiKey = async (accountId, context) => {
57
- return accountsAPI.deleteDynamicApiKey(accountId, context);
58
- };
59
-
60
- const makeDynamicApiKeyExpired = async (accountId, context) => {
61
- return accountsAPI.makeDynamicApiKeyExpired(accountId, context);
62
- };
63
-
64
- module.exports = {
65
- createStaticApiKey,
66
- generateApiKeyValue,
67
- getOrCreateStaticApiKey,
68
- getOrCreateGeneratorApiKey,
69
- getStaticApiKeyByAccountId,
70
- getApiKeyDetails,
71
- makeDynamicApiKeyExpired,
72
- deleteStaticApiKey,
73
- deleteDynamicApiKey
74
- };
1
+ const accountsAPI = require('./accounts.openapi.api');
2
+ const crypto = require('crypto');
3
+
4
+ const generateApiKeyValue = accountName => {
5
+ return crypto.createHash('sha256').update(accountName).digest('base64');
6
+ };
7
+
8
+ const createStaticApiKey = async (accountId, apiKeyValue, context, { apiKeyType = 'ACCOUNT_STATIC', apiKeyName = null } = {}) => {
9
+ const data = { accountId, apiKeyValue, apiKeyName, apiKeyType };
10
+ return accountsAPI.createStaticApiKey(data, context);
11
+ };
12
+
13
+ const createGeneratorApiKey = async (accountId, apiKeyValue, context, { apiKeyType = 'GENERATOR', apiKeyName = null } = {}) => {
14
+ const data = { accountId, apiKeyValue, apiKeyName, apiKeyType };
15
+ return accountsAPI.createGeneratorApiKey(data, context);
16
+ };
17
+
18
+ const getStaticApiKeyByAccountId = async (accountId, context) => {
19
+ return accountsAPI.getStaticApiKeyByAccountId(accountId, context);
20
+ };
21
+
22
+ const getApiKeyDetails = async (apiKeyValue, context) => {
23
+ return accountsAPI.getApiKeyDetails(apiKeyValue, context);
24
+ };
25
+
26
+ const deleteStaticApiKey = async (accountId, context) => {
27
+ return accountsAPI.deleteStaticApiKey(accountId, context);
28
+ };
29
+
30
+ const getOrCreateStaticApiKey = async (accountId, apiKeyValue, context, { apiKeyType = 'ACCOUNT_STATIC', apiKeyName = null } = {}) => {
31
+ let response = await getStaticApiKeyByAccountId(accountId, context);
32
+
33
+ if (response.data.apiKeyValue) {
34
+ return response.data;
35
+ }
36
+
37
+ response = await getApiKeyDetails(apiKeyValue, context);
38
+
39
+ if (!response.data.apiKeyValue) {
40
+ response = await createStaticApiKey(accountId, apiKeyValue, context, { apiKeyType, apiKeyName });
41
+ }
42
+
43
+ return response.data;
44
+ };
45
+
46
+ const getOrCreateGeneratorApiKey = async (accountId, apiKeyValue, context, { apiKeyType = 'GENERATOR', apiKeyName = null } = {}) => {
47
+ const existingApiKey = await getApiKeyDetails(apiKeyValue, context);
48
+
49
+ if (!existingApiKey.apiKeyValue) {
50
+ return createGeneratorApiKey(accountId, apiKeyValue, context, { apiKeyType, apiKeyName });
51
+ }
52
+
53
+ return existingApiKey;
54
+ };
55
+
56
+ const deleteDynamicApiKey = async (accountId, context) => {
57
+ return accountsAPI.deleteDynamicApiKey(accountId, context);
58
+ };
59
+
60
+ const makeDynamicApiKeyExpired = async (accountId, context) => {
61
+ return accountsAPI.makeDynamicApiKeyExpired(accountId, context);
62
+ };
63
+
64
+ module.exports = {
65
+ createStaticApiKey,
66
+ generateApiKeyValue,
67
+ getOrCreateStaticApiKey,
68
+ getOrCreateGeneratorApiKey,
69
+ getStaticApiKeyByAccountId,
70
+ getApiKeyDetails,
71
+ makeDynamicApiKeyExpired,
72
+ deleteStaticApiKey,
73
+ deleteDynamicApiKey
74
+ };
@@ -1,21 +1,21 @@
1
- const requests = require('../../../../../common/requests/cookieAuth/requests');
2
- const { backendUrl } = require('../../../../../env').getEnv();
3
-
4
- const Endpoints = {
5
- get: accountId => `${backendUrl}/saas/account/${accountId}/settings`,
6
- edit: accountId => `${backendUrl}/saas/account/${accountId}/settings`
7
- };
8
-
9
- const getAccountSettings = (accountId, context) => {
10
- return requests.getRequestHandler(Endpoints.get(accountId), {}, context);
11
- };
12
-
13
- const updateAccountSettings = (updateAccountSettingsModel, context) => {
14
- const { accountId } = updateAccountSettingsModel;
15
- return requests.putRequestHandler(Endpoints.edit(accountId), updateAccountSettingsModel, context);
16
- };
17
-
18
- module.exports = {
19
- getAccountSettings,
20
- updateAccountSettings
21
- };
1
+ const requests = require('../../../../../common/requests/cookieAuth/requests');
2
+ const { backendUrl } = require('../../../../../env').getEnv();
3
+
4
+ const Endpoints = {
5
+ get: accountId => `${backendUrl}/saas/account/${accountId}/settings`,
6
+ edit: accountId => `${backendUrl}/saas/account/${accountId}/settings`
7
+ };
8
+
9
+ const getAccountSettings = (accountId, context) => {
10
+ return requests.getRequestHandler(Endpoints.get(accountId), {}, context);
11
+ };
12
+
13
+ const updateAccountSettings = (updateAccountSettingsModel, context) => {
14
+ const { accountId } = updateAccountSettingsModel;
15
+ return requests.putRequestHandler(Endpoints.edit(accountId), updateAccountSettingsModel, context);
16
+ };
17
+
18
+ module.exports = {
19
+ getAccountSettings,
20
+ updateAccountSettings
21
+ };
@@ -1,41 +1,41 @@
1
- const accountsAPI = require('./settings.api');
2
- const { validateType } = require('../../../../../common/validations/typeValidations');
3
- const UpdateAccountSettingsModel = require('../../models/settings/update.settings.model');
4
- const util = require('../../utils/utils');
5
- const httpResponseStatusCodes = require('../../../../../common/httpResponseStatusCodes.json');
6
-
7
- const getAccountSettings = (accountId, context) => {
8
- return accountsAPI.getAccountSettings(accountId, context);
9
- };
10
-
11
- const updateAccountSettings = (updateAccountSettingsModel, context) => {
12
- validateType(updateAccountSettingsModel, UpdateAccountSettingsModel);
13
- return accountsAPI.updateAccountSettings(updateAccountSettingsModel, context);
14
- };
15
-
16
- const restoreAccountSettings = (accountId, context) => {
17
- const updateAccountSettingsModel = new UpdateAccountSettingsModel(accountId);
18
- return accountsAPI.updateAccountSettings(updateAccountSettingsModel, context);
19
- };
20
-
21
- const setAccountSettings = async (accountId, settings, context) => {
22
- const isUIConfig = util.isUIConfig(settings);
23
-
24
- const settingsConfig = isUIConfig ? util.parseAccountSettingsConfig(accountId, settings) : settings;
25
- const settingsModel = new UpdateAccountSettingsModel(accountId, settingsConfig);
26
-
27
- const updateResponse = await updateAccountSettings(settingsModel, context);
28
-
29
- if (updateResponse.status !== httpResponseStatusCodes.OK) {
30
- throw new Error(`Failed to set account: ${accountId} settings\n${updateResponse.data}`);
31
- }
32
-
33
- return updateResponse;
34
- };
35
-
36
- module.exports = {
37
- getAccountSettings,
38
- updateAccountSettings,
39
- restoreAccountSettings,
40
- setAccountSettings
41
- };
1
+ const accountsAPI = require('./settings.api');
2
+ const { validateType } = require('../../../../../common/validations/typeValidations');
3
+ const UpdateAccountSettingsModel = require('../../models/settings/update.settings.model');
4
+ const util = require('../../utils/utils');
5
+ const httpResponseStatusCodes = require('../../../../../common/httpResponseStatusCodes.json');
6
+
7
+ const getAccountSettings = (accountId, context) => {
8
+ return accountsAPI.getAccountSettings(accountId, context);
9
+ };
10
+
11
+ const updateAccountSettings = (updateAccountSettingsModel, context) => {
12
+ validateType(updateAccountSettingsModel, UpdateAccountSettingsModel);
13
+ return accountsAPI.updateAccountSettings(updateAccountSettingsModel, context);
14
+ };
15
+
16
+ const restoreAccountSettings = (accountId, context) => {
17
+ const updateAccountSettingsModel = new UpdateAccountSettingsModel(accountId);
18
+ return accountsAPI.updateAccountSettings(updateAccountSettingsModel, context);
19
+ };
20
+
21
+ const setAccountSettings = async (accountId, settings, context) => {
22
+ const isUIConfig = util.isUIConfig(settings);
23
+
24
+ const settingsConfig = isUIConfig ? util.parseAccountSettingsConfig(accountId, settings) : settings;
25
+ const settingsModel = new UpdateAccountSettingsModel(accountId, settingsConfig);
26
+
27
+ const updateResponse = await updateAccountSettings(settingsModel, context);
28
+
29
+ if (updateResponse.status !== httpResponseStatusCodes.OK) {
30
+ throw new Error(`Failed to set account: ${accountId} settings\n${updateResponse.data}`);
31
+ }
32
+
33
+ return updateResponse;
34
+ };
35
+
36
+ module.exports = {
37
+ getAccountSettings,
38
+ updateAccountSettings,
39
+ restoreAccountSettings,
40
+ setAccountSettings
41
+ };
@@ -1,6 +1,6 @@
1
- const ACCOUNT_TYPES = {
2
- PROPERTY: 'Property Management',
3
- CONSTRUCTION: 'Construction'
4
- };
5
-
6
- module.exports = { ACCOUNT_TYPES };
1
+ const ACCOUNT_TYPES = {
2
+ PROPERTY: 'Property Management',
3
+ CONSTRUCTION: 'Construction'
4
+ };
5
+
6
+ module.exports = { ACCOUNT_TYPES };
@@ -1,20 +1,22 @@
1
- const CreateAccountModel = require('./models/core/create.account.model');
2
- const coreModels = { CreateAccountModel };
3
- const UpdateAccountSettingsModel = require('./models/settings/update.settings.model');
4
- const settingsModels = { UpdateAccountSettingsModel };
5
-
6
- const models = { core: coreModels, settings: settingsModels };
7
- const utils = require('./utils/utils');
8
- const consts = require('./consts/consts');
9
-
10
- const coreService = require('./api/core/accounts.core.service');
11
- const openApiServices = require('./api/openapi/accounts.openapi.service');
12
- const settingsServices = require('./api/settings/settings.service');
13
-
14
- const services = {
15
- core: coreService,
16
- openApi: openApiServices,
17
- settings: settingsServices
18
- };
19
-
20
- module.exports = { services, models, utils, consts };
1
+ const CreateAccountModel = require('./models/core/create.account.model');
2
+ const coreModels = { CreateAccountModel };
3
+ const UpdateAccountSettingsModel = require('./models/settings/update.settings.model');
4
+ const settingsModels = { UpdateAccountSettingsModel };
5
+
6
+ const models = { core: coreModels, settings: settingsModels };
7
+ const utils = require('./utils/utils');
8
+ const consts = require('./consts/consts');
9
+
10
+ const coreService = require('./api/core/accounts.core.service');
11
+ const openApiServices = require('./api/openapi/accounts.openapi.service');
12
+ const settingsServices = require('./api/settings/settings.service');
13
+ const emailCustomizationService = require('./api/emailCustomization/accounts.email.customizations.service');
14
+
15
+ const services = {
16
+ core: coreService,
17
+ openApi: openApiServices,
18
+ settings: settingsServices,
19
+ emailCustomizations: emailCustomizationService
20
+ };
21
+
22
+ module.exports = { services, models, utils, consts };
@@ -1,16 +1,16 @@
1
- const env = require('../../../../../env');
2
- const { credentials, accountCreationSecret } = env.getEnv();
3
- const { ACCOUNT_TYPES } = require('../../consts/consts');
4
-
5
- class CreateAccountModel {
6
- constructor(accountName, email, password = credentials.strongPassword, propertyType = ACCOUNT_TYPES.PROPERTY) {
7
- this.companyName = accountName;
8
- this.email = email;
9
- this.password = password;
10
- this.verifyPassword = password;
11
- this.userType = propertyType;
12
- this.secret = accountCreationSecret;
13
- }
14
- }
15
-
16
- module.exports = CreateAccountModel;
1
+ const env = require('../../../../../env');
2
+ const { credentials, accountCreationSecret } = env.getEnv();
3
+ const { ACCOUNT_TYPES } = require('../../consts/consts');
4
+
5
+ class CreateAccountModel {
6
+ constructor(accountName, email, password = credentials.strongPassword, propertyType = ACCOUNT_TYPES.PROPERTY) {
7
+ this.companyName = accountName;
8
+ this.email = email;
9
+ this.password = password;
10
+ this.verifyPassword = password;
11
+ this.userType = propertyType;
12
+ this.secret = accountCreationSecret;
13
+ }
14
+ }
15
+
16
+ module.exports = CreateAccountModel;
@@ -1,38 +1,38 @@
1
- class UpdateAccountSettingsModel {
2
- constructor(
3
- accountId,
4
- {
5
- isHighPriority = false,
6
- hasAnalyticsDashboard = false,
7
- isEmailOnWelcomePageVA = false,
8
- isExcludedFromNetwork = false,
9
- isOcrEnabled = false,
10
- isCoverageAudit = false,
11
- isAccountRequirementsEnabled = false,
12
- isAccountRequirementsAutoRenewalsEnabled = false,
13
- autoGaps = {},
14
- auditSlaHours = 24,
15
- shouldReachOutVendors = true
16
- } = {}
17
- ) {
18
- this.accountId = accountId;
19
- this.isHighPriority = isHighPriority;
20
- this.hasAnalyticsDashboard = hasAnalyticsDashboard;
21
- this.isEmailOnWelcomePageVA = isEmailOnWelcomePageVA;
22
- this.isExcludedFromNetwork = isExcludedFromNetwork;
23
- this.isOcrEnabled = isOcrEnabled;
24
- this.isCoverageAudit = isCoverageAudit;
25
- this.isAccountRequirementsEnabled = isAccountRequirementsEnabled;
26
- this.isAccountRequirementsAutoRenewalsEnabled = isAccountRequirementsAutoRenewalsEnabled;
27
- this.autoGaps = { ... DEFAULT_AUTO_GAPS, ... autoGaps };
28
- this.auditSlaHours = auditSlaHours;
29
- this.shouldReachOutVendors = shouldReachOutVendors;
30
- }
31
- }
32
-
33
- const DEFAULT_AUTO_GAPS = {
34
- isAutoGapsEnabledForTenants: false,
35
- isAutoGapsEnabledForVendors: false
36
- };
37
-
38
- module.exports = UpdateAccountSettingsModel;
1
+ class UpdateAccountSettingsModel {
2
+ constructor(
3
+ accountId,
4
+ {
5
+ isHighPriority = false,
6
+ hasAnalyticsDashboard = false,
7
+ isEmailOnWelcomePageVA = false,
8
+ isExcludedFromNetwork = false,
9
+ isOcrEnabled = false,
10
+ isCoverageAudit = false,
11
+ isAccountRequirementsEnabled = false,
12
+ isAccountRequirementsAutoRenewalsEnabled = false,
13
+ autoGaps = {},
14
+ auditSlaHours = 24,
15
+ shouldReachOutVendors = true
16
+ } = {}
17
+ ) {
18
+ this.accountId = accountId;
19
+ this.isHighPriority = isHighPriority;
20
+ this.hasAnalyticsDashboard = hasAnalyticsDashboard;
21
+ this.isEmailOnWelcomePageVA = isEmailOnWelcomePageVA;
22
+ this.isExcludedFromNetwork = isExcludedFromNetwork;
23
+ this.isOcrEnabled = isOcrEnabled;
24
+ this.isCoverageAudit = isCoverageAudit;
25
+ this.isAccountRequirementsEnabled = isAccountRequirementsEnabled;
26
+ this.isAccountRequirementsAutoRenewalsEnabled = isAccountRequirementsAutoRenewalsEnabled;
27
+ this.autoGaps = { ... DEFAULT_AUTO_GAPS, ... autoGaps };
28
+ this.auditSlaHours = auditSlaHours;
29
+ this.shouldReachOutVendors = shouldReachOutVendors;
30
+ }
31
+ }
32
+
33
+ const DEFAULT_AUTO_GAPS = {
34
+ isAutoGapsEnabledForTenants: false,
35
+ isAutoGapsEnabledForVendors: false
36
+ };
37
+
38
+ module.exports = UpdateAccountSettingsModel;