@getjones/test-infra 4.5.0 → 4.5.1
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 +260 -260
- package/src/common/consts/accountSettings.js +14 -14
- package/src/common/consts/activationStatuses.js +6 -6
- package/src/common/consts/autocomplete.js +10 -10
- package/src/common/consts/constantsForRecordsSortingAndFilters.js +48 -48
- package/src/common/consts/dashboardCharts.js +18 -18
- package/src/common/consts/homepage/AttentionTab.js +5 -5
- package/src/common/consts/homepage/sortOptions.js +14 -14
- package/src/common/consts/ocrStatuses.js +6 -6
- package/src/common/consts/projectSettings.js +21 -21
- package/src/common/consts/recordTypes.js +5 -5
- package/src/common/consts/requirementActions.js +10 -10
- package/src/common/consts/s3FileTypes.js +13 -13
- package/src/common/consts/userRoles.js +18 -18
- package/src/common/consts/userTypes.js +8 -8
- package/src/common/errorCodes.js +3 -3
- package/src/common/httpResponseStatusCodes.json +11 -11
- package/src/common/httpResponseTypes.json +2 -2
- package/src/common/requests/apiKeyAuth/requests.js +44 -44
- package/src/common/requests/cookieAuth/requests.js +40 -40
- package/src/common/requests/internalAuth/requests.js +48 -48
- package/src/common/requests/requestHandlers.js +80 -80
- package/src/common/utils/complianceUtil.js +114 -114
- 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 +146 -125
- package/src/defaults/configs/coverage.js +236 -227
- package/src/defaults/configs/polices.js +75 -75
- 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 +43 -43
- package/src/factory/index.js +8 -8
- package/src/factory/records/records.js +297 -229
- package/src/factory/users/users.js +86 -86
- package/src/index.js +97 -97
- package/src/saas/internal-api/accountDirectory/api/accountDirectory.api.js +50 -50
- package/src/saas/internal-api/accountDirectory/api/accountDirectory.service.js +182 -182
- package/src/saas/internal-api/accountDirectory/index.js +4 -4
- package/src/saas/internal-api/accountDirectory/models/accountDirectory.model.js +40 -40
- package/src/saas/internal-api/accounts/api/core/accounts.core.api.js +35 -35
- package/src/saas/internal-api/accounts/api/core/accounts.core.service.js +93 -93
- package/src/saas/internal-api/accounts/api/emailCustomization/accounts.email.customizations.api.js +29 -29
- package/src/saas/internal-api/accounts/api/emailCustomization/accounts.email.customizations.service.js +61 -61
- 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 +8 -8
- package/src/saas/internal-api/accounts/index.js +22 -22
- 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 +51 -51
- package/src/saas/internal-api/accounts/utils/utils.js +60 -60
- package/src/saas/internal-api/agreement/api/agreement.api.js +39 -39
- package/src/saas/internal-api/agreement/api/agreement.service.js +121 -121
- package/src/saas/internal-api/agreement/consts/consts.js +11 -11
- package/src/saas/internal-api/agreement/index.js +12 -12
- package/src/saas/internal-api/agreement/models/create.agreement.model.js +12 -12
- package/src/saas/internal-api/agreement/models/createAgreementByAuditorModel.js +11 -11
- package/src/saas/internal-api/agreement/models/createAgreementByPMModel.js +13 -13
- package/src/saas/internal-api/auditCustomerRules/api/customer.rules.api.js +43 -43
- package/src/saas/internal-api/auditCustomerRules/api/customer.rules.service.js +105 -105
- package/src/saas/internal-api/auditCustomerRules/consts/customer.rule.js +11 -11
- package/src/saas/internal-api/auditCustomerRules/index.js +6 -6
- package/src/saas/internal-api/auditCustomerRules/models/customer.rule.model.js +46 -46
- package/src/saas/internal-api/auditCustomerRules/utils/customer.rule.util.js +19 -19
- 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 +45 -45
- package/src/saas/internal-api/coi/api/coi.service.js +39 -39
- package/src/saas/internal-api/coi/consts/hashes.js +4 -4
- package/src/saas/internal-api/coi/consts/uploaderTypes.js +5 -5
- package/src/saas/internal-api/coi/index.js +14 -14
- package/src/saas/internal-api/coi/models/Combine.last.two.cois.model.js +25 -25
- package/src/saas/internal-api/coi/models/submit.coi.model.js +19 -19
- package/src/saas/internal-api/coi/utils/utils.js +117 -117
- package/src/saas/internal-api/compliance/api/amBestRating/am.best.rating.api.js +12 -12
- package/src/saas/internal-api/compliance/api/amBestRating/am.best.rating.service.js +14 -14
- package/src/saas/internal-api/compliance/api/audit/audit.api.js +115 -115
- package/src/saas/internal-api/compliance/api/audit/audit.service.js +300 -300
- 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 +50 -48
- package/src/saas/internal-api/compliance/api/overrideGap/override.gap.api.js +38 -38
- package/src/saas/internal-api/compliance/api/overrideGap/override.gap.service.js +183 -183
- package/src/saas/internal-api/compliance/consts/audit.js +111 -111
- package/src/saas/internal-api/compliance/index.js +36 -36
- package/src/saas/internal-api/compliance/models/audit/audit.model.js +96 -96
- package/src/saas/internal-api/compliance/models/waive/waive.model.js +49 -49
- package/src/saas/internal-api/compliance/utils/auditUtil.js +254 -254
- package/src/saas/internal-api/compliance/utils/coverageUtil.js +55 -40
- package/src/saas/internal-api/contractors/api/contractors.api.js +209 -209
- package/src/saas/internal-api/contractors/api/contractors.service.js +361 -361
- 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 +73 -73
- package/src/saas/internal-api/contractors/models/link.request.model.js +10 -10
- package/src/saas/internal-api/contractors/models/subscription.contractor.model.js +13 -13
- 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 +156 -156
- package/src/saas/internal-api/dbEmails/consts/consts.js +55 -55
- 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 +87 -87
- 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 +112 -112
- 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/policyFile/api/policy.file.api.js +43 -43
- package/src/saas/internal-api/policyFile/api/policy.file.service.js +117 -117
- package/src/saas/internal-api/policyFile/consts.js +21 -21
- package/src/saas/internal-api/policyFile/index.js +11 -11
- package/src/saas/internal-api/policyFile/models/create.policy.file.model.js +11 -11
- package/src/saas/internal-api/policyFile/models/set.publish.flag.to.policy.model.js +13 -13
- package/src/saas/internal-api/projects/api/core/projects.api.js +39 -39
- package/src/saas/internal-api/projects/api/core/projects.service.js +77 -77
- 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 +40 -40
- package/src/saas/internal-api/projects/utils/utils.js +155 -155
- package/src/saas/internal-api/recordHub/api/record.hub.api.js +14 -14
- package/src/saas/internal-api/recordHub/api/record.hub.service.js +21 -21
- package/src/saas/internal-api/recordHub/index.js +3 -3
- package/src/saas/internal-api/recordNotes/api/record.notes.api.js +38 -38
- package/src/saas/internal-api/recordNotes/api/record.notes.service.js +47 -47
- package/src/saas/internal-api/recordNotes/api/record.notes.utils.js +12 -12
- package/src/saas/internal-api/recordNotes/index.js +3 -3
- package/src/saas/internal-api/reports/api/reports.api.js +62 -62
- package/src/saas/internal-api/reports/api/reports.service.js +79 -79
- package/src/saas/internal-api/reports/consts/consts.js +74 -74
- 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 +126 -126
- package/src/saas/internal-api/requests/api/requests.service.js +301 -301
- package/src/saas/internal-api/requests/index.js +21 -21
- package/src/saas/internal-api/requests/models/create.request.model.js +36 -36
- package/src/saas/internal-api/requests/models/draft.request.criteria.model.js +18 -18
- package/src/saas/internal-api/requests/models/draft.request.report.model.js +14 -14
- package/src/saas/internal-api/requests/models/edit.request.model.js +31 -31
- package/src/saas/internal-api/requests/models/homepageRequestCriteriaModel.js +19 -19
- package/src/saas/internal-api/requests/models/requestListCriteriaModel.js +17 -17
- package/src/saas/internal-api/requests/models/tenant.request.model.js +9 -9
- package/src/saas/internal-api/requests/utils.js +16 -16
- 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 +57 -57
- package/src/saas/internal-api/requirements/api/requirements.service.js +177 -177
- package/src/saas/internal-api/requirements/consts/attributeTypes.json +8 -8
- 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 +35 -35
- package/src/saas/internal-api/requirements/models/update.requirement.model.js +19 -19
- package/src/saas/internal-api/requirements/utils/utils.js +129 -129
- 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 +55 -55
- package/src/saas/internal-api/uploadFiles/api/upload.file.api.js +43 -43
- package/src/saas/internal-api/uploadFiles/api/upload.file.service.js +107 -107
- package/src/saas/internal-api/uploadFiles/consts.js +12 -12
- package/src/saas/internal-api/uploadFiles/index.js +5 -5
- package/src/saas/internal-api/users/api/tenantApp/tenant.app.api.js +38 -38
- package/src/saas/internal-api/users/api/tenantApp/tenant.app.service.js +108 -108
- package/src/saas/internal-api/users/api/users.api.js +127 -127
- package/src/saas/internal-api/users/api/users.service.js +258 -258
- 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 +43 -43
- package/src/saas/internal-api/users/utils/util.js +39 -39
- package/src/saas/internal-api/vendorProfile/api/vendor.profile.api.js +26 -26
- package/src/saas/internal-api/vendorProfile/api/vendor.profile.service.js +19 -19
- 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 +30 -30
- package/src/saas/openapi/coi/coi.service.js +43 -43
- 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 +40 -40
- package/src/saas/openapi/requests/models/update.request.model.js +35 -35
- package/src/saas/openapi/requests/requests.api.js +93 -93
- package/src/saas/openapi/requests/requests.service.js +94 -94
- 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 +41 -41
- package/src/saas/openapi/requirements/requirements.service.js +49 -49
- 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 +51 -51
- package/tests/env.test.js +40 -40
- package/tests/validation.test.js +83 -83
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
const internalRequests = require('../../../../../common/requests/internalAuth/requests');
|
|
2
|
-
const cookieAuthRequests = require('../../../../../common/requests/cookieAuth/requests');
|
|
3
|
-
const { backendUrl, nodeBackendUrl } = require('../../../../../env').getEnv();
|
|
4
|
-
|
|
5
|
-
const Endpoints = {
|
|
6
|
-
saveCoverageNode: `${nodeBackendUrl}/coverage`,
|
|
7
|
-
saveCoverageJava: `${backendUrl}/saas/contractors/coverage`,
|
|
8
|
-
getCoverageByCoiId: coiId => `${nodeBackendUrl}/coverage/${coiId}`,
|
|
9
|
-
deleteCoverageByCoiId: coiId => `${nodeBackendUrl}/coverage/${coiId}`
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const saveCoverageNode = coverage => {
|
|
13
|
-
return internalRequests.postRequestHandler(Endpoints.saveCoverageNode, coverage);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const saveCoverageJava = (auditorContext, auditDates, coverage) => {
|
|
17
|
-
return cookieAuthRequests.postRequestHandler(Endpoints.saveCoverageJava, { auditDates, coverage }, auditorContext);
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
const getCoverageByCoiId = coiId => {
|
|
21
|
-
return internalRequests.getRequestHandler(Endpoints.getCoverageByCoiId(coiId));
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const deleteCoverageByCoiId = (coiId, icsContext) => {
|
|
25
|
-
return cookieAuthRequests.deleteRequestHandler(Endpoints.deleteCoverageByCoiId(coiId), icsContext);
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
module.exports = {
|
|
29
|
-
saveCoverageNode,
|
|
30
|
-
saveCoverageJava,
|
|
31
|
-
getCoverageByCoiId,
|
|
32
|
-
deleteCoverageByCoiId
|
|
33
|
-
};
|
|
1
|
+
const internalRequests = require('../../../../../common/requests/internalAuth/requests');
|
|
2
|
+
const cookieAuthRequests = require('../../../../../common/requests/cookieAuth/requests');
|
|
3
|
+
const { backendUrl, nodeBackendUrl } = require('../../../../../env').getEnv();
|
|
4
|
+
|
|
5
|
+
const Endpoints = {
|
|
6
|
+
saveCoverageNode: `${nodeBackendUrl}/coverage`,
|
|
7
|
+
saveCoverageJava: `${backendUrl}/saas/contractors/coverage`,
|
|
8
|
+
getCoverageByCoiId: coiId => `${nodeBackendUrl}/coverage/${coiId}`,
|
|
9
|
+
deleteCoverageByCoiId: coiId => `${nodeBackendUrl}/coverage/${coiId}`
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const saveCoverageNode = coverage => {
|
|
13
|
+
return internalRequests.postRequestHandler(Endpoints.saveCoverageNode, coverage);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const saveCoverageJava = (auditorContext, auditDates, coverage) => {
|
|
17
|
+
return cookieAuthRequests.postRequestHandler(Endpoints.saveCoverageJava, { auditDates, coverage }, auditorContext);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const getCoverageByCoiId = coiId => {
|
|
21
|
+
return internalRequests.getRequestHandler(Endpoints.getCoverageByCoiId(coiId));
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const deleteCoverageByCoiId = (coiId, icsContext) => {
|
|
25
|
+
return cookieAuthRequests.deleteRequestHandler(Endpoints.deleteCoverageByCoiId(coiId), icsContext);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
module.exports = {
|
|
29
|
+
saveCoverageNode,
|
|
30
|
+
saveCoverageJava,
|
|
31
|
+
getCoverageByCoiId,
|
|
32
|
+
deleteCoverageByCoiId
|
|
33
|
+
};
|
|
@@ -1,48 +1,50 @@
|
|
|
1
|
-
const coverageApi = require('./coverage.api');
|
|
2
|
-
const { prepareMetadataForAudit } = require('../../../../../common/utils/complianceUtil');
|
|
3
|
-
const { getCoverageConfig, getAllAvailablePolicies } = require('../../utils/coverageUtil');
|
|
4
|
-
|
|
5
|
-
const saveCoverageNode = coverage => {
|
|
6
|
-
return coverageApi.saveCoverageNode(coverage);
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
const saveCoverageJava = (auditorContext, auditDates, coverage) => {
|
|
10
|
-
return coverageApi.saveCoverageJava(auditorContext, auditDates, coverage);
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
const getCoverageByCoiId = (coiId, crossServiceCommunicationAuthKey) => {
|
|
14
|
-
return coverageApi.getCoverageByCoiId(coiId, crossServiceCommunicationAuthKey).then(res => res && res.data);
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
const deleteCoverageByCoiId = (coiId, icsContext) => {
|
|
18
|
-
return coverageApi.deleteCoverageByCoiId(coiId, icsContext);
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const addCoverage = async function(
|
|
22
|
-
auditorContext,
|
|
23
|
-
accountId,
|
|
24
|
-
projectId,
|
|
25
|
-
requirementId,
|
|
26
|
-
record,
|
|
27
|
-
|
|
28
|
-
) {
|
|
29
|
-
const coiId = record.certificatePdf.split('contractor').shift();
|
|
30
|
-
const recordId = record.contractorId;
|
|
31
|
-
|
|
32
|
-
const { auditDates } = await prepareMetadataForAudit(auditorContext, accountId, projectId, requirementId, recordId);
|
|
33
|
-
|
|
34
|
-
const coverageConfig =
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
1
|
+
const coverageApi = require('./coverage.api');
|
|
2
|
+
const { prepareMetadataForAudit } = require('../../../../../common/utils/complianceUtil');
|
|
3
|
+
const { getCoverageConfig, getAllAvailablePolicies } = require('../../utils/coverageUtil');
|
|
4
|
+
|
|
5
|
+
const saveCoverageNode = coverage => {
|
|
6
|
+
return coverageApi.saveCoverageNode(coverage);
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const saveCoverageJava = (auditorContext, auditDates, coverage) => {
|
|
10
|
+
return coverageApi.saveCoverageJava(auditorContext, auditDates, coverage);
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const getCoverageByCoiId = (coiId, crossServiceCommunicationAuthKey) => {
|
|
14
|
+
return coverageApi.getCoverageByCoiId(coiId, crossServiceCommunicationAuthKey).then(res => res && res.data);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const deleteCoverageByCoiId = (coiId, icsContext) => {
|
|
18
|
+
return coverageApi.deleteCoverageByCoiId(coiId, icsContext);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const addCoverage = async function( //function that fits only automation (fits or is being used? maybe because of the coveragePolicesList which is only a list of policy names) - testFlowsInternalApi.auditRecord is using internalApi.compliance.addCoverage and passes array by default. //persistRecordStatus when passing coverage=true doesn't pass an array (for 28.10.24 i see only tests passing "true" are in setup that doesn't run again so can't see what happens here)
|
|
22
|
+
auditorContext,
|
|
23
|
+
accountId,
|
|
24
|
+
projectId,
|
|
25
|
+
requirementId,
|
|
26
|
+
record,
|
|
27
|
+
policiesCoverageConfig //change naming, not only list now
|
|
28
|
+
) {
|
|
29
|
+
const coiId = record.certificatePdf.split('contractor').shift();
|
|
30
|
+
const recordId = record.contractorId;
|
|
31
|
+
|
|
32
|
+
const { auditDates } = await prepareMetadataForAudit(auditorContext, accountId, projectId, requirementId, recordId);
|
|
33
|
+
|
|
34
|
+
const coverageConfig = getCoverageConfig(coiId, policiesCoverageConfig); //takes all coverage and not just 2 policies!
|
|
35
|
+
|
|
36
|
+
// const coverageConfig = Array.isArray(policiesCoverageConfig) && typeof policiesCoverageConfig[0] !== 'object' ?
|
|
37
|
+
// getCoverageConfig(coiId, policiesCoverageConfig) : //gets from automation only policy names, no limits and so on.. no use in integration
|
|
38
|
+
// getCoverageConfig(coiId, getAllAvailablePolicies()); //getAllAvailablePolicies is not located in current file and gets a format that doesn't fit the function getCoverageConfig - in automation this can happen only via persis
|
|
39
|
+
|
|
40
|
+
const coverageResponse = await saveCoverageJava(auditorContext, auditDates, coverageConfig);
|
|
41
|
+
return coverageResponse;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
module.exports = {
|
|
45
|
+
saveCoverageNode,
|
|
46
|
+
saveCoverageJava,
|
|
47
|
+
getCoverageByCoiId,
|
|
48
|
+
deleteCoverageByCoiId,
|
|
49
|
+
addCoverage
|
|
50
|
+
};
|
|
@@ -1,38 +1,38 @@
|
|
|
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
|
-
getOverridesByRecordId: recordId => `${backendUrl}/saas/integration-tests/record/${recordId}/override`
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const waive = async (contractorId, waiveRequestModel, context) => {
|
|
13
|
-
const status = waiveRequestModel.status;
|
|
14
|
-
delete waiveRequestModel.status;
|
|
15
|
-
return requests.postRequestHandler(Endpoints.waive(contractorId), waiveRequestModel, context, {}, { status });
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
const retract = async (contractorId, retractRequestModel, context) => {
|
|
19
|
-
const status = retractRequestModel.status;
|
|
20
|
-
delete retractRequestModel.status;
|
|
21
|
-
return requests.postRequestHandler(Endpoints.retract(contractorId), retractRequestModel, context, {}, { status });
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const overrideGap = ({ waiveRequestModel, isTestingBackwardCompatibility = false, context }) => {
|
|
25
|
-
const headers = {};
|
|
26
|
-
const params = { isTestingBackwardCompatibility };
|
|
27
|
-
return requests.postRequestHandler(Endpoints.overrideGap, waiveRequestModel, context, headers, params);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
const retractOverride = (retractRequestModel, context) => {
|
|
31
|
-
return requests.postRequestHandler(Endpoints.retractOverride, retractRequestModel, context);
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const getOverridesByRecordId = (recordId, context) => {
|
|
35
|
-
return requests.getRequestHandler(Endpoints.getOverridesByRecordId(recordId), {}, context);
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
module.exports = { waive, retract, overrideGap, retractOverride, getOverridesByRecordId };
|
|
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
|
+
getOverridesByRecordId: recordId => `${backendUrl}/saas/integration-tests/record/${recordId}/override`
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const waive = async (contractorId, waiveRequestModel, context) => {
|
|
13
|
+
const status = waiveRequestModel.status;
|
|
14
|
+
delete waiveRequestModel.status;
|
|
15
|
+
return requests.postRequestHandler(Endpoints.waive(contractorId), waiveRequestModel, context, {}, { status });
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const retract = async (contractorId, retractRequestModel, context) => {
|
|
19
|
+
const status = retractRequestModel.status;
|
|
20
|
+
delete retractRequestModel.status;
|
|
21
|
+
return requests.postRequestHandler(Endpoints.retract(contractorId), retractRequestModel, context, {}, { status });
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const overrideGap = ({ waiveRequestModel, isTestingBackwardCompatibility = false, context }) => {
|
|
25
|
+
const headers = {};
|
|
26
|
+
const params = { isTestingBackwardCompatibility };
|
|
27
|
+
return requests.postRequestHandler(Endpoints.overrideGap, waiveRequestModel, context, headers, params);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const retractOverride = (retractRequestModel, context) => {
|
|
31
|
+
return requests.postRequestHandler(Endpoints.retractOverride, retractRequestModel, context);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const getOverridesByRecordId = (recordId, context) => {
|
|
35
|
+
return requests.getRequestHandler(Endpoints.getOverridesByRecordId(recordId), {}, context);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
module.exports = { waive, retract, overrideGap, retractOverride, getOverridesByRecordId };
|
|
@@ -1,183 +1,183 @@
|
|
|
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 getAllWaiveModels = (
|
|
33
|
-
record,
|
|
34
|
-
policyName,
|
|
35
|
-
attributeName,
|
|
36
|
-
waiverReason,
|
|
37
|
-
remarks,
|
|
38
|
-
{
|
|
39
|
-
userId,
|
|
40
|
-
userRole
|
|
41
|
-
} = {}) => {
|
|
42
|
-
const auditIds = getPolicyAuditIdsFromRecord(record, policyName, auditUtil.getAttributeKey(attributeName));
|
|
43
|
-
userId = userId || env.getSystemUserIdentity(credentials.superUser).id;
|
|
44
|
-
userRole = userRole || userTypes.ICS;
|
|
45
|
-
|
|
46
|
-
const waiverModels = [];
|
|
47
|
-
let i = 0;
|
|
48
|
-
while (i < auditIds.length) {
|
|
49
|
-
const auditId = auditIds[i];
|
|
50
|
-
const waiveModel = new WaiveRequestModel({
|
|
51
|
-
contractorId: record.id,
|
|
52
|
-
auditId,
|
|
53
|
-
waiverReason,
|
|
54
|
-
remarks,
|
|
55
|
-
userId,
|
|
56
|
-
userRole
|
|
57
|
-
});
|
|
58
|
-
waiverModels.push(waiveModel);
|
|
59
|
-
i++;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return waiverModels;
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
const getWaiveModel = (
|
|
66
|
-
record,
|
|
67
|
-
policyName,
|
|
68
|
-
attributeName,
|
|
69
|
-
waiverReason,
|
|
70
|
-
remarks,
|
|
71
|
-
{
|
|
72
|
-
userId,
|
|
73
|
-
userRole
|
|
74
|
-
} = {}) => {
|
|
75
|
-
return getAllWaiveModels(record, policyName, attributeName, waiverReason, remarks, { userId, userRole })[0];
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
const getWaiveModelByGap = (
|
|
79
|
-
record,
|
|
80
|
-
policyName,
|
|
81
|
-
gap,
|
|
82
|
-
reason,
|
|
83
|
-
note,
|
|
84
|
-
{
|
|
85
|
-
userId,
|
|
86
|
-
userRole
|
|
87
|
-
} = {}) => {
|
|
88
|
-
const attributeName = auditUtil.getAttributeNameByGap(record, policyName, gap);
|
|
89
|
-
|
|
90
|
-
return getWaiveModel(record, policyName, attributeName, reason, note, { userId, userRole });
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
const getRetractModel = (record, policyName, attributeName) => {
|
|
94
|
-
const auditId = getPolicyAuditIdsFromRecord(record, policyName, auditUtil.getAttributeKey(attributeName))[0];
|
|
95
|
-
const userId = env.getSystemUserIdentity(credentials.superUser).id;
|
|
96
|
-
const userRole = userTypes.ICS;
|
|
97
|
-
|
|
98
|
-
const retractModel = new RetractRequestModel({
|
|
99
|
-
contractorId: record.id,
|
|
100
|
-
auditId,
|
|
101
|
-
userId,
|
|
102
|
-
userRole
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
return retractModel;
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
const getPolicyAuditIdsFromRecord = (record, policyName, attributeName) => {
|
|
109
|
-
const policy = record.reviewbyAuditor.find(contractorCoverage =>
|
|
110
|
-
contractorCoverage.insuranceName === policyName);
|
|
111
|
-
|
|
112
|
-
if (!policy) {
|
|
113
|
-
throw new Error(`Policy name: ${policyName} don't exist in record`);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
const attributes = policy.errorList.filter(error => error.limitname === attributeName);
|
|
117
|
-
|
|
118
|
-
if (!attributes.length) {
|
|
119
|
-
throw new Error(`Attribute name: ${attributeName} don't exist in record`);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
const auditIds = attributes.map(a => a.auditId);
|
|
123
|
-
|
|
124
|
-
return auditIds;
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
// private method - please refer to waiveAll / acceptAll
|
|
128
|
-
const overrideAll = async (record, reason, context, { note = 'OVERRIDDEN AUTOMATICALLY' } = {}) => {
|
|
129
|
-
let allWaivablePolicies = auditUtil.getAllWaivablePolicies(record, context);
|
|
130
|
-
// Remove duplicates, this can happen for example in case of multiple errors on Additional Insured, Certificate Holder or Additional Information
|
|
131
|
-
allWaivablePolicies = allWaivablePolicies.filter((value, index, self) =>
|
|
132
|
-
index === self.findIndex(t => (
|
|
133
|
-
t.policyName === value.policyName && t.attributeName === value.attributeName
|
|
134
|
-
))
|
|
135
|
-
);
|
|
136
|
-
|
|
137
|
-
for (const waivable of allWaivablePolicies) {
|
|
138
|
-
const waiveModels = getAllWaiveModels(record, waivable.policyName, waivable.attributeName, reason, note);
|
|
139
|
-
for (const waiveModel of waiveModels) {
|
|
140
|
-
const waiveResponse = await overrideGap({ waiveRequestModel: waiveModel, context });
|
|
141
|
-
|
|
142
|
-
if (waiveResponse.status !== httpResponseStatusCodes.OK) {
|
|
143
|
-
throw Error(`Failed to waive ${waivable.policyName} - ${waivable.attributeName} for ${record.company}`);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
const waiveAll = async (record, context, { reason = WAIVER_REASONS.BUSINESS_DECISION, note = 'WAIVED AUTOMATICALLY' } = {}) => {
|
|
150
|
-
if (reason === WAIVER_REASONS.ACCEPT_NO_EXPOSURE) {
|
|
151
|
-
throw Error('Invalid override gap reason to waive');
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
await overrideAll(record, reason, context, { note });
|
|
155
|
-
};
|
|
156
|
-
|
|
157
|
-
const acceptAll = async (record, context, { note = 'ACCEPTED AUTOMATICALLY' } = {}) => {
|
|
158
|
-
await overrideAll(record, WAIVER_REASONS.ACCEPT_NO_EXPOSURE, context, { note });
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
const getOverridesByRecordId = async function(recordId, context) {
|
|
162
|
-
const responseAudit = await overrideGapApi.getOverridesByRecordId(recordId, context);
|
|
163
|
-
|
|
164
|
-
if (responseAudit.status !== httpResponseStatusCodes.OK) {
|
|
165
|
-
throw Error(`Failed to get overrides by record id\n${responseAudit}`);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return responseAudit.data;
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
module.exports = {
|
|
172
|
-
waive,
|
|
173
|
-
waiveAll,
|
|
174
|
-
acceptAll,
|
|
175
|
-
retract,
|
|
176
|
-
getWaiveModel,
|
|
177
|
-
getAllWaiveModels,
|
|
178
|
-
getRetractModel,
|
|
179
|
-
getWaiveModelByGap,
|
|
180
|
-
overrideGap,
|
|
181
|
-
retractOverride,
|
|
182
|
-
getOverridesByRecordId
|
|
183
|
-
};
|
|
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 getAllWaiveModels = (
|
|
33
|
+
record,
|
|
34
|
+
policyName,
|
|
35
|
+
attributeName,
|
|
36
|
+
waiverReason,
|
|
37
|
+
remarks,
|
|
38
|
+
{
|
|
39
|
+
userId,
|
|
40
|
+
userRole
|
|
41
|
+
} = {}) => {
|
|
42
|
+
const auditIds = getPolicyAuditIdsFromRecord(record, policyName, auditUtil.getAttributeKey(attributeName));
|
|
43
|
+
userId = userId || env.getSystemUserIdentity(credentials.superUser).id;
|
|
44
|
+
userRole = userRole || userTypes.ICS;
|
|
45
|
+
|
|
46
|
+
const waiverModels = [];
|
|
47
|
+
let i = 0;
|
|
48
|
+
while (i < auditIds.length) {
|
|
49
|
+
const auditId = auditIds[i];
|
|
50
|
+
const waiveModel = new WaiveRequestModel({
|
|
51
|
+
contractorId: record.id,
|
|
52
|
+
auditId,
|
|
53
|
+
waiverReason,
|
|
54
|
+
remarks,
|
|
55
|
+
userId,
|
|
56
|
+
userRole
|
|
57
|
+
});
|
|
58
|
+
waiverModels.push(waiveModel);
|
|
59
|
+
i++;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return waiverModels;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const getWaiveModel = (
|
|
66
|
+
record,
|
|
67
|
+
policyName,
|
|
68
|
+
attributeName,
|
|
69
|
+
waiverReason,
|
|
70
|
+
remarks,
|
|
71
|
+
{
|
|
72
|
+
userId,
|
|
73
|
+
userRole
|
|
74
|
+
} = {}) => {
|
|
75
|
+
return getAllWaiveModels(record, policyName, attributeName, waiverReason, remarks, { userId, userRole })[0];
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const getWaiveModelByGap = (
|
|
79
|
+
record,
|
|
80
|
+
policyName,
|
|
81
|
+
gap,
|
|
82
|
+
reason,
|
|
83
|
+
note,
|
|
84
|
+
{
|
|
85
|
+
userId,
|
|
86
|
+
userRole
|
|
87
|
+
} = {}) => {
|
|
88
|
+
const attributeName = auditUtil.getAttributeNameByGap(record, policyName, gap);
|
|
89
|
+
|
|
90
|
+
return getWaiveModel(record, policyName, attributeName, reason, note, { userId, userRole });
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const getRetractModel = (record, policyName, attributeName) => {
|
|
94
|
+
const auditId = getPolicyAuditIdsFromRecord(record, policyName, auditUtil.getAttributeKey(attributeName))[0];
|
|
95
|
+
const userId = env.getSystemUserIdentity(credentials.superUser).id;
|
|
96
|
+
const userRole = userTypes.ICS;
|
|
97
|
+
|
|
98
|
+
const retractModel = new RetractRequestModel({
|
|
99
|
+
contractorId: record.id,
|
|
100
|
+
auditId,
|
|
101
|
+
userId,
|
|
102
|
+
userRole
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
return retractModel;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
const getPolicyAuditIdsFromRecord = (record, policyName, attributeName) => {
|
|
109
|
+
const policy = record.reviewbyAuditor.find(contractorCoverage =>
|
|
110
|
+
contractorCoverage.insuranceName === policyName);
|
|
111
|
+
|
|
112
|
+
if (!policy) {
|
|
113
|
+
throw new Error(`Policy name: ${policyName} don't exist in record`);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
const attributes = policy.errorList.filter(error => error.limitname === attributeName);
|
|
117
|
+
|
|
118
|
+
if (!attributes.length) {
|
|
119
|
+
throw new Error(`Attribute name: ${attributeName} don't exist in record`);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const auditIds = attributes.map(a => a.auditId);
|
|
123
|
+
|
|
124
|
+
return auditIds;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
// private method - please refer to waiveAll / acceptAll
|
|
128
|
+
const overrideAll = async (record, reason, context, { note = 'OVERRIDDEN AUTOMATICALLY' } = {}) => {
|
|
129
|
+
let allWaivablePolicies = auditUtil.getAllWaivablePolicies(record, context);
|
|
130
|
+
// Remove duplicates, this can happen for example in case of multiple errors on Additional Insured, Certificate Holder or Additional Information
|
|
131
|
+
allWaivablePolicies = allWaivablePolicies.filter((value, index, self) =>
|
|
132
|
+
index === self.findIndex(t => (
|
|
133
|
+
t.policyName === value.policyName && t.attributeName === value.attributeName
|
|
134
|
+
))
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
for (const waivable of allWaivablePolicies) {
|
|
138
|
+
const waiveModels = getAllWaiveModels(record, waivable.policyName, waivable.attributeName, reason, note);
|
|
139
|
+
for (const waiveModel of waiveModels) {
|
|
140
|
+
const waiveResponse = await overrideGap({ waiveRequestModel: waiveModel, context });
|
|
141
|
+
|
|
142
|
+
if (waiveResponse.status !== httpResponseStatusCodes.OK) {
|
|
143
|
+
throw Error(`Failed to waive ${waivable.policyName} - ${waivable.attributeName} for ${record.company}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
const waiveAll = async (record, context, { reason = WAIVER_REASONS.BUSINESS_DECISION, note = 'WAIVED AUTOMATICALLY' } = {}) => {
|
|
150
|
+
if (reason === WAIVER_REASONS.ACCEPT_NO_EXPOSURE) {
|
|
151
|
+
throw Error('Invalid override gap reason to waive');
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
await overrideAll(record, reason, context, { note });
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
const acceptAll = async (record, context, { note = 'ACCEPTED AUTOMATICALLY' } = {}) => {
|
|
158
|
+
await overrideAll(record, WAIVER_REASONS.ACCEPT_NO_EXPOSURE, context, { note });
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
const getOverridesByRecordId = async function(recordId, context) {
|
|
162
|
+
const responseAudit = await overrideGapApi.getOverridesByRecordId(recordId, context);
|
|
163
|
+
|
|
164
|
+
if (responseAudit.status !== httpResponseStatusCodes.OK) {
|
|
165
|
+
throw Error(`Failed to get overrides by record id\n${responseAudit}`);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
return responseAudit.data;
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
module.exports = {
|
|
172
|
+
waive,
|
|
173
|
+
waiveAll,
|
|
174
|
+
acceptAll,
|
|
175
|
+
retract,
|
|
176
|
+
getWaiveModel,
|
|
177
|
+
getAllWaiveModels,
|
|
178
|
+
getRetractModel,
|
|
179
|
+
getWaiveModelByGap,
|
|
180
|
+
overrideGap,
|
|
181
|
+
retractOverride,
|
|
182
|
+
getOverridesByRecordId
|
|
183
|
+
};
|