@getjones/test-infra 2.12.2 → 2.12.4
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.
- package/package.json +30 -30
- package/src/common/commonFlows/auth/auth.js +40 -40
- package/src/common/commonFlows/index.js +4 -4
- package/src/common/commonFlows/records/records.js +102 -102
- package/src/common/consts/dashboardCharts.js +18 -18
- package/src/common/consts/recordTypes.js +5 -5
- package/src/common/consts/s3FileTypes.js +12 -11
- package/src/common/consts/userTypes.js +8 -8
- package/src/common/httpResponseStatusCodes.json +11 -11
- package/src/common/requests/apiKeyAuth/requests.js +44 -44
- package/src/common/requests/cookieAuth/requests.js +40 -40
- package/src/common/requests/requestHandlers.js +78 -78
- package/src/common/utils/complianceUtil.js +83 -83
- package/src/common/utils/configsUtil.js +22 -22
- package/src/common/utils/dataTypeUtils.js +41 -41
- package/src/common/utils/numberUtils.js +22 -22
- package/src/common/utils/objectUtils.js +7 -7
- package/src/common/utils/timeUtils.js +177 -177
- package/src/common/validations/errorValidation.js +16 -16
- package/src/common/validations/typeValidations.js +36 -36
- package/src/defaults/configs/auditConfigs.js +91 -91
- package/src/defaults/configs/coverage.js +227 -227
- package/src/defaults/configs/polices.js +57 -57
- package/src/defaults/configs/requirement.js +32 -32
- package/src/defaults/index.js +6 -6
- package/src/env.js +57 -57
- package/src/factory/globalRecord/globalRecord.js +70 -70
- package/src/factory/index.js +8 -8
- package/src/factory/records/records.js +147 -147
- package/src/factory/users/users.js +77 -77
- package/src/index.js +89 -89
- package/src/resources/virusFile.pdf +0 -0
- package/src/saas/internal-api/accounts/api/core/accounts.core.api.js +28 -28
- package/src/saas/internal-api/accounts/api/core/accounts.core.service.js +82 -82
- package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.api.js +48 -48
- package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.service.js +74 -74
- package/src/saas/internal-api/accounts/api/settings/settings.api.js +21 -21
- package/src/saas/internal-api/accounts/api/settings/settings.service.js +41 -41
- package/src/saas/internal-api/accounts/consts/consts.js +6 -6
- package/src/saas/internal-api/accounts/index.js +20 -20
- package/src/saas/internal-api/accounts/models/core/create.account.model.js +16 -16
- package/src/saas/internal-api/accounts/models/settings/update.settings.model.js +38 -38
- package/src/saas/internal-api/accounts/utils/utils.js +58 -58
- package/src/saas/internal-api/agreement/api/agreement.api.js +35 -35
- package/src/saas/internal-api/agreement/api/agreement.service.js +81 -67
- package/src/saas/internal-api/agreement/consts/consts.js +8 -8
- package/src/saas/internal-api/agreement/index.js +11 -11
- package/src/saas/internal-api/agreement/models/create.agreement.model.js +12 -12
- package/src/saas/internal-api/auditNotes/api/audit.notes.api.js +40 -40
- package/src/saas/internal-api/auditNotes/api/audit.notes.service.js +115 -115
- package/src/saas/internal-api/auditNotes/index.js +4 -4
- package/src/saas/internal-api/auditNotes/models/audit.note.model.js +30 -30
- package/src/saas/internal-api/auth/api/auth.api.js +27 -27
- package/src/saas/internal-api/auth/api/auth.service.js +90 -90
- package/src/saas/internal-api/auth/index.js +3 -3
- package/src/saas/internal-api/coi/api/coi.api.js +34 -34
- package/src/saas/internal-api/coi/api/coi.service.js +22 -22
- package/src/saas/internal-api/coi/consts/uploaderTypes.js +5 -5
- package/src/saas/internal-api/coi/index.js +13 -13
- package/src/saas/internal-api/coi/models/submit.coi.model.js +9 -9
- package/src/saas/internal-api/coi/utils/utils.js +48 -48
- package/src/saas/internal-api/compliance/api/audit/audit.api.js +96 -96
- package/src/saas/internal-api/compliance/api/audit/audit.service.js +219 -219
- package/src/saas/internal-api/compliance/api/convert/convert.api.js +17 -17
- package/src/saas/internal-api/compliance/api/convert/convert.service.js +11 -11
- package/src/saas/internal-api/compliance/api/coverage/coverage.api.js +33 -33
- package/src/saas/internal-api/compliance/api/coverage/coverage.service.js +48 -48
- package/src/saas/internal-api/compliance/api/overrideGap/override.gap.api.js +33 -33
- package/src/saas/internal-api/compliance/api/overrideGap/override.gap.service.js +141 -141
- package/src/saas/internal-api/compliance/consts/audit.js +102 -102
- package/src/saas/internal-api/compliance/index.js +33 -33
- package/src/saas/internal-api/compliance/models/audit/audit.model.js +94 -94
- package/src/saas/internal-api/compliance/models/waive/waive.model.js +49 -49
- package/src/saas/internal-api/compliance/utils/auditUtil.js +222 -222
- package/src/saas/internal-api/compliance/utils/coverageUtil.js +40 -40
- package/src/saas/internal-api/contractors/api/contractors.api.js +159 -159
- package/src/saas/internal-api/contractors/api/contractors.service.js +212 -212
- package/src/saas/internal-api/contractors/consts/consts.js +6 -6
- package/src/saas/internal-api/contractors/index.js +8 -8
- package/src/saas/internal-api/contractors/models/assign.requirement.model.js +10 -10
- package/src/saas/internal-api/contractors/models/edit.contractor.model.js +60 -60
- package/src/saas/internal-api/contractors/models/verification.contractor.model.js +27 -27
- package/src/saas/internal-api/contractors/utils.js +25 -25
- package/src/saas/internal-api/dashboard/api/recordList.api.js +38 -38
- package/src/saas/internal-api/dashboard/api/recordList.service.js +60 -60
- package/src/saas/internal-api/dashboard/index.js +5 -5
- package/src/saas/internal-api/dashboard/models/dashboard.filter.criteria.model.js +38 -38
- package/src/saas/internal-api/dbEmails/api/db.emails.api.js +25 -25
- package/src/saas/internal-api/dbEmails/api/db.emails.service.js +147 -147
- package/src/saas/internal-api/dbEmails/consts/consts.js +53 -53
- package/src/saas/internal-api/dbEmails/index.js +6 -6
- package/src/saas/internal-api/dbEmails/models/db.emails.model.js +22 -22
- package/src/saas/internal-api/dbEmails/utils/util.js +82 -82
- package/src/saas/internal-api/emailCustomization/api/email.customization.api.js +26 -26
- package/src/saas/internal-api/emailCustomization/api/email.customization.service.js +50 -50
- package/src/saas/internal-api/emailCustomization/index.js +3 -3
- package/src/saas/internal-api/globalRecord/api/global.record.api.js +95 -95
- package/src/saas/internal-api/globalRecord/api/global.record.service.js +106 -106
- package/src/saas/internal-api/globalRecord/consts.js +20 -20
- package/src/saas/internal-api/globalRecord/index.js +6 -6
- package/src/saas/internal-api/globalRecord/models/global.record.model.js +60 -60
- package/src/saas/internal-api/globalRecord/utils/util.js +161 -161
- package/src/saas/internal-api/homepageCharts/api/charts.api.js +12 -12
- package/src/saas/internal-api/homepageCharts/api/charts.service.js +7 -7
- package/src/saas/internal-api/homepageCharts/index.js +3 -3
- package/src/saas/internal-api/projects/api/core/projects.api.js +39 -39
- package/src/saas/internal-api/projects/api/core/projects.service.js +65 -65
- package/src/saas/internal-api/projects/api/settings/project.settings.api.js +18 -18
- package/src/saas/internal-api/projects/api/settings/project.settings.service.js +35 -35
- package/src/saas/internal-api/projects/consts/defaultProject.js +3 -3
- package/src/saas/internal-api/projects/index.js +24 -24
- package/src/saas/internal-api/projects/models/core/create.project.model.js +41 -41
- package/src/saas/internal-api/projects/models/core/update.project.model.js +47 -47
- package/src/saas/internal-api/projects/models/settings/update.project.settings.model.js +41 -41
- package/src/saas/internal-api/projects/utils/utils.js +156 -156
- package/src/saas/internal-api/recordNotes/api/record.notes.api.js +38 -38
- package/src/saas/internal-api/recordNotes/api/record.notes.service.js +29 -29
- package/src/saas/internal-api/recordNotes/index.js +3 -3
- package/src/saas/internal-api/reports/api/reports.api.js +39 -39
- package/src/saas/internal-api/reports/api/reports.service.js +34 -34
- package/src/saas/internal-api/reports/consts/consts.js +64 -64
- package/src/saas/internal-api/reports/index.js +15 -15
- package/src/saas/internal-api/reports/models/report.model.js +27 -27
- package/src/saas/internal-api/requests/api/requests.api.js +78 -78
- package/src/saas/internal-api/requests/api/requests.service.js +151 -151
- package/src/saas/internal-api/requests/index.js +16 -16
- package/src/saas/internal-api/requests/models/create.request.model.js +33 -33
- package/src/saas/internal-api/requests/models/edit.request.model.js +31 -31
- package/src/saas/internal-api/requests/models/inner.page.request.criteria.model.js +17 -17
- package/src/saas/internal-api/requests/models/tenant.request.model.js +9 -9
- package/src/saas/internal-api/requests/utils.js +8 -8
- package/src/saas/internal-api/requestsTable/api/requests.table.api.js +20 -20
- package/src/saas/internal-api/requestsTable/api/requests.table.service.js +14 -14
- package/src/saas/internal-api/requestsTable/index.js +3 -3
- package/src/saas/internal-api/requirements/api/requirements.api.js +45 -45
- package/src/saas/internal-api/requirements/api/requirements.service.js +134 -134
- package/src/saas/internal-api/requirements/consts/attributeTypes.json +6 -6
- package/src/saas/internal-api/requirements/consts/consts.js +6 -6
- package/src/saas/internal-api/requirements/index.js +10 -10
- package/src/saas/internal-api/requirements/models/create.requirement.model.js +17 -17
- package/src/saas/internal-api/requirements/models/policy.model.js +33 -33
- package/src/saas/internal-api/requirements/models/update.requirement.model.js +19 -19
- package/src/saas/internal-api/requirements/utils/utils.js +115 -115
- package/src/saas/internal-api/serviceArea/api/coordinates.api.js +12 -12
- package/src/saas/internal-api/serviceArea/api/coordinates.service.js +7 -7
- package/src/saas/internal-api/serviceArea/index.js +4 -4
- package/src/saas/internal-api/serviceArea/utils/utils.js +8 -8
- package/src/saas/internal-api/tabs/api/tabs.api.js +32 -32
- package/src/saas/internal-api/tabs/api/tabs.service.js +54 -54
- package/src/saas/internal-api/tabs/index.js +3 -3
- package/src/saas/internal-api/tabs/models/tabs.model.js +19 -19
- package/src/saas/internal-api/thread-scheduler/runner.js +39 -39
- package/src/saas/internal-api/uploadFiles/api/upload.file.api.js +31 -25
- package/src/saas/internal-api/uploadFiles/api/upload.file.service.js +42 -32
- package/src/saas/internal-api/uploadFiles/consts.js +12 -12
- package/src/saas/internal-api/uploadFiles/index.js +3 -3
- package/src/saas/internal-api/users/api/tenantApp/tenant.app.api.js +32 -32
- package/src/saas/internal-api/users/api/tenantApp/tenant.app.service.js +78 -78
- package/src/saas/internal-api/users/api/users.api.js +115 -115
- package/src/saas/internal-api/users/api/users.service.js +203 -203
- package/src/saas/internal-api/users/index.js +16 -16
- package/src/saas/internal-api/users/models/create.inner.system.user.model.js +18 -18
- package/src/saas/internal-api/users/models/notification.settings.model.js +12 -12
- package/src/saas/internal-api/users/models/tenent.user.model.js +11 -11
- package/src/saas/internal-api/users/models/users.model.js +41 -41
- package/src/saas/internal-api/users/utils/util.js +39 -39
- package/src/saas/internal-api/vendorProfile/api/vendor.profile.api.js +20 -20
- package/src/saas/internal-api/vendorProfile/api/vendor.profile.service.js +14 -14
- package/src/saas/internal-api/vendorProfile/index.js +3 -3
- package/src/saas/openapi/accounts/accounts.api.js +17 -17
- package/src/saas/openapi/accounts/accounts.service.js +11 -11
- package/src/saas/openapi/coi/coi.api.js +20 -20
- package/src/saas/openapi/coi/coi.service.js +13 -13
- package/src/saas/openapi/projects/projects.api.js +83 -83
- package/src/saas/openapi/projects/projects.service.js +64 -64
- package/src/saas/openapi/requests/index.js +7 -7
- package/src/saas/openapi/requests/models/invite.request.model.js +37 -37
- package/src/saas/openapi/requests/models/update.request.model.js +35 -35
- package/src/saas/openapi/requests/requests.api.js +76 -76
- package/src/saas/openapi/requests/requests.service.js +65 -65
- package/src/saas/openapi/requirements/index.js +6 -6
- package/src/saas/openapi/requirements/models/copy.requirement.model.js +10 -10
- package/src/saas/openapi/requirements/requirements.api.js +32 -32
- package/src/saas/openapi/requirements/requirements.service.js +37 -37
- package/src/saas/openapi/tabs/index.js +6 -6
- package/src/saas/openapi/tabs/models/create.tab.model.js +6 -6
- package/src/saas/openapi/tabs/tabs.api.js +27 -27
- package/src/saas/openapi/tabs/tabs.service.js +19 -19
- package/src/saas/openapi/users/user.model.js +10 -10
- package/src/saas/openapi/users/users.api.js +33 -33
- package/src/saas/openapi/users/users.service.js +41 -41
- package/tests/env.test.js +40 -40
- package/tests/validation.test.js +83 -83
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
const requests = require('../../../../../common/requests/cookieAuth/requests');
|
|
2
|
-
const { backendUrl } = require('../../../../../env').getEnv();
|
|
3
|
-
|
|
4
|
-
const Endpoints = {
|
|
5
|
-
waive: contractorId => `${backendUrl}/saas/contractors/${contractorId}/waiver`,
|
|
6
|
-
retract: contractorId => `${backendUrl}/saas/contractors/${contractorId}/waiver`,
|
|
7
|
-
overrideGap: `${backendUrl}/saas/record/override-gap`,
|
|
8
|
-
retractOverride: `${backendUrl}/saas/record/retract-override`
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const waive = async (contractorId, waiveRequestModel, context) => {
|
|
12
|
-
const status = waiveRequestModel.status;
|
|
13
|
-
delete waiveRequestModel.status;
|
|
14
|
-
return requests.postRequestHandler(Endpoints.waive(contractorId), waiveRequestModel, context, {}, { status });
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
const retract = async (contractorId, retractRequestModel, context) => {
|
|
18
|
-
const status = retractRequestModel.status;
|
|
19
|
-
delete retractRequestModel.status;
|
|
20
|
-
return requests.postRequestHandler(Endpoints.retract(contractorId), retractRequestModel, context, {}, { status });
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
const overrideGap = ({ waiveRequestModel, isTestingBackwardCompatibility = false, context }) => {
|
|
24
|
-
const headers = {};
|
|
25
|
-
const params = { isTestingBackwardCompatibility };
|
|
26
|
-
return requests.postRequestHandler(Endpoints.overrideGap, waiveRequestModel, context, headers, params);
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
const retractOverride = (retractRequestModel, context) => {
|
|
30
|
-
return requests.postRequestHandler(Endpoints.retractOverride, retractRequestModel, context);
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
module.exports = { waive, retract, overrideGap, retractOverride };
|
|
1
|
+
const requests = require('../../../../../common/requests/cookieAuth/requests');
|
|
2
|
+
const { backendUrl } = require('../../../../../env').getEnv();
|
|
3
|
+
|
|
4
|
+
const Endpoints = {
|
|
5
|
+
waive: contractorId => `${backendUrl}/saas/contractors/${contractorId}/waiver`,
|
|
6
|
+
retract: contractorId => `${backendUrl}/saas/contractors/${contractorId}/waiver`,
|
|
7
|
+
overrideGap: `${backendUrl}/saas/record/override-gap`,
|
|
8
|
+
retractOverride: `${backendUrl}/saas/record/retract-override`
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const waive = async (contractorId, waiveRequestModel, context) => {
|
|
12
|
+
const status = waiveRequestModel.status;
|
|
13
|
+
delete waiveRequestModel.status;
|
|
14
|
+
return requests.postRequestHandler(Endpoints.waive(contractorId), waiveRequestModel, context, {}, { status });
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const retract = async (contractorId, retractRequestModel, context) => {
|
|
18
|
+
const status = retractRequestModel.status;
|
|
19
|
+
delete retractRequestModel.status;
|
|
20
|
+
return requests.postRequestHandler(Endpoints.retract(contractorId), retractRequestModel, context, {}, { status });
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const overrideGap = ({ waiveRequestModel, isTestingBackwardCompatibility = false, context }) => {
|
|
24
|
+
const headers = {};
|
|
25
|
+
const params = { isTestingBackwardCompatibility };
|
|
26
|
+
return requests.postRequestHandler(Endpoints.overrideGap, waiveRequestModel, context, headers, params);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const retractOverride = (retractRequestModel, context) => {
|
|
30
|
+
return requests.postRequestHandler(Endpoints.retractOverride, retractRequestModel, context);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
module.exports = { waive, retract, overrideGap, retractOverride };
|
|
@@ -1,141 +1,141 @@
|
|
|
1
|
-
const env = require('../../../../../env');
|
|
2
|
-
|
|
3
|
-
const overrideGapApi = require('./override.gap.api');
|
|
4
|
-
const { WaiveRequestModel, RetractRequestModel, WAIVER_REASONS } = require('../../models/waive/waive.model');
|
|
5
|
-
const { validateType } = require('../../../../../common/validations/typeValidations');
|
|
6
|
-
const auditUtil = require('../../utils/auditUtil');
|
|
7
|
-
const httpResponseStatusCodes = require('../../../../../common/httpResponseStatusCodes.json');
|
|
8
|
-
|
|
9
|
-
const { credentials } = env.getEnv();
|
|
10
|
-
const userTypes = require('../../../../../common/consts/userTypes');
|
|
11
|
-
|
|
12
|
-
const waive = (waiveRequestModel, context) => {
|
|
13
|
-
validateType(waiveRequestModel, WaiveRequestModel);
|
|
14
|
-
return overrideGapApi.waive(waiveRequestModel.contractorId, waiveRequestModel, context);
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
const retract = (retractRequestModel, context) => {
|
|
18
|
-
validateType(retractRequestModel, RetractRequestModel);
|
|
19
|
-
return overrideGapApi.retract(retractRequestModel.contractorId, retractRequestModel, context);
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const overrideGap = ({ waiveRequestModel, isTestingBackwardCompatibility = false, context }) => {
|
|
23
|
-
validateType(waiveRequestModel, WaiveRequestModel);
|
|
24
|
-
return overrideGapApi.overrideGap({ waiveRequestModel, isTestingBackwardCompatibility, context });
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
const retractOverride = (retractRequestModel, context) => {
|
|
28
|
-
validateType(retractRequestModel, RetractRequestModel);
|
|
29
|
-
return overrideGapApi.retractOverride(retractRequestModel, context);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const getWaiveModel = (
|
|
33
|
-
record,
|
|
34
|
-
policyName,
|
|
35
|
-
attributeName,
|
|
36
|
-
waiverReason,
|
|
37
|
-
remarks,
|
|
38
|
-
{
|
|
39
|
-
userId,
|
|
40
|
-
userRole
|
|
41
|
-
} = {}) => {
|
|
42
|
-
const auditId = getPolicyAuditIdFromRecord(record, policyName, auditUtil.getAttributeKey(attributeName));
|
|
43
|
-
userId = userId || env.getSystemUserIdentity(credentials.superUser).id;
|
|
44
|
-
userRole = userRole || userTypes.ICS;
|
|
45
|
-
|
|
46
|
-
const waiveModel = new WaiveRequestModel({
|
|
47
|
-
contractorId: record.id,
|
|
48
|
-
auditId,
|
|
49
|
-
waiverReason,
|
|
50
|
-
remarks,
|
|
51
|
-
userId,
|
|
52
|
-
userRole
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
return waiveModel;
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
const getWaiveModelByGap = (
|
|
59
|
-
record,
|
|
60
|
-
policyName,
|
|
61
|
-
gap,
|
|
62
|
-
reason,
|
|
63
|
-
note,
|
|
64
|
-
{
|
|
65
|
-
userId,
|
|
66
|
-
userRole
|
|
67
|
-
} = {}) => {
|
|
68
|
-
const attributeName = auditUtil.getAttributeNameByGap(record, policyName, gap);
|
|
69
|
-
|
|
70
|
-
return getWaiveModel(record, policyName, attributeName, reason, note, { userId, userRole });
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
const getRetractModel = (record, policyName, attributeName) => {
|
|
74
|
-
const auditId = getPolicyAuditIdFromRecord(record, policyName, auditUtil.getAttributeKey(attributeName));
|
|
75
|
-
const userId = env.getSystemUserIdentity(credentials.superUser).id;
|
|
76
|
-
const userRole = userTypes.ICS;
|
|
77
|
-
|
|
78
|
-
const retractModel = new RetractRequestModel({
|
|
79
|
-
contractorId: record.id,
|
|
80
|
-
auditId,
|
|
81
|
-
userId,
|
|
82
|
-
userRole
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
return retractModel;
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
const getPolicyAuditIdFromRecord = (record, policyName, attributeName) => {
|
|
89
|
-
const policy = record.reviewbyAuditor.find(contractorCoverage =>
|
|
90
|
-
contractorCoverage.insuranceName === policyName);
|
|
91
|
-
|
|
92
|
-
if (!policy) {
|
|
93
|
-
throw new Error(`Policy name: ${policyName} don't exist in record`);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
const attribute = policy.errorList.find(error => error.limitname === attributeName);
|
|
97
|
-
|
|
98
|
-
if (!attribute) {
|
|
99
|
-
throw new Error(`Attribute name: ${attributeName} don't exist in record`);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
return attribute.auditId;
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
// private method - please refer to waiveAll / acceptAll
|
|
106
|
-
const overrideAll = async (record, reason, context, { note = 'OVERRIDDEN AUTOMATICALLY' } = {}) => {
|
|
107
|
-
const allWaivablePolicies = auditUtil.getAllWaivablePolicies(record, context);
|
|
108
|
-
|
|
109
|
-
for (const waivable of allWaivablePolicies) {
|
|
110
|
-
const waiveModel = getWaiveModel(record, waivable.policyName, waivable.attributeName, reason, note);
|
|
111
|
-
const waiveResponse = await overrideGap({ waiveRequestModel: waiveModel, context });
|
|
112
|
-
|
|
113
|
-
if (waiveResponse.status !== httpResponseStatusCodes.OK) {
|
|
114
|
-
throw Error(`Failed to waive ${waivable.policyName} - ${waivable.attributeName} for ${record.company}`);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
const waiveAll = async (record, context, { reason = WAIVER_REASONS.BUSINESS_DECISION, note = 'WAIVED AUTOMATICALLY' } = {}) => {
|
|
120
|
-
if (reason === WAIVER_REASONS.ACCEPT_NO_EXPOSURE) {
|
|
121
|
-
throw Error('Invalid override gap reason to waive');
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
await overrideAll(record, reason, context, { note });
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
const acceptAll = async (record, context, { note = 'ACCEPTED AUTOMATICALLY' } = {}) => {
|
|
128
|
-
await overrideAll(record, WAIVER_REASONS.ACCEPT_NO_EXPOSURE, context, { note });
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
module.exports = {
|
|
132
|
-
waive,
|
|
133
|
-
waiveAll,
|
|
134
|
-
acceptAll,
|
|
135
|
-
retract,
|
|
136
|
-
getWaiveModel,
|
|
137
|
-
getRetractModel,
|
|
138
|
-
getWaiveModelByGap,
|
|
139
|
-
overrideGap,
|
|
140
|
-
retractOverride
|
|
141
|
-
};
|
|
1
|
+
const env = require('../../../../../env');
|
|
2
|
+
|
|
3
|
+
const overrideGapApi = require('./override.gap.api');
|
|
4
|
+
const { WaiveRequestModel, RetractRequestModel, WAIVER_REASONS } = require('../../models/waive/waive.model');
|
|
5
|
+
const { validateType } = require('../../../../../common/validations/typeValidations');
|
|
6
|
+
const auditUtil = require('../../utils/auditUtil');
|
|
7
|
+
const httpResponseStatusCodes = require('../../../../../common/httpResponseStatusCodes.json');
|
|
8
|
+
|
|
9
|
+
const { credentials } = env.getEnv();
|
|
10
|
+
const userTypes = require('../../../../../common/consts/userTypes');
|
|
11
|
+
|
|
12
|
+
const waive = (waiveRequestModel, context) => {
|
|
13
|
+
validateType(waiveRequestModel, WaiveRequestModel);
|
|
14
|
+
return overrideGapApi.waive(waiveRequestModel.contractorId, waiveRequestModel, context);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const retract = (retractRequestModel, context) => {
|
|
18
|
+
validateType(retractRequestModel, RetractRequestModel);
|
|
19
|
+
return overrideGapApi.retract(retractRequestModel.contractorId, retractRequestModel, context);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const overrideGap = ({ waiveRequestModel, isTestingBackwardCompatibility = false, context }) => {
|
|
23
|
+
validateType(waiveRequestModel, WaiveRequestModel);
|
|
24
|
+
return overrideGapApi.overrideGap({ waiveRequestModel, isTestingBackwardCompatibility, context });
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const retractOverride = (retractRequestModel, context) => {
|
|
28
|
+
validateType(retractRequestModel, RetractRequestModel);
|
|
29
|
+
return overrideGapApi.retractOverride(retractRequestModel, context);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const getWaiveModel = (
|
|
33
|
+
record,
|
|
34
|
+
policyName,
|
|
35
|
+
attributeName,
|
|
36
|
+
waiverReason,
|
|
37
|
+
remarks,
|
|
38
|
+
{
|
|
39
|
+
userId,
|
|
40
|
+
userRole
|
|
41
|
+
} = {}) => {
|
|
42
|
+
const auditId = getPolicyAuditIdFromRecord(record, policyName, auditUtil.getAttributeKey(attributeName));
|
|
43
|
+
userId = userId || env.getSystemUserIdentity(credentials.superUser).id;
|
|
44
|
+
userRole = userRole || userTypes.ICS;
|
|
45
|
+
|
|
46
|
+
const waiveModel = new WaiveRequestModel({
|
|
47
|
+
contractorId: record.id,
|
|
48
|
+
auditId,
|
|
49
|
+
waiverReason,
|
|
50
|
+
remarks,
|
|
51
|
+
userId,
|
|
52
|
+
userRole
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
return waiveModel;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const getWaiveModelByGap = (
|
|
59
|
+
record,
|
|
60
|
+
policyName,
|
|
61
|
+
gap,
|
|
62
|
+
reason,
|
|
63
|
+
note,
|
|
64
|
+
{
|
|
65
|
+
userId,
|
|
66
|
+
userRole
|
|
67
|
+
} = {}) => {
|
|
68
|
+
const attributeName = auditUtil.getAttributeNameByGap(record, policyName, gap);
|
|
69
|
+
|
|
70
|
+
return getWaiveModel(record, policyName, attributeName, reason, note, { userId, userRole });
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const getRetractModel = (record, policyName, attributeName) => {
|
|
74
|
+
const auditId = getPolicyAuditIdFromRecord(record, policyName, auditUtil.getAttributeKey(attributeName));
|
|
75
|
+
const userId = env.getSystemUserIdentity(credentials.superUser).id;
|
|
76
|
+
const userRole = userTypes.ICS;
|
|
77
|
+
|
|
78
|
+
const retractModel = new RetractRequestModel({
|
|
79
|
+
contractorId: record.id,
|
|
80
|
+
auditId,
|
|
81
|
+
userId,
|
|
82
|
+
userRole
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
return retractModel;
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
const getPolicyAuditIdFromRecord = (record, policyName, attributeName) => {
|
|
89
|
+
const policy = record.reviewbyAuditor.find(contractorCoverage =>
|
|
90
|
+
contractorCoverage.insuranceName === policyName);
|
|
91
|
+
|
|
92
|
+
if (!policy) {
|
|
93
|
+
throw new Error(`Policy name: ${policyName} don't exist in record`);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const attribute = policy.errorList.find(error => error.limitname === attributeName);
|
|
97
|
+
|
|
98
|
+
if (!attribute) {
|
|
99
|
+
throw new Error(`Attribute name: ${attributeName} don't exist in record`);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return attribute.auditId;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
// private method - please refer to waiveAll / acceptAll
|
|
106
|
+
const overrideAll = async (record, reason, context, { note = 'OVERRIDDEN AUTOMATICALLY' } = {}) => {
|
|
107
|
+
const allWaivablePolicies = auditUtil.getAllWaivablePolicies(record, context);
|
|
108
|
+
|
|
109
|
+
for (const waivable of allWaivablePolicies) {
|
|
110
|
+
const waiveModel = getWaiveModel(record, waivable.policyName, waivable.attributeName, reason, note);
|
|
111
|
+
const waiveResponse = await overrideGap({ waiveRequestModel: waiveModel, context });
|
|
112
|
+
|
|
113
|
+
if (waiveResponse.status !== httpResponseStatusCodes.OK) {
|
|
114
|
+
throw Error(`Failed to waive ${waivable.policyName} - ${waivable.attributeName} for ${record.company}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
const waiveAll = async (record, context, { reason = WAIVER_REASONS.BUSINESS_DECISION, note = 'WAIVED AUTOMATICALLY' } = {}) => {
|
|
120
|
+
if (reason === WAIVER_REASONS.ACCEPT_NO_EXPOSURE) {
|
|
121
|
+
throw Error('Invalid override gap reason to waive');
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
await overrideAll(record, reason, context, { note });
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
const acceptAll = async (record, context, { note = 'ACCEPTED AUTOMATICALLY' } = {}) => {
|
|
128
|
+
await overrideAll(record, WAIVER_REASONS.ACCEPT_NO_EXPOSURE, context, { note });
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
module.exports = {
|
|
132
|
+
waive,
|
|
133
|
+
waiveAll,
|
|
134
|
+
acceptAll,
|
|
135
|
+
retract,
|
|
136
|
+
getWaiveModel,
|
|
137
|
+
getRetractModel,
|
|
138
|
+
getWaiveModelByGap,
|
|
139
|
+
overrideGap,
|
|
140
|
+
retractOverride
|
|
141
|
+
};
|
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
const COI_AUDIT_STATUSES = {
|
|
2
|
-
NOT_AUDITED: '0',
|
|
3
|
-
REAUDIT: '3'
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
const AUDIT_ENTITY_STATUSES = {
|
|
7
|
-
YES: 'Yes',
|
|
8
|
-
NO: 'No',
|
|
9
|
-
EMPTY: 'empty',
|
|
10
|
-
OTHER: 'other',
|
|
11
|
-
CLAIMS: 'Claims'
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
const VALID_SCORES = ['A+', 'A'];
|
|
15
|
-
|
|
16
|
-
const AUDITOR_ROLE = 'Auditor';
|
|
17
|
-
|
|
18
|
-
const DEFAULT_POLICY_ID = '-3';
|
|
19
|
-
|
|
20
|
-
const POLICY_NAMES_MAP = {
|
|
21
|
-
certificateOfInsurance: 'Certificate of Insurance',
|
|
22
|
-
generalLiability: 'General Liability',
|
|
23
|
-
excessLiability: 'Excess Liability',
|
|
24
|
-
umbrella: 'Umbrella',
|
|
25
|
-
professionalLiability: 'Professional Liability',
|
|
26
|
-
environmentalLiability: 'Environmental Liability',
|
|
27
|
-
liquorLiability: 'Liquor Liability',
|
|
28
|
-
garageLiability: 'Garage Liability',
|
|
29
|
-
garageKeepersLiability: 'Garage Keepers Liability',
|
|
30
|
-
workersCompensation: 'Workers’ Compensation',
|
|
31
|
-
automobileLiability: 'Automobile Liability',
|
|
32
|
-
propertyInsurance: 'Property Insurance',
|
|
33
|
-
rentedLeasedEquipment: 'Rented/Leased Equipment',
|
|
34
|
-
fidelityCrime: 'Fidelity / Crime',
|
|
35
|
-
employmentPracticesLiability: 'Employment Practices Liability',
|
|
36
|
-
directorsAndOfficersLiability: 'Directors and Officers Liability',
|
|
37
|
-
cyberLiability: 'Cyber Liability',
|
|
38
|
-
waiverOfSubrogation: 'Waiver Of Subrogation',
|
|
39
|
-
agreement: 'Agreement',
|
|
40
|
-
certificateHolder: 'Certificate Holder',
|
|
41
|
-
additionalInformation: 'Additional Information',
|
|
42
|
-
additionalInsured: 'Additional Insured',
|
|
43
|
-
businessInterruptionIncomeInsurance: 'Business Interruption / Income Insurance'
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
const ATTRIBUTE_NAMES_MAP = {
|
|
47
|
-
isPolicyExist: 'coverageexists',
|
|
48
|
-
eachOccurrence: 'Each Occurrence',
|
|
49
|
-
expiryDate: 'expirydate',
|
|
50
|
-
policyNumber: 'policyNumber',
|
|
51
|
-
perOccurrence: 'PerOccur',
|
|
52
|
-
perPolicy: 'Per Policy',
|
|
53
|
-
perProject: 'Per Project',
|
|
54
|
-
perLocation: 'Per Location',
|
|
55
|
-
certificateIssueDate: 'certIssueDate',
|
|
56
|
-
insuredAddress: 'Insured Address',
|
|
57
|
-
insuredName: 'Insured Name',
|
|
58
|
-
amRating: 'AMBestRating',
|
|
59
|
-
cancellationTerms: 'cancellationTerms',
|
|
60
|
-
coiAuthentication: 'COIauthentication',
|
|
61
|
-
signature: 'signature',
|
|
62
|
-
indemnityPeriod: 'Indemnity Period',
|
|
63
|
-
actualLossSustained: 'Actual Loss Sustained',
|
|
64
|
-
extraExpense: 'Extra Expense'
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
const auditTriggerType = {
|
|
68
|
-
newAudit: 'NEW_AUDIT',
|
|
69
|
-
changeRequirements: 'CHANGE_REQUIREMENTS',
|
|
70
|
-
updateRequirements: 'UPDATE_REQUIREMENTS',
|
|
71
|
-
updateRequirementsWithNotifications: 'ENTITY_CHANGED',
|
|
72
|
-
gaps: 'GAPS',
|
|
73
|
-
renewal: 'RENEWAL'
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
const auditStatus = {
|
|
77
|
-
pending: 'PENDING',
|
|
78
|
-
inProgress: 'IN_PROGRESS',
|
|
79
|
-
onHold: 'ON_HOLD',
|
|
80
|
-
done: 'DONE',
|
|
81
|
-
canceled: 'CANCELED'
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
const auditOnHoldReason = {
|
|
85
|
-
ESCALATION_TO_PM: 'Escalation to PM',
|
|
86
|
-
ISSUE_WITH_REQUIREMENTS: 'Issue with Requirements',
|
|
87
|
-
REQUIREMENTS_UPDATE: 'Requirements Update',
|
|
88
|
-
INTERNAL_DISCUSSION: 'Internal Discussion'
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
module.exports = {
|
|
92
|
-
DEFAULT_POLICY_ID,
|
|
93
|
-
POLICY_NAMES_MAP,
|
|
94
|
-
ATTRIBUTE_NAMES_MAP,
|
|
95
|
-
COI_AUDIT_STATUSES,
|
|
96
|
-
AUDITOR_ROLE,
|
|
97
|
-
AUDIT_ENTITY_STATUSES,
|
|
98
|
-
VALID_SCORES,
|
|
99
|
-
auditTriggerType,
|
|
100
|
-
auditStatus,
|
|
101
|
-
auditOnHoldReason
|
|
102
|
-
};
|
|
1
|
+
const COI_AUDIT_STATUSES = {
|
|
2
|
+
NOT_AUDITED: '0',
|
|
3
|
+
REAUDIT: '3'
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
const AUDIT_ENTITY_STATUSES = {
|
|
7
|
+
YES: 'Yes',
|
|
8
|
+
NO: 'No',
|
|
9
|
+
EMPTY: 'empty',
|
|
10
|
+
OTHER: 'other',
|
|
11
|
+
CLAIMS: 'Claims'
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const VALID_SCORES = ['A+', 'A'];
|
|
15
|
+
|
|
16
|
+
const AUDITOR_ROLE = 'Auditor';
|
|
17
|
+
|
|
18
|
+
const DEFAULT_POLICY_ID = '-3';
|
|
19
|
+
|
|
20
|
+
const POLICY_NAMES_MAP = {
|
|
21
|
+
certificateOfInsurance: 'Certificate of Insurance',
|
|
22
|
+
generalLiability: 'General Liability',
|
|
23
|
+
excessLiability: 'Excess Liability',
|
|
24
|
+
umbrella: 'Umbrella',
|
|
25
|
+
professionalLiability: 'Professional Liability',
|
|
26
|
+
environmentalLiability: 'Environmental Liability',
|
|
27
|
+
liquorLiability: 'Liquor Liability',
|
|
28
|
+
garageLiability: 'Garage Liability',
|
|
29
|
+
garageKeepersLiability: 'Garage Keepers Liability',
|
|
30
|
+
workersCompensation: 'Workers’ Compensation',
|
|
31
|
+
automobileLiability: 'Automobile Liability',
|
|
32
|
+
propertyInsurance: 'Property Insurance',
|
|
33
|
+
rentedLeasedEquipment: 'Rented/Leased Equipment',
|
|
34
|
+
fidelityCrime: 'Fidelity / Crime',
|
|
35
|
+
employmentPracticesLiability: 'Employment Practices Liability',
|
|
36
|
+
directorsAndOfficersLiability: 'Directors and Officers Liability',
|
|
37
|
+
cyberLiability: 'Cyber Liability',
|
|
38
|
+
waiverOfSubrogation: 'Waiver Of Subrogation',
|
|
39
|
+
agreement: 'Agreement',
|
|
40
|
+
certificateHolder: 'Certificate Holder',
|
|
41
|
+
additionalInformation: 'Additional Information',
|
|
42
|
+
additionalInsured: 'Additional Insured',
|
|
43
|
+
businessInterruptionIncomeInsurance: 'Business Interruption / Income Insurance'
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const ATTRIBUTE_NAMES_MAP = {
|
|
47
|
+
isPolicyExist: 'coverageexists',
|
|
48
|
+
eachOccurrence: 'Each Occurrence',
|
|
49
|
+
expiryDate: 'expirydate',
|
|
50
|
+
policyNumber: 'policyNumber',
|
|
51
|
+
perOccurrence: 'PerOccur',
|
|
52
|
+
perPolicy: 'Per Policy',
|
|
53
|
+
perProject: 'Per Project',
|
|
54
|
+
perLocation: 'Per Location',
|
|
55
|
+
certificateIssueDate: 'certIssueDate',
|
|
56
|
+
insuredAddress: 'Insured Address',
|
|
57
|
+
insuredName: 'Insured Name',
|
|
58
|
+
amRating: 'AMBestRating',
|
|
59
|
+
cancellationTerms: 'cancellationTerms',
|
|
60
|
+
coiAuthentication: 'COIauthentication',
|
|
61
|
+
signature: 'signature',
|
|
62
|
+
indemnityPeriod: 'Indemnity Period',
|
|
63
|
+
actualLossSustained: 'Actual Loss Sustained',
|
|
64
|
+
extraExpense: 'Extra Expense'
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const auditTriggerType = {
|
|
68
|
+
newAudit: 'NEW_AUDIT',
|
|
69
|
+
changeRequirements: 'CHANGE_REQUIREMENTS',
|
|
70
|
+
updateRequirements: 'UPDATE_REQUIREMENTS',
|
|
71
|
+
updateRequirementsWithNotifications: 'ENTITY_CHANGED',
|
|
72
|
+
gaps: 'GAPS',
|
|
73
|
+
renewal: 'RENEWAL'
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const auditStatus = {
|
|
77
|
+
pending: 'PENDING',
|
|
78
|
+
inProgress: 'IN_PROGRESS',
|
|
79
|
+
onHold: 'ON_HOLD',
|
|
80
|
+
done: 'DONE',
|
|
81
|
+
canceled: 'CANCELED'
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const auditOnHoldReason = {
|
|
85
|
+
ESCALATION_TO_PM: 'Escalation to PM',
|
|
86
|
+
ISSUE_WITH_REQUIREMENTS: 'Issue with Requirements',
|
|
87
|
+
REQUIREMENTS_UPDATE: 'Requirements Update',
|
|
88
|
+
INTERNAL_DISCUSSION: 'Internal Discussion'
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
module.exports = {
|
|
92
|
+
DEFAULT_POLICY_ID,
|
|
93
|
+
POLICY_NAMES_MAP,
|
|
94
|
+
ATTRIBUTE_NAMES_MAP,
|
|
95
|
+
COI_AUDIT_STATUSES,
|
|
96
|
+
AUDITOR_ROLE,
|
|
97
|
+
AUDIT_ENTITY_STATUSES,
|
|
98
|
+
VALID_SCORES,
|
|
99
|
+
auditTriggerType,
|
|
100
|
+
auditStatus,
|
|
101
|
+
auditOnHoldReason
|
|
102
|
+
};
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
const auditModels = require('./models/audit/audit.model');
|
|
2
|
-
const auditServices = require('./api/audit/audit.service');
|
|
3
|
-
|
|
4
|
-
const waiveModels = require('./models/waive/waive.model');
|
|
5
|
-
const overrideGapServices = require('./api/overrideGap/override.gap.service');
|
|
6
|
-
|
|
7
|
-
const convertServices = require('./api/convert/convert.service');
|
|
8
|
-
const coverageServices = require('./api/coverage/coverage.service');
|
|
9
|
-
|
|
10
|
-
const auditConsts = require('./consts/audit');
|
|
11
|
-
const auditUtils = require('./utils/auditUtil');
|
|
12
|
-
|
|
13
|
-
const models = {
|
|
14
|
-
audit: auditModels,
|
|
15
|
-
waive: waiveModels
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
const consts = {
|
|
19
|
-
audit: auditConsts
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const utils = {
|
|
23
|
-
audit: auditUtils
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const services = {
|
|
27
|
-
audit: auditServices,
|
|
28
|
-
overrideGap: overrideGapServices,
|
|
29
|
-
convert: convertServices,
|
|
30
|
-
coverage: coverageServices
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
module.exports = { services, models, consts, utils };
|
|
1
|
+
const auditModels = require('./models/audit/audit.model');
|
|
2
|
+
const auditServices = require('./api/audit/audit.service');
|
|
3
|
+
|
|
4
|
+
const waiveModels = require('./models/waive/waive.model');
|
|
5
|
+
const overrideGapServices = require('./api/overrideGap/override.gap.service');
|
|
6
|
+
|
|
7
|
+
const convertServices = require('./api/convert/convert.service');
|
|
8
|
+
const coverageServices = require('./api/coverage/coverage.service');
|
|
9
|
+
|
|
10
|
+
const auditConsts = require('./consts/audit');
|
|
11
|
+
const auditUtils = require('./utils/auditUtil');
|
|
12
|
+
|
|
13
|
+
const models = {
|
|
14
|
+
audit: auditModels,
|
|
15
|
+
waive: waiveModels
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const consts = {
|
|
19
|
+
audit: auditConsts
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const utils = {
|
|
23
|
+
audit: auditUtils
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const services = {
|
|
27
|
+
audit: auditServices,
|
|
28
|
+
overrideGap: overrideGapServices,
|
|
29
|
+
convert: convertServices,
|
|
30
|
+
coverage: coverageServices
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
module.exports = { services, models, consts, utils };
|