@getjones/test-infra 4.5.11 → 4.5.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +269 -269
- package/src/common/consts/accountSettings.js +44 -44
- package/src/common/consts/activationStatuses.js +6 -6
- package/src/common/consts/autocomplete.js +10 -10
- package/src/common/consts/constantsForRecordsSortingAndFilters.js +49 -49
- package/src/common/consts/dashboardCharts.js +18 -18
- package/src/common/consts/homepage/AttentionTab.js +6 -6
- package/src/common/consts/homepage/sortOptions.js +19 -19
- 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 +113 -113
- 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 +125 -125
- package/src/defaults/configs/coverage.js +144 -144
- package/src/defaults/configs/polices.js +76 -76
- 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 +281 -281
- package/src/factory/users/users.js +69 -69
- package/src/index.js +103 -103
- 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 +53 -53
- package/src/saas/internal-api/accounts/utils/utils.js +61 -61
- 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 +58 -58
- package/src/saas/internal-api/coi/api/coi.service.js +61 -61
- package/src/saas/internal-api/coi/consts/hashes.js +5 -5
- 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 +112 -106
- package/src/saas/internal-api/compliance/api/audit/audit.service.js +318 -307
- 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 +46 -46
- 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 +189 -189
- package/src/saas/internal-api/compliance/consts/audit.js +113 -113
- 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 +269 -269
- package/src/saas/internal-api/compliance/utils/coverageUtil.js +45 -45
- 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 +56 -56
- 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/jonesNetworkTab/api/jones.network.tab.api.js +14 -14
- package/src/saas/internal-api/jonesNetworkTab/api/jones.network.tab.service.js +16 -16
- package/src/saas/internal-api/jonesNetworkTab/index.js +3 -3
- package/src/saas/internal-api/notificationCenter/api/notification.center.api.js +32 -32
- package/src/saas/internal-api/notificationCenter/api/notification.center.service.js +49 -49
- package/src/saas/internal-api/notificationCenter/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 +32 -32
- 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 +56 -56
- 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 +132 -132
- package/src/saas/internal-api/requests/api/requests.service.js +312 -312
- 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 +184 -184
- 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 +60 -60
- 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
- package/src/resources/virusFile.pdf +0 -0
|
@@ -1,182 +1,182 @@
|
|
|
1
|
-
const accountDirectoryAPI = require('./accountDirectory.api');
|
|
2
|
-
const accountDirectoryModels = require('../models/accountDirectory.model');
|
|
3
|
-
const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
|
|
4
|
-
const { validateType } = require('../../../../common/validations/typeValidations');
|
|
5
|
-
|
|
6
|
-
const RECORD_TABLE_SORT_BY = {
|
|
7
|
-
COMPANY_NAME: 'COMPANY_NAME',
|
|
8
|
-
PROJECTS_COUNT: 'PROJECTS_COUNT'
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const activationStatuses = {
|
|
12
|
-
ACTIVE: 'ACTIVE',
|
|
13
|
-
IN_ACTIVE: 'IN_ACTIVE'
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const getRecordTableDataByModel = async (accountDirectoryRecordTableFilterModel, context, { expectError } = {}) => {
|
|
17
|
-
validateType(accountDirectoryRecordTableFilterModel, accountDirectoryModels.AccountDirectoryRecordTableFilterModel);
|
|
18
|
-
|
|
19
|
-
const recordTableResponse = await accountDirectoryAPI.getRecordTable(accountDirectoryRecordTableFilterModel, context);
|
|
20
|
-
|
|
21
|
-
if (expectError) {
|
|
22
|
-
return recordTableResponse;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
if (recordTableResponse.status !== httpResponseStatusCodes.OK) {
|
|
26
|
-
throw Error(`Failed to get main page record table. Status code: ${recordTableResponse.status}`);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return recordTableResponse.data.tableRowsData;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const getRecordTableByAccountId = (accountId, context, { sortBy, selectedRecordTypes, selectedStates, searchTerm, pageNum, rowsPerPage, sortOrder, expectError } = {}) => {
|
|
33
|
-
const accountDirectoryRecordTableFilterModel = new accountDirectoryModels.AccountDirectoryRecordTableFilterModel(
|
|
34
|
-
{
|
|
35
|
-
accountId,
|
|
36
|
-
sortBy,
|
|
37
|
-
selectedRecordTypes,
|
|
38
|
-
selectedStates,
|
|
39
|
-
searchTerm,
|
|
40
|
-
pageNum,
|
|
41
|
-
rowsPerPage,
|
|
42
|
-
sortOrder
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
return getRecordTableDataByModel(accountDirectoryRecordTableFilterModel, context, { expectError });
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
const getProjectLocations = async (accountId, context) => {
|
|
49
|
-
const locationFilterResponse = await accountDirectoryAPI.getProjectLocations(accountId, context);
|
|
50
|
-
|
|
51
|
-
if (locationFilterResponse.status !== httpResponseStatusCodes.OK) {
|
|
52
|
-
throw Error(`Failed to get projects locations. Status code: ${locationFilterResponse.status}`);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
return locationFilterResponse.data;
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
const getRecordsCount = async (accountId, context) => {
|
|
59
|
-
const recordsCountResponse = await accountDirectoryAPI.getRecordsCount(accountId, context);
|
|
60
|
-
|
|
61
|
-
if (recordsCountResponse.status !== httpResponseStatusCodes.OK) {
|
|
62
|
-
throw Error(`Failed to get records count. Status code: ${recordsCountResponse.status}`);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return recordsCountResponse.data;
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
const getRequestTableDataByModel = async (accountDirectoryRequestTableFilterModel, context, { expectError } = {}) => {
|
|
69
|
-
validateType(accountDirectoryRequestTableFilterModel, accountDirectoryModels.AccountDirectoryRequestTableFilterModel);
|
|
70
|
-
|
|
71
|
-
const requestTableResponse = await accountDirectoryAPI.getRequestTable(accountDirectoryRequestTableFilterModel, context);
|
|
72
|
-
|
|
73
|
-
if (expectError) {
|
|
74
|
-
return requestTableResponse;
|
|
75
|
-
} else if (requestTableResponse.status !== httpResponseStatusCodes.OK) {
|
|
76
|
-
throw Error(`Failed to get inner page request table. Status code: ${requestTableResponse.status}`);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return requestTableResponse.data;
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
const getRequestTable = (accountId, context, { globalRecordId, recordId, activityStatus, expectError } = {}) => {
|
|
83
|
-
const accountDirectoryRequestTableFilterModel = new accountDirectoryModels.AccountDirectoryRequestTableFilterModel(
|
|
84
|
-
{
|
|
85
|
-
accountId,
|
|
86
|
-
globalRecordId,
|
|
87
|
-
recordId,
|
|
88
|
-
activityStatus
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
return getRequestTableDataByModel(accountDirectoryRequestTableFilterModel, context, { expectError });
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
const getRequestTableFiltersByModel = async (accountDirectoryRequestTableFilterModel, context, { expectError } = {}) => {
|
|
95
|
-
validateType(accountDirectoryRequestTableFilterModel, accountDirectoryModels.AccountDirectoryRequestTableFilterModel);
|
|
96
|
-
|
|
97
|
-
const requestTableFiltersResponse = await accountDirectoryAPI.getRequestTableFilters(accountDirectoryRequestTableFilterModel, context);
|
|
98
|
-
|
|
99
|
-
if (expectError) {
|
|
100
|
-
return requestTableFiltersResponse;
|
|
101
|
-
} else if (requestTableFiltersResponse.status !== httpResponseStatusCodes.OK) {
|
|
102
|
-
throw Error(`Failed to get request table filters. Status code: ${requestTableFiltersResponse.status}`);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return requestTableFiltersResponse.data;
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
const getRequestTableFilters = (accountId, context, { globalRecordId, recordId, activityStatus, expectError } = {}) => {
|
|
109
|
-
const accountDirectoryRequestTableFilterModel = new accountDirectoryModels.AccountDirectoryRequestTableFilterModel(
|
|
110
|
-
{
|
|
111
|
-
accountId,
|
|
112
|
-
globalRecordId,
|
|
113
|
-
recordId,
|
|
114
|
-
activityStatus
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
return getRequestTableFiltersByModel(accountDirectoryRequestTableFilterModel, context, { expectError });
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
const getRequestActivityCountByModel = async (accountDirectoryRequestTableFilterModel, context, { expectError } = {}) => {
|
|
121
|
-
validateType(accountDirectoryRequestTableFilterModel, accountDirectoryModels.AccountDirectoryRequestTableFilterModel);
|
|
122
|
-
|
|
123
|
-
const activityCountResponse = await accountDirectoryAPI.getRequestActivityCount(accountDirectoryRequestTableFilterModel, context);
|
|
124
|
-
|
|
125
|
-
if (expectError) {
|
|
126
|
-
return activityCountResponse;
|
|
127
|
-
} else if (activityCountResponse.status !== httpResponseStatusCodes.OK) {
|
|
128
|
-
throw Error(`Failed to get request activity count. Status code: ${activityCountResponse.status}`);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
return activityCountResponse.data;
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
const getRecordDetailsByModel = async (accountDirectoryRequestTableFilterModel, context) => {
|
|
135
|
-
validateType(accountDirectoryRequestTableFilterModel, accountDirectoryModels.AccountDirectoryRequestTableFilterModel);
|
|
136
|
-
|
|
137
|
-
const recordDetailsResponse = await accountDirectoryAPI.getRecordDetails(accountDirectoryRequestTableFilterModel, context);
|
|
138
|
-
|
|
139
|
-
if (recordDetailsResponse.status !== httpResponseStatusCodes.OK) {
|
|
140
|
-
throw Error(`Failed to get record details. Status code: ${recordDetailsResponse.status}`);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
return recordDetailsResponse.data;
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
const getRequestActivityCount = (accountId, context, { globalRecordId, recordId, activityStatus, expectError } = {}) => {
|
|
147
|
-
const accountDirectoryRequestTableFilterModel = new accountDirectoryModels.AccountDirectoryRequestTableFilterModel(
|
|
148
|
-
{
|
|
149
|
-
accountId,
|
|
150
|
-
globalRecordId,
|
|
151
|
-
recordId,
|
|
152
|
-
activityStatus
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
return getRequestActivityCountByModel(accountDirectoryRequestTableFilterModel, context, { expectError });
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
const getRecordDetails = (accountId, context, { globalRecordId, recordId } = {}) => {
|
|
159
|
-
const accountDirectoryRequestTableFilterModel = new accountDirectoryModels.AccountDirectoryRequestTableFilterModel(
|
|
160
|
-
{
|
|
161
|
-
accountId,
|
|
162
|
-
globalRecordId,
|
|
163
|
-
recordId
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
return getRecordDetailsByModel(accountDirectoryRequestTableFilterModel, context);
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
module.exports = {
|
|
170
|
-
RECORD_TABLE_SORT_BY,
|
|
171
|
-
activationStatuses,
|
|
172
|
-
getRecordTableByAccountId,
|
|
173
|
-
getRecordsCount,
|
|
174
|
-
getProjectLocations,
|
|
175
|
-
getRequestTableDataByModel,
|
|
176
|
-
getRequestTable,
|
|
177
|
-
getRequestTableFiltersByModel,
|
|
178
|
-
getRequestTableFilters,
|
|
179
|
-
getRequestActivityCountByModel,
|
|
180
|
-
getRequestActivityCount,
|
|
181
|
-
getRecordDetails
|
|
182
|
-
};
|
|
1
|
+
const accountDirectoryAPI = require('./accountDirectory.api');
|
|
2
|
+
const accountDirectoryModels = require('../models/accountDirectory.model');
|
|
3
|
+
const httpResponseStatusCodes = require('../../../../common/httpResponseStatusCodes.json');
|
|
4
|
+
const { validateType } = require('../../../../common/validations/typeValidations');
|
|
5
|
+
|
|
6
|
+
const RECORD_TABLE_SORT_BY = {
|
|
7
|
+
COMPANY_NAME: 'COMPANY_NAME',
|
|
8
|
+
PROJECTS_COUNT: 'PROJECTS_COUNT'
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const activationStatuses = {
|
|
12
|
+
ACTIVE: 'ACTIVE',
|
|
13
|
+
IN_ACTIVE: 'IN_ACTIVE'
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const getRecordTableDataByModel = async (accountDirectoryRecordTableFilterModel, context, { expectError } = {}) => {
|
|
17
|
+
validateType(accountDirectoryRecordTableFilterModel, accountDirectoryModels.AccountDirectoryRecordTableFilterModel);
|
|
18
|
+
|
|
19
|
+
const recordTableResponse = await accountDirectoryAPI.getRecordTable(accountDirectoryRecordTableFilterModel, context);
|
|
20
|
+
|
|
21
|
+
if (expectError) {
|
|
22
|
+
return recordTableResponse;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (recordTableResponse.status !== httpResponseStatusCodes.OK) {
|
|
26
|
+
throw Error(`Failed to get main page record table. Status code: ${recordTableResponse.status}`);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return recordTableResponse.data.tableRowsData;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const getRecordTableByAccountId = (accountId, context, { sortBy, selectedRecordTypes, selectedStates, searchTerm, pageNum, rowsPerPage, sortOrder, expectError } = {}) => {
|
|
33
|
+
const accountDirectoryRecordTableFilterModel = new accountDirectoryModels.AccountDirectoryRecordTableFilterModel(
|
|
34
|
+
{
|
|
35
|
+
accountId,
|
|
36
|
+
sortBy,
|
|
37
|
+
selectedRecordTypes,
|
|
38
|
+
selectedStates,
|
|
39
|
+
searchTerm,
|
|
40
|
+
pageNum,
|
|
41
|
+
rowsPerPage,
|
|
42
|
+
sortOrder
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
return getRecordTableDataByModel(accountDirectoryRecordTableFilterModel, context, { expectError });
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const getProjectLocations = async (accountId, context) => {
|
|
49
|
+
const locationFilterResponse = await accountDirectoryAPI.getProjectLocations(accountId, context);
|
|
50
|
+
|
|
51
|
+
if (locationFilterResponse.status !== httpResponseStatusCodes.OK) {
|
|
52
|
+
throw Error(`Failed to get projects locations. Status code: ${locationFilterResponse.status}`);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return locationFilterResponse.data;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const getRecordsCount = async (accountId, context) => {
|
|
59
|
+
const recordsCountResponse = await accountDirectoryAPI.getRecordsCount(accountId, context);
|
|
60
|
+
|
|
61
|
+
if (recordsCountResponse.status !== httpResponseStatusCodes.OK) {
|
|
62
|
+
throw Error(`Failed to get records count. Status code: ${recordsCountResponse.status}`);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return recordsCountResponse.data;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const getRequestTableDataByModel = async (accountDirectoryRequestTableFilterModel, context, { expectError } = {}) => {
|
|
69
|
+
validateType(accountDirectoryRequestTableFilterModel, accountDirectoryModels.AccountDirectoryRequestTableFilterModel);
|
|
70
|
+
|
|
71
|
+
const requestTableResponse = await accountDirectoryAPI.getRequestTable(accountDirectoryRequestTableFilterModel, context);
|
|
72
|
+
|
|
73
|
+
if (expectError) {
|
|
74
|
+
return requestTableResponse;
|
|
75
|
+
} else if (requestTableResponse.status !== httpResponseStatusCodes.OK) {
|
|
76
|
+
throw Error(`Failed to get inner page request table. Status code: ${requestTableResponse.status}`);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return requestTableResponse.data;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const getRequestTable = (accountId, context, { globalRecordId, recordId, activityStatus, expectError } = {}) => {
|
|
83
|
+
const accountDirectoryRequestTableFilterModel = new accountDirectoryModels.AccountDirectoryRequestTableFilterModel(
|
|
84
|
+
{
|
|
85
|
+
accountId,
|
|
86
|
+
globalRecordId,
|
|
87
|
+
recordId,
|
|
88
|
+
activityStatus
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
return getRequestTableDataByModel(accountDirectoryRequestTableFilterModel, context, { expectError });
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const getRequestTableFiltersByModel = async (accountDirectoryRequestTableFilterModel, context, { expectError } = {}) => {
|
|
95
|
+
validateType(accountDirectoryRequestTableFilterModel, accountDirectoryModels.AccountDirectoryRequestTableFilterModel);
|
|
96
|
+
|
|
97
|
+
const requestTableFiltersResponse = await accountDirectoryAPI.getRequestTableFilters(accountDirectoryRequestTableFilterModel, context);
|
|
98
|
+
|
|
99
|
+
if (expectError) {
|
|
100
|
+
return requestTableFiltersResponse;
|
|
101
|
+
} else if (requestTableFiltersResponse.status !== httpResponseStatusCodes.OK) {
|
|
102
|
+
throw Error(`Failed to get request table filters. Status code: ${requestTableFiltersResponse.status}`);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return requestTableFiltersResponse.data;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
const getRequestTableFilters = (accountId, context, { globalRecordId, recordId, activityStatus, expectError } = {}) => {
|
|
109
|
+
const accountDirectoryRequestTableFilterModel = new accountDirectoryModels.AccountDirectoryRequestTableFilterModel(
|
|
110
|
+
{
|
|
111
|
+
accountId,
|
|
112
|
+
globalRecordId,
|
|
113
|
+
recordId,
|
|
114
|
+
activityStatus
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
return getRequestTableFiltersByModel(accountDirectoryRequestTableFilterModel, context, { expectError });
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
const getRequestActivityCountByModel = async (accountDirectoryRequestTableFilterModel, context, { expectError } = {}) => {
|
|
121
|
+
validateType(accountDirectoryRequestTableFilterModel, accountDirectoryModels.AccountDirectoryRequestTableFilterModel);
|
|
122
|
+
|
|
123
|
+
const activityCountResponse = await accountDirectoryAPI.getRequestActivityCount(accountDirectoryRequestTableFilterModel, context);
|
|
124
|
+
|
|
125
|
+
if (expectError) {
|
|
126
|
+
return activityCountResponse;
|
|
127
|
+
} else if (activityCountResponse.status !== httpResponseStatusCodes.OK) {
|
|
128
|
+
throw Error(`Failed to get request activity count. Status code: ${activityCountResponse.status}`);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
return activityCountResponse.data;
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
const getRecordDetailsByModel = async (accountDirectoryRequestTableFilterModel, context) => {
|
|
135
|
+
validateType(accountDirectoryRequestTableFilterModel, accountDirectoryModels.AccountDirectoryRequestTableFilterModel);
|
|
136
|
+
|
|
137
|
+
const recordDetailsResponse = await accountDirectoryAPI.getRecordDetails(accountDirectoryRequestTableFilterModel, context);
|
|
138
|
+
|
|
139
|
+
if (recordDetailsResponse.status !== httpResponseStatusCodes.OK) {
|
|
140
|
+
throw Error(`Failed to get record details. Status code: ${recordDetailsResponse.status}`);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return recordDetailsResponse.data;
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
const getRequestActivityCount = (accountId, context, { globalRecordId, recordId, activityStatus, expectError } = {}) => {
|
|
147
|
+
const accountDirectoryRequestTableFilterModel = new accountDirectoryModels.AccountDirectoryRequestTableFilterModel(
|
|
148
|
+
{
|
|
149
|
+
accountId,
|
|
150
|
+
globalRecordId,
|
|
151
|
+
recordId,
|
|
152
|
+
activityStatus
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
return getRequestActivityCountByModel(accountDirectoryRequestTableFilterModel, context, { expectError });
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
const getRecordDetails = (accountId, context, { globalRecordId, recordId } = {}) => {
|
|
159
|
+
const accountDirectoryRequestTableFilterModel = new accountDirectoryModels.AccountDirectoryRequestTableFilterModel(
|
|
160
|
+
{
|
|
161
|
+
accountId,
|
|
162
|
+
globalRecordId,
|
|
163
|
+
recordId
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
return getRecordDetailsByModel(accountDirectoryRequestTableFilterModel, context);
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
module.exports = {
|
|
170
|
+
RECORD_TABLE_SORT_BY,
|
|
171
|
+
activationStatuses,
|
|
172
|
+
getRecordTableByAccountId,
|
|
173
|
+
getRecordsCount,
|
|
174
|
+
getProjectLocations,
|
|
175
|
+
getRequestTableDataByModel,
|
|
176
|
+
getRequestTable,
|
|
177
|
+
getRequestTableFiltersByModel,
|
|
178
|
+
getRequestTableFilters,
|
|
179
|
+
getRequestActivityCountByModel,
|
|
180
|
+
getRequestActivityCount,
|
|
181
|
+
getRecordDetails
|
|
182
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const models = require('./models/accountDirectory.model');
|
|
2
|
-
const services = require('./api/accountDirectory.service');
|
|
3
|
-
|
|
4
|
-
module.exports = { services, models };
|
|
1
|
+
const models = require('./models/accountDirectory.model');
|
|
2
|
+
const services = require('./api/accountDirectory.service');
|
|
3
|
+
|
|
4
|
+
module.exports = { services, models };
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
class AccountDirectoryRecordTableFilterModel {
|
|
2
|
-
constructor({
|
|
3
|
-
accountId,
|
|
4
|
-
searchTerm = '',
|
|
5
|
-
selectedRecordTypes = [],
|
|
6
|
-
selectedStates = [],
|
|
7
|
-
sortBy = null,
|
|
8
|
-
sortOrder = null,
|
|
9
|
-
rowsPerPage = null,
|
|
10
|
-
pageNum = null
|
|
11
|
-
} = {}) {
|
|
12
|
-
this.accountId = accountId;
|
|
13
|
-
this.searchTerm = searchTerm;
|
|
14
|
-
this.selectedRecordTypes = selectedRecordTypes;
|
|
15
|
-
this.selectedStates = selectedStates;
|
|
16
|
-
this.sortBy = sortBy;
|
|
17
|
-
this.sortOrder = sortOrder;
|
|
18
|
-
this.rowsPerPage = rowsPerPage;
|
|
19
|
-
this.pageNum = pageNum;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
class AccountDirectoryRequestTableFilterModel {
|
|
24
|
-
constructor({
|
|
25
|
-
accountId,
|
|
26
|
-
globalRecordId,
|
|
27
|
-
recordId,
|
|
28
|
-
activityStatus
|
|
29
|
-
} = {}) {
|
|
30
|
-
this.accountId = accountId;
|
|
31
|
-
this.globalRecordId = globalRecordId;
|
|
32
|
-
this.recordId = recordId;
|
|
33
|
-
this.activityStatus = activityStatus;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
module.exports = {
|
|
38
|
-
AccountDirectoryRecordTableFilterModel,
|
|
39
|
-
AccountDirectoryRequestTableFilterModel
|
|
40
|
-
};
|
|
1
|
+
class AccountDirectoryRecordTableFilterModel {
|
|
2
|
+
constructor({
|
|
3
|
+
accountId,
|
|
4
|
+
searchTerm = '',
|
|
5
|
+
selectedRecordTypes = [],
|
|
6
|
+
selectedStates = [],
|
|
7
|
+
sortBy = null,
|
|
8
|
+
sortOrder = null,
|
|
9
|
+
rowsPerPage = null,
|
|
10
|
+
pageNum = null
|
|
11
|
+
} = {}) {
|
|
12
|
+
this.accountId = accountId;
|
|
13
|
+
this.searchTerm = searchTerm;
|
|
14
|
+
this.selectedRecordTypes = selectedRecordTypes;
|
|
15
|
+
this.selectedStates = selectedStates;
|
|
16
|
+
this.sortBy = sortBy;
|
|
17
|
+
this.sortOrder = sortOrder;
|
|
18
|
+
this.rowsPerPage = rowsPerPage;
|
|
19
|
+
this.pageNum = pageNum;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
class AccountDirectoryRequestTableFilterModel {
|
|
24
|
+
constructor({
|
|
25
|
+
accountId,
|
|
26
|
+
globalRecordId,
|
|
27
|
+
recordId,
|
|
28
|
+
activityStatus
|
|
29
|
+
} = {}) {
|
|
30
|
+
this.accountId = accountId;
|
|
31
|
+
this.globalRecordId = globalRecordId;
|
|
32
|
+
this.recordId = recordId;
|
|
33
|
+
this.activityStatus = activityStatus;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
module.exports = {
|
|
38
|
+
AccountDirectoryRecordTableFilterModel,
|
|
39
|
+
AccountDirectoryRequestTableFilterModel
|
|
40
|
+
};
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
const requests = require('../../../../../common/requests/cookieAuth/requests');
|
|
2
|
-
const internalRequests = require('../../../../../common/requests/internalAuth/requests');
|
|
3
|
-
|
|
4
|
-
const { backendUrl } = require('../../../../../env').getEnv();
|
|
5
|
-
|
|
6
|
-
const Endpoints = {
|
|
7
|
-
getAccount: `${backendUrl}/saas/accounts`,
|
|
8
|
-
create: `${backendUrl}/saas/createaccount`,
|
|
9
|
-
delete: `${backendUrl}/saas/account`,
|
|
10
|
-
edit: accountId => `${backendUrl}/saas/account/${accountId}/settings`,
|
|
11
|
-
getFromCertificateHolder: certificateHolder => `${backendUrl}/jcsc/account/certificate-holder-name/${certificateHolder}`
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
const create = (account, context) => {
|
|
15
|
-
return requests.postRequestHandler(Endpoints.create, account, context);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
const deleteAccount = (accountId, context) => {
|
|
19
|
-
return requests.deleteRequestHandler(Endpoints.delete, context, {}, { 'userId': accountId });
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const updateAccountSettings = (accountId, settings, context) => {
|
|
23
|
-
return requests.putRequestHandler(Endpoints.edit(accountId), { accountId, ... settings }, context);
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const getByName = (accountName, context) => {
|
|
27
|
-
const params = { name: accountName };
|
|
28
|
-
return requests.getRequestHandler(Endpoints.getAccount, params, context);
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const getFromCertificateHolder = certificateHolder => {
|
|
32
|
-
return internalRequests.getRequestHandler(Endpoints.getFromCertificateHolder(certificateHolder), {});
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
module.exports = { create, getByName, deleteAccount, updateAccountSettings, getFromCertificateHolder };
|
|
1
|
+
const requests = require('../../../../../common/requests/cookieAuth/requests');
|
|
2
|
+
const internalRequests = require('../../../../../common/requests/internalAuth/requests');
|
|
3
|
+
|
|
4
|
+
const { backendUrl } = require('../../../../../env').getEnv();
|
|
5
|
+
|
|
6
|
+
const Endpoints = {
|
|
7
|
+
getAccount: `${backendUrl}/saas/accounts`,
|
|
8
|
+
create: `${backendUrl}/saas/createaccount`,
|
|
9
|
+
delete: `${backendUrl}/saas/account`,
|
|
10
|
+
edit: accountId => `${backendUrl}/saas/account/${accountId}/settings`,
|
|
11
|
+
getFromCertificateHolder: certificateHolder => `${backendUrl}/jcsc/account/certificate-holder-name/${certificateHolder}`
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const create = (account, context) => {
|
|
15
|
+
return requests.postRequestHandler(Endpoints.create, account, context);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const deleteAccount = (accountId, context) => {
|
|
19
|
+
return requests.deleteRequestHandler(Endpoints.delete, context, {}, { 'userId': accountId });
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const updateAccountSettings = (accountId, settings, context) => {
|
|
23
|
+
return requests.putRequestHandler(Endpoints.edit(accountId), { accountId, ... settings }, context);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const getByName = (accountName, context) => {
|
|
27
|
+
const params = { name: accountName };
|
|
28
|
+
return requests.getRequestHandler(Endpoints.getAccount, params, context);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const getFromCertificateHolder = certificateHolder => {
|
|
32
|
+
return internalRequests.getRequestHandler(Endpoints.getFromCertificateHolder(certificateHolder), {});
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
module.exports = { create, getByName, deleteAccount, updateAccountSettings, getFromCertificateHolder };
|