@getjones/test-infra 1.8.1 → 1.11.0

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 (124) hide show
  1. package/package.json +29 -29
  2. package/src/common/factory/index.js +3 -0
  3. package/src/common/factory/records/records.js +45 -0
  4. package/src/common/httpResponseStatusCodes.json +11 -11
  5. package/src/common/requests/apiKeyAuth/requests.js +38 -38
  6. package/src/common/requests/cookieAuth/requests.js +40 -40
  7. package/src/common/requests/requestHandlers.js +60 -60
  8. package/src/common/utils/numberUtils.js +22 -22
  9. package/src/common/utils/timeUtils.js +147 -0
  10. package/src/common/validations/errorValidation.js +16 -16
  11. package/src/common/validations/typeValidations.js +36 -36
  12. package/src/env.js +45 -44
  13. package/src/index.js +67 -65
  14. package/src/saas/internal-api/accounts/api/core/accounts.core.api.js +28 -28
  15. package/src/saas/internal-api/accounts/api/core/accounts.core.service.js +77 -77
  16. package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.api.js +48 -48
  17. package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.service.js +74 -74
  18. package/src/saas/internal-api/accounts/api/settings/settings.api.js +21 -21
  19. package/src/saas/internal-api/accounts/api/settings/settings.service.js +24 -24
  20. package/src/saas/internal-api/accounts/index.js +20 -20
  21. package/src/saas/internal-api/accounts/models/core/create.account.model.js +15 -15
  22. package/src/saas/internal-api/accounts/models/settings/update.settings.model.js +19 -19
  23. package/src/saas/internal-api/accounts/utils/utils.js +32 -32
  24. package/src/saas/internal-api/auth/api/auth.api.js +12 -12
  25. package/src/saas/internal-api/auth/api/auth.service.js +47 -47
  26. package/src/saas/internal-api/auth/index.js +3 -3
  27. package/src/saas/internal-api/coi/api/coi.api.js +34 -34
  28. package/src/saas/internal-api/coi/api/coi.service.js +22 -22
  29. package/src/saas/internal-api/coi/consts/uploaderTypes.js +7 -7
  30. package/src/saas/internal-api/coi/index.js +13 -13
  31. package/src/saas/internal-api/coi/models/submit.coi.model.js +9 -9
  32. package/src/saas/internal-api/coi/utils/utils.js +48 -48
  33. package/src/saas/internal-api/compliance/api/audit/audit.api.js +40 -40
  34. package/src/saas/internal-api/compliance/api/audit/audit.service.js +33 -33
  35. package/src/saas/internal-api/compliance/api/convert/convert.api.js +17 -17
  36. package/src/saas/internal-api/compliance/api/convert/convert.service.js +11 -11
  37. package/src/saas/internal-api/compliance/api/coverage/coverage.api.js +33 -33
  38. package/src/saas/internal-api/compliance/api/coverage/coverage.service.js +24 -24
  39. package/src/saas/internal-api/compliance/api/waive/waive.api.js +21 -21
  40. package/src/saas/internal-api/compliance/api/waive/waive.service.js +15 -15
  41. package/src/saas/internal-api/compliance/index.js +22 -22
  42. package/src/saas/internal-api/compliance/models/audit/audit.model.js +110 -110
  43. package/src/saas/internal-api/compliance/models/waive/waive.model.js +45 -45
  44. package/src/saas/internal-api/contractors/api/contractors.api.js +159 -121
  45. package/src/saas/internal-api/contractors/api/contractors.service.js +136 -101
  46. package/src/saas/internal-api/contractors/index.js +8 -8
  47. package/src/saas/internal-api/contractors/models/create.contractor.model.js +22 -22
  48. package/src/saas/internal-api/contractors/models/edit.contractor.model.js +69 -91
  49. package/src/saas/internal-api/contractors/models/verification.contractor.model.js +27 -33
  50. package/src/saas/internal-api/dbEmails/api/db.emails.api.js +25 -0
  51. package/src/saas/internal-api/dbEmails/api/db.emails.service.js +19 -0
  52. package/src/saas/internal-api/dbEmails/index.js +3 -0
  53. package/src/saas/internal-api/dbEmails/models/db.emails.model.js +21 -0
  54. package/src/saas/internal-api/globalRecord/api/global.record.api.js +76 -76
  55. package/src/saas/internal-api/globalRecord/api/global.record.service.js +83 -83
  56. package/src/saas/internal-api/globalRecord/consts.js +20 -20
  57. package/src/saas/internal-api/globalRecord/index.js +6 -6
  58. package/src/saas/internal-api/globalRecord/models/global.record.model.js +43 -43
  59. package/src/saas/internal-api/globalRecord/utils/util.js +148 -148
  60. package/src/saas/internal-api/homepageCharts/api/charts.api.js +12 -12
  61. package/src/saas/internal-api/homepageCharts/api/charts.service.js +7 -7
  62. package/src/saas/internal-api/homepageCharts/index.js +3 -3
  63. package/src/saas/internal-api/projects/api/core/projects.api.js +39 -39
  64. package/src/saas/internal-api/projects/api/core/projects.service.js +65 -65
  65. package/src/saas/internal-api/projects/api/settings/project.settings.api.js +18 -18
  66. package/src/saas/internal-api/projects/api/settings/project.settings.service.js +17 -17
  67. package/src/saas/internal-api/projects/consts/defaultProject.js +3 -3
  68. package/src/saas/internal-api/projects/index.js +24 -24
  69. package/src/saas/internal-api/projects/models/core/create.project.model.js +41 -41
  70. package/src/saas/internal-api/projects/models/core/update.project.model.js +47 -47
  71. package/src/saas/internal-api/projects/models/settings/update.project.settings.model.js +39 -39
  72. package/src/saas/internal-api/projects/utils/utils.js +82 -82
  73. package/src/saas/internal-api/recordNotes/api/record.notes.api.js +38 -38
  74. package/src/saas/internal-api/recordNotes/api/record.notes.service.js +29 -29
  75. package/src/saas/internal-api/recordNotes/index.js +3 -3
  76. package/src/saas/internal-api/reports/api/reports.api.js +39 -39
  77. package/src/saas/internal-api/reports/api/reports.service.js +34 -34
  78. package/src/saas/internal-api/reports/consts/consts.js +63 -63
  79. package/src/saas/internal-api/reports/index.js +15 -15
  80. package/src/saas/internal-api/reports/models/report.model.js +27 -27
  81. package/src/saas/internal-api/requests/api/requests.api.js +28 -0
  82. package/src/saas/internal-api/requests/api/requests.service.js +19 -0
  83. package/src/saas/internal-api/requests/index.js +11 -0
  84. package/src/saas/internal-api/requests/models/edit.request.model.js +31 -0
  85. package/src/saas/internal-api/requests/models/tenant.request.model.js +9 -0
  86. package/src/saas/internal-api/requests/models/validation.models.js +8 -0
  87. package/src/saas/internal-api/requirements/api/requirements.api.js +27 -27
  88. package/src/saas/internal-api/requirements/api/requirements.service.js +23 -23
  89. package/src/saas/internal-api/requirements/index.js +6 -6
  90. package/src/saas/internal-api/requirements/models/create.requirement.model.js +45 -45
  91. package/src/saas/internal-api/serviceArea/api/coordinates.api.js +12 -12
  92. package/src/saas/internal-api/serviceArea/api/coordinates.service.js +7 -7
  93. package/src/saas/internal-api/serviceArea/index.js +4 -4
  94. package/src/saas/internal-api/serviceArea/utils/utils.js +8 -8
  95. package/src/saas/internal-api/tabs/api/tabs.api.js +32 -32
  96. package/src/saas/internal-api/tabs/api/tabs.service.js +54 -54
  97. package/src/saas/internal-api/tabs/index.js +3 -3
  98. package/src/saas/internal-api/tabs/models/tabs.model.js +18 -18
  99. package/src/saas/internal-api/thread-scheduler/runner.js +13 -13
  100. package/src/saas/internal-api/users/api/users.api.js +78 -78
  101. package/src/saas/internal-api/users/api/users.service.js +101 -101
  102. package/src/saas/internal-api/users/index.js +4 -4
  103. package/src/saas/internal-api/users/models/users.model.js +31 -31
  104. package/src/saas/internal-api/users/utils/util.js +14 -14
  105. package/src/saas/internal-api/vendorProfile/api/vendor.profile.api.js +20 -20
  106. package/src/saas/internal-api/vendorProfile/api/vendor.profile.service.js +14 -14
  107. package/src/saas/internal-api/vendorProfile/index.js +3 -3
  108. package/src/saas/openapi/accounts/accounts.api.js +17 -17
  109. package/src/saas/openapi/accounts/accounts.service.js +11 -11
  110. package/src/saas/openapi/contractors/contractors.api.js +20 -20
  111. package/src/saas/openapi/contractors/contractors.service.js +18 -18
  112. package/src/saas/openapi/contractors/index.js +6 -6
  113. package/src/saas/openapi/contractors/models/invite.contractor.model.js +37 -37
  114. package/src/saas/openapi/projects/projects.api.js +59 -59
  115. package/src/saas/openapi/projects/projects.service.js +44 -44
  116. package/src/saas/openapi/requirements/index.js +6 -6
  117. package/src/saas/openapi/requirements/models/copy.requirement.model.js +10 -10
  118. package/src/saas/openapi/requirements/requirements.api.js +12 -12
  119. package/src/saas/openapi/requirements/requirements.service.js +20 -20
  120. package/src/saas/openapi/tabs/tabs.api.js +13 -13
  121. package/src/saas/openapi/tabs/tabs.service.js +7 -7
  122. package/tests/env.test.js +40 -40
  123. package/tests/validation.test.js +83 -83
  124. package/src/common/utils/dateUtils.js +0 -6
@@ -1,101 +1,136 @@
1
- const contractorsAPI = require('./contractors.api');
2
- const { CreateContractorModel } = require('../models/create.contractor.model');
3
- const { ContractorModel, MptModel } = require('../models/edit.contractor.model');
4
- const { validateType } = require('../../../../common/validations/typeValidations');
5
- const { RecordModifyDateVerificationModel } = require('../models/verification.contractor.model');
6
-
7
- const createContractor = async (createContractorModel, context) => {
8
- validateType(createContractorModel, CreateContractorModel);
9
- return contractorsAPI.createContractor(createContractorModel, context);
10
- };
11
-
12
- const getContractorsByAccountId = async (accountId, context, activationStatus = null) => {
13
- if (activationStatus) {
14
- activationStatus = activationStatus.reduce((f, s) => `${f},${s}`);
15
- }
16
-
17
- return contractorsAPI.getContractorsByAccountId({ accountId, activationStatus }, context);
18
- };
19
-
20
- const getContractorById = (contractorId, context) => {
21
- return contractorsAPI.getContractorById(contractorId, context);
22
- };
23
-
24
- const deleteByContractorId = (contractorId, context) => {
25
- return contractorsAPI.deleteByContractorId(contractorId, context);
26
- };
27
-
28
- const archiveByContractorId = (contractorId, context) => {
29
- return contractorsAPI.archiveByContractorId(contractorId, context);
30
- };
31
-
32
- const restoreContractor = (recordVerificationModel, context) => {
33
- validateType(recordVerificationModel, RecordModifyDateVerificationModel);
34
- return contractorsAPI.restoreContractor(recordVerificationModel, context);
35
- };
36
-
37
- const editContractor = (editContractorModel, context) => {
38
- validateType(editContractorModel, ContractorModel);
39
- return contractorsAPI.editContractor(editContractorModel, context);
40
- };
41
-
42
- const updateExpiryDate = (contractorId, expiryDate, policyName) => {
43
- return contractorsAPI.updateExpiryDate(contractorId, expiryDate, policyName);
44
- };
45
-
46
- const getContractorsByTabId = (tabId, context, activityStatus = 'ACTIVE') => {
47
- return contractorsAPI.getContractorsByTabId(tabId, context, activityStatus);
48
- };
49
-
50
- const assignMptToProperties = (assignToMptModel, context) => {
51
- validateType(assignToMptModel, MptModel);
52
- return contractorsAPI.assignMptToProperties(assignToMptModel, context);
53
- };
54
-
55
- const searchInAutoComplete = ({ tabId, searchWord }, context) => {
56
- return contractorsAPI.searchInAutocomplete({ tabId, searchWord }, context);
57
- };
58
-
59
- const updateContractorUploadDate = (contractorId, uploadDate, context) => {
60
- validateType(uploadDate, Date);
61
- return contractorsAPI.updateContractorUploadDate(contractorId, uploadDate, context);
62
- };
63
-
64
- const inviteContractorViaPublicLink = async (createContractorModel, context) => {
65
- validateType(createContractorModel, CreateContractorModel);
66
- return contractorsAPI.inviteContractorViaPublicLink(createContractorModel, context);
67
- };
68
-
69
- const changeRequirement = (recordModifyDateVerificationModel, context) => {
70
- validateType(recordModifyDateVerificationModel, RecordModifyDateVerificationModel);
71
- return contractorsAPI.changeRequirement(recordModifyDateVerificationModel, context);
72
- };
73
-
74
- const muteNotifications = (recordModifyDateVerificationModel, context) => {
75
- validateType(recordModifyDateVerificationModel, RecordModifyDateVerificationModel);
76
- return contractorsAPI.muteNotifications(recordModifyDateVerificationModel, context);
77
- };
78
-
79
- const unmuteNotifications = (recordModifyDateVerificationModel, context) => {
80
- validateType(recordModifyDateVerificationModel, RecordModifyDateVerificationModel);
81
- return contractorsAPI.unmuteNotifications(recordModifyDateVerificationModel, context);
82
- };
83
-
84
- module.exports = {
85
- createContractor,
86
- changeRequirement,
87
- getContractorsByAccountId,
88
- getContractorById,
89
- deleteByContractorId,
90
- archiveByContractorId,
91
- restoreContractor,
92
- editContractor,
93
- updateExpiryDate,
94
- getContractorsByTabId,
95
- assignMptToProperties,
96
- searchInAutoComplete,
97
- updateContractorUploadDate,
98
- inviteContractorViaPublicLink,
99
- muteNotifications,
100
- unmuteNotifications
101
- };
1
+ const contractorsAPI = require('./contractors.api');
2
+ const { CreateContractorModel } = require('../models/create.contractor.model');
3
+ const { MptModel } = require('../models/edit.contractor.model');
4
+ const { RequestModel } = require('../../requests/models/edit.request.model');
5
+ const { validateType } = require('../../../../common/validations/typeValidations');
6
+ const { RecordModifyDateVerificationModel } = require('../models/verification.contractor.model');
7
+
8
+ const createContractor = async (createContractorModel, context) => {
9
+ validateType(createContractorModel, CreateContractorModel);
10
+ return contractorsAPI.createContractor(createContractorModel, context);
11
+ };
12
+
13
+ const getContractorsByAccountId = async (accountId, context, activationStatus = null) => {
14
+ if (activationStatus) {
15
+ activationStatus = activationStatus.reduce((f, s) => `${f},${s}`);
16
+ }
17
+
18
+ return contractorsAPI.getContractorsByAccountId({ accountId, activationStatus }, context);
19
+ };
20
+
21
+ const getContractorById = (contractorId, context) => {
22
+ return contractorsAPI.getContractorById(contractorId, context);
23
+ };
24
+
25
+ const getRecordHistory = (contractorId, context) => {
26
+ return contractorsAPI.getRecordHistory(contractorId, context);
27
+ };
28
+
29
+ const deleteByContractorId = (contractorId, context) => {
30
+ return contractorsAPI.deleteByContractorId(contractorId, context);
31
+ };
32
+
33
+ const archiveByContractorId = (contractorId, context) => {
34
+ return contractorsAPI.archiveByContractorId(contractorId, context);
35
+ };
36
+
37
+ const restoreContractor = (recordVerificationModel, context) => {
38
+ validateType(recordVerificationModel, RecordModifyDateVerificationModel);
39
+ return contractorsAPI.restoreContractor(recordVerificationModel, context);
40
+ };
41
+
42
+ const editContractor = (editRequestModel, context) => {
43
+ validateType(editRequestModel, RequestModel);
44
+ return contractorsAPI.editContractor(editRequestModel, context);
45
+ };
46
+
47
+ const updateExpiryDate = (contractorId, expiryDate, policyName) => {
48
+ return contractorsAPI.updateExpiryDate(contractorId, expiryDate, policyName);
49
+ };
50
+
51
+ const updateInviteDate = (contractorId, inviteDate, context) => {
52
+ return contractorsAPI.updateInviteDate(contractorId, inviteDate, context);
53
+ };
54
+
55
+ const getContractorsByTabId = (tabId, context, activityStatus = 'ACTIVE') => {
56
+ return contractorsAPI.getContractorsByTabId(tabId, context, activityStatus);
57
+ };
58
+
59
+ const assignMptToProperties = (assignToMptModel, context) => {
60
+ validateType(assignToMptModel, MptModel);
61
+ return contractorsAPI.assignMptToProperties(assignToMptModel, context);
62
+ };
63
+
64
+ const searchInAutoComplete = ({ tabId, searchWord }, context) => {
65
+ return contractorsAPI.searchInAutocomplete({ tabId, searchWord }, context);
66
+ };
67
+
68
+ const updateContractorUploadDate = (contractorId, uploadDate, context) => {
69
+ validateType(uploadDate, Date);
70
+ return contractorsAPI.updateContractorUploadDate(contractorId, uploadDate, context);
71
+ };
72
+
73
+ const inviteContractorViaPublicLink = async (createContractorModel, context) => {
74
+ validateType(createContractorModel, CreateContractorModel);
75
+ return contractorsAPI.inviteContractorViaPublicLink(createContractorModel, context);
76
+ };
77
+
78
+ const changeRequirement = (recordModifyDateVerificationModel, context) => {
79
+ validateType(recordModifyDateVerificationModel, RecordModifyDateVerificationModel);
80
+ return contractorsAPI.changeRequirement(recordModifyDateVerificationModel, context);
81
+ };
82
+
83
+ const sendGaps = (recordModifyDateVerificationModel, context) => {
84
+ validateType(recordModifyDateVerificationModel, RecordModifyDateVerificationModel);
85
+ return contractorsAPI.sendGaps(recordModifyDateVerificationModel, context);
86
+ };
87
+
88
+ const requestNewCoiAboutToExpire = (recordModifyDateVerificationModel, context) => {
89
+ validateType(recordModifyDateVerificationModel, RecordModifyDateVerificationModel);
90
+ return contractorsAPI.requestNewCoiAboutToExpire(recordModifyDateVerificationModel, context);
91
+ };
92
+
93
+ const requestNewCoiExpired = (recordModifyDateVerificationModel, context) => {
94
+ validateType(recordModifyDateVerificationModel, RecordModifyDateVerificationModel);
95
+ return contractorsAPI.requestNewCoiExpired(recordModifyDateVerificationModel, context);
96
+ };
97
+
98
+ const resendInvitation = (recordModifyDateVerificationModel, context) => {
99
+ validateType(recordModifyDateVerificationModel, RecordModifyDateVerificationModel);
100
+ return contractorsAPI.resendInvitation(recordModifyDateVerificationModel, context);
101
+ };
102
+
103
+ const muteNotifications = (recordModifyDateVerificationModel, context) => {
104
+ validateType(recordModifyDateVerificationModel, RecordModifyDateVerificationModel);
105
+ return contractorsAPI.muteNotifications(recordModifyDateVerificationModel, context);
106
+ };
107
+
108
+ const unmuteNotifications = (recordModifyDateVerificationModel, context) => {
109
+ validateType(recordModifyDateVerificationModel, RecordModifyDateVerificationModel);
110
+ return contractorsAPI.unmuteNotifications(recordModifyDateVerificationModel, context);
111
+ };
112
+
113
+ module.exports = {
114
+ createContractor,
115
+ changeRequirement,
116
+ getContractorsByAccountId,
117
+ getContractorById,
118
+ getRecordHistory,
119
+ deleteByContractorId,
120
+ archiveByContractorId,
121
+ restoreContractor,
122
+ editContractor,
123
+ updateInviteDate,
124
+ updateExpiryDate,
125
+ getContractorsByTabId,
126
+ assignMptToProperties,
127
+ searchInAutoComplete,
128
+ updateContractorUploadDate,
129
+ inviteContractorViaPublicLink,
130
+ sendGaps,
131
+ requestNewCoiAboutToExpire,
132
+ requestNewCoiExpired,
133
+ resendInvitation,
134
+ muteNotifications,
135
+ unmuteNotifications
136
+ };
@@ -1,8 +1,8 @@
1
- const createModel = require('./models/create.contractor.model');
2
- const editModel = require('./models/edit.contractor.model');
3
- const verificationModel = require('./models/verification.contractor.model');
4
- const services = require('./api/contractors.service');
5
-
6
- const models = { create: createModel, edit: editModel, verification: verificationModel };
7
-
8
- module.exports = { services, models };
1
+ const createModel = require('./models/create.contractor.model');
2
+ const editModel = require('./models/edit.contractor.model');
3
+ const verificationModel = require('./models/verification.contractor.model');
4
+ const services = require('./api/contractors.service');
5
+
6
+ const models = { create: createModel, edit: editModel, verification: verificationModel };
7
+
8
+ module.exports = { services, models };
@@ -1,22 +1,22 @@
1
- const { validateType } = require('../../../../common/validations/typeValidations');
2
-
3
- function CreateContractorModel(requirementId, inviterEmail, vendorInfo, { tabId = null, disableMail = true, publicLink } = {}) {
4
- this.reqId = requirementId;
5
- this.inviterEmail = inviterEmail;
6
- this.vendorInfo = vendorInfo;
7
- this.disableMail = disableMail;
8
- this.tabId = tabId;
9
- this.publicLink = publicLink;
10
-
11
- vendorInfo && validateType(vendorInfo, ContractorInfo);
12
- }
13
-
14
- function ContractorInfo(recordType, email, companyName, additionalEmails) {
15
- this.recordType = recordType;
16
- this.email = email;
17
- this.companyName = companyName;
18
- this.title = email;
19
- this.additionalEmails = additionalEmails;
20
- }
21
-
22
- module.exports = { CreateContractorModel, ContractorInfo };
1
+ const { validateType } = require('../../../../common/validations/typeValidations');
2
+
3
+ function CreateContractorModel(requirementId, inviterEmail, vendorInfo, { tabId = null, disableMail = true, publicLink } = {}) {
4
+ this.reqId = requirementId;
5
+ this.inviterEmail = inviterEmail;
6
+ this.vendorInfo = vendorInfo;
7
+ this.disableMail = disableMail;
8
+ this.tabId = tabId;
9
+ this.publicLink = publicLink;
10
+
11
+ vendorInfo && validateType(vendorInfo, ContractorInfo);
12
+ }
13
+
14
+ function ContractorInfo(recordType, email, companyName, additionalEmails) {
15
+ this.recordType = recordType;
16
+ this.email = email;
17
+ this.companyName = companyName;
18
+ this.title = email;
19
+ this.additionalEmails = additionalEmails;
20
+ }
21
+
22
+ module.exports = { CreateContractorModel, ContractorInfo };
@@ -1,91 +1,69 @@
1
- const { validateType } = require('../../../../common/validations/typeValidations');
2
-
3
- class ContractorModel {
4
- constructor(contractorId, recordType, company, emailAddress, tab, additionalDetails) {
5
- validateType(tab, VendorTabModel);
6
- validateType(additionalDetails, ContractorDetailsModel);
7
-
8
- this.contractorId = contractorId;
9
- this.recordType = recordType;
10
- this.company = company;
11
- this.emailAddress = emailAddress;
12
- this.tab = tab;
13
-
14
- for (const detail in additionalDetails) {
15
- if (additionalDetails[detail]) {
16
- this[detail] = additionalDetails[detail];
17
- }
18
- }
19
- }
20
- }
21
-
22
- class ContractorDetailsModel {
23
- constructor({
24
- additionalEmails = [],
25
- dba = null,
26
- firstName = null,
27
- lastName = null,
28
- address = null,
29
- city = null,
30
- state = null,
31
- zipCode = null,
32
- phoneNumber = null,
33
- recordId = null,
34
- projectDescription = null,
35
- startDate = null,
36
- endDate = null,
37
- tenantRecord = {}
38
- } = {}) {
39
- this.dba = dba;
40
- this.fName = firstName;
41
- this.lName = lastName;
42
- this.location = address;
43
- this.city = city;
44
- this.state = state;
45
- this.zipCode = zipCode;
46
- this.phoneNumber = phoneNumber;
47
- this.externalRecordId = recordId;
48
- this.descriptionOfOperations = projectDescription;
49
- this.startDate = startDate;
50
- this.endDate = endDate;
51
-
52
- Object.keys(tenantRecord).length && validateType(tenantRecord, TenantRecordModel);
53
- this.tenantRecord = tenantRecord;
54
-
55
- this.additionalEmails = [];
56
-
57
- for (const email of additionalEmails) {
58
- this.additionalEmails.push(typeof email === 'string' ? { email: email } : email);
59
- }
60
- }
61
- }
62
-
63
- class TenantRecordModel {
64
- constructor(id, companyName, emailAddress) {
65
- this.id = id;
66
- this.companyName = companyName;
67
- this.emailAddress = emailAddress;
68
- }
69
- }
70
-
71
- class VendorTabModel {
72
- constructor(type) {
73
- this.type = type;
74
- }
75
- }
76
-
77
- class MptModel {
78
- constructor(accountId, tenantId, properties) {
79
- this.accountId = accountId;
80
- this.tenantId = tenantId;
81
- this.properties = properties;
82
- }
83
- }
84
-
85
- module.exports = {
86
- ContractorModel,
87
- TenantRecordModel,
88
- VendorTabModel,
89
- ContractorDetailsModel,
90
- MptModel
91
- };
1
+ const { validateType } = require('../../../../common/validations/typeValidations');
2
+
3
+ class ContractorModel {
4
+ constructor(contractorId, recordType, company, emailAddress, additionalDetails) {
5
+ validateType(additionalDetails, ContractorDetailsModel);
6
+
7
+ this.contractorId = contractorId;
8
+ this.recordType = recordType;
9
+ this.company = company;
10
+ this.emailAddress = emailAddress;
11
+
12
+ for (const detail in additionalDetails) {
13
+ if (additionalDetails[detail]) {
14
+ this[detail] = additionalDetails[detail];
15
+ }
16
+ }
17
+ }
18
+ }
19
+
20
+ class ContractorDetailsModel {
21
+ constructor({
22
+ additionalEmails = [],
23
+ dba = null,
24
+ firstName = null,
25
+ lastName = null,
26
+ address = null,
27
+ city = null,
28
+ state = null,
29
+ zipCode = null,
30
+ phoneNumber = null,
31
+ recordId = null,
32
+ projectDescription = null,
33
+ startDate = null,
34
+ endDate = null
35
+ } = {}) {
36
+ this.dba = dba;
37
+ this.fName = firstName;
38
+ this.lName = lastName;
39
+ this.location = address;
40
+ this.city = city;
41
+ this.state = state;
42
+ this.zipCode = zipCode;
43
+ this.phoneNumber = phoneNumber;
44
+ this.externalRecordId = recordId;
45
+ this.descriptionOfOperations = projectDescription;
46
+ this.startDate = startDate;
47
+ this.endDate = endDate;
48
+
49
+ this.additionalEmails = [];
50
+
51
+ for (const email of additionalEmails) {
52
+ this.additionalEmails.push(typeof email === 'string' ? { email: email } : email);
53
+ }
54
+ }
55
+ }
56
+
57
+ class MptModel {
58
+ constructor(accountId, tenantId, properties) {
59
+ this.accountId = accountId;
60
+ this.tenantId = tenantId;
61
+ this.properties = properties;
62
+ }
63
+ }
64
+
65
+ module.exports = {
66
+ ContractorModel,
67
+ ContractorDetailsModel,
68
+ MptModel
69
+ };
@@ -1,33 +1,27 @@
1
- const { validateDateString } = require('../../../../common/validations/typeValidations');
2
-
3
- class RecordModifyDateVerificationModel {
4
- constructor(
5
- contractorId,
6
- contractorDateModified,
7
- {
8
- contractorOverrideDateModified,
9
- requirementId,
10
- requirementDateModified
11
- } = {}
12
- ) {
13
- validateDateString(contractorDateModified);
14
-
15
- if (contractorOverrideDateModified) {
16
- validateDateString(contractorOverrideDateModified);
17
- }
18
-
19
- if (requirementId) {
20
- validateDateString(requirementDateModified);
21
- }
22
-
23
- this.contractorId = contractorId;
24
- this.contractorDateModified = contractorDateModified;
25
- this.contractorOverrideDateModified = contractorOverrideDateModified;
26
- this.requirementId = requirementId;
27
- this.requirementDateModified = requirementDateModified;
28
- }
29
- }
30
-
31
- module.exports = {
32
- RecordModifyDateVerificationModel
33
- };
1
+ const { validateDateString } = require('../../../../common/validations/typeValidations');
2
+
3
+ class RecordModifyDateVerificationModel {
4
+ constructor(
5
+ contractorId,
6
+ {
7
+ contractorDateModified,
8
+ contractorOverrideDateModified,
9
+ requirementId,
10
+ requirementDateModified
11
+ } = {}
12
+ ) {
13
+ contractorDateModified && validateDateString(contractorDateModified);
14
+ contractorOverrideDateModified && validateDateString(contractorOverrideDateModified);
15
+ requirementId && validateDateString(requirementDateModified);
16
+
17
+ this.contractorId = contractorId;
18
+ this.contractorDateModified = contractorDateModified;
19
+ this.contractorOverrideDateModified = contractorOverrideDateModified;
20
+ this.requirementId = requirementId;
21
+ this.requirementDateModified = requirementDateModified;
22
+ }
23
+ }
24
+
25
+ module.exports = {
26
+ RecordModifyDateVerificationModel
27
+ };
@@ -0,0 +1,25 @@
1
+ const requests = require('../../../../common/requests/requestHandlers');
2
+ const { backendUrl, dbEmailsSecrets } = require('../../../../env').getEnv();
3
+
4
+ const Endpoints = {
5
+ dbEmails: `${backendUrl}/_saas/automation/emails/${dbEmailsSecrets}`,
6
+ deleteAllDbEmails: `${backendUrl}/_saas/automation/emails/all/${dbEmailsSecrets}`
7
+ };
8
+
9
+ const getAllMessages = emailModel => {
10
+ return requests.postRequestHandler(Endpoints.dbEmails, emailModel);
11
+ };
12
+
13
+ const deleteMultipleMessages = emailIds => {
14
+ return requests.deleteRequestHandler(Endpoints.dbEmails, { data: emailIds });
15
+ };
16
+
17
+ const deleteAllMessages = () => {
18
+ return requests.deleteRequestHandler(Endpoints.deleteAllDbEmails);
19
+ };
20
+
21
+ module.exports = {
22
+ getAllMessages,
23
+ deleteMultipleMessages,
24
+ deleteAllMessages
25
+ };
@@ -0,0 +1,19 @@
1
+ const dbEmailsApi = require('./db.emails.api');
2
+
3
+ const getAllMessages = emailModel => {
4
+ return dbEmailsApi.postRequestHandler(Endpoints.dbEmails, emailModel);
5
+ };
6
+
7
+ const deleteMultipleMessages = emailIds => {
8
+ return dbEmailsApi.deleteRequestHandler(Endpoints.dbEmails, { data: emailIds });
9
+ };
10
+
11
+ const deleteAllMessages = () => {
12
+ return dbEmailsApi.deleteRequestHandler(Endpoints.deleteAllDbEmails);
13
+ };
14
+
15
+ module.exports = {
16
+ getAllMessages,
17
+ deleteMultipleMessages,
18
+ deleteAllMessages
19
+ };
@@ -0,0 +1,3 @@
1
+ const services = require('./api/db.emails.service');
2
+
3
+ module.exports = { services };
@@ -0,0 +1,21 @@
1
+ class EmailModel {
2
+ constructor(
3
+ from,
4
+ recipientsTo,
5
+ includesOneOfRecipientsTo,
6
+ recipientsCc,
7
+ textInSubject,
8
+ textInBody,
9
+ excludingPhrasesInBody
10
+ ) {
11
+ this.from = from;
12
+ this.recipientsTo = recipientsTo;
13
+ this.includesOneOfRecipientsTo = includesOneOfRecipientsTo;
14
+ this.recipientsCc = recipientsCc;
15
+ this.textInSubject = textInSubject;
16
+ this.textInBody = textInBody;
17
+ this.excludingPhrasesInBody = excludingPhrasesInBody;
18
+ }
19
+ }
20
+
21
+ module.exports = EmailModel;