grm-shared-library 1.1.195 → 1.1.196
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/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/kafka/topics.js +3 -0
- package/dist/cjs/kafka/topics.js.map +1 -1
- package/dist/cjs/modules/common/constants/service.const.js +1 -0
- package/dist/cjs/modules/common/constants/service.const.js.map +1 -1
- package/dist/cjs/modules/partner/constants/partner-defaults.const.js +74 -0
- package/dist/cjs/modules/partner/constants/partner-defaults.const.js.map +1 -0
- package/dist/cjs/modules/partner/constants/partner-kafka.const.js +20 -0
- package/dist/cjs/modules/partner/constants/partner-kafka.const.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/create-partner-coverage-rule.dto.js +101 -0
- package/dist/cjs/modules/partner/dtos/create-partner-coverage-rule.dto.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/create-partner-integration.dto.js +178 -0
- package/dist/cjs/modules/partner/dtos/create-partner-integration.dto.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/partner-dispatch-decision.dto.js +36 -0
- package/dist/cjs/modules/partner/dtos/partner-dispatch-decision.dto.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/route-incident-to-partners.dto.js +230 -0
- package/dist/cjs/modules/partner/dtos/route-incident-to-partners.dto.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/update-incident-partner-routing.dto.js +132 -0
- package/dist/cjs/modules/partner/dtos/update-incident-partner-routing.dto.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/update-partner-coverage-rule.dto.js +9 -0
- package/dist/cjs/modules/partner/dtos/update-partner-coverage-rule.dto.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/update-partner-integration.dto.js +15 -0
- package/dist/cjs/modules/partner/dtos/update-partner-integration.dto.js.map +1 -0
- package/dist/cjs/modules/partner/enums/incident-partner-routing-status.enum.js +30 -0
- package/dist/cjs/modules/partner/enums/incident-partner-routing-status.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-adapter-operation.enum.js +18 -0
- package/dist/cjs/modules/partner/enums/partner-adapter-operation.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-coverage-match-type.enum.js +23 -0
- package/dist/cjs/modules/partner/enums/partner-coverage-match-type.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-dispatch-failure-reason.enum.js +51 -0
- package/dist/cjs/modules/partner/enums/partner-dispatch-failure-reason.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-dispatch-scope.enum.js +21 -0
- package/dist/cjs/modules/partner/enums/partner-dispatch-scope.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-dispatch-status.enum.js +52 -0
- package/dist/cjs/modules/partner/enums/partner-dispatch-status.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-integration-environment.enum.js +17 -0
- package/dist/cjs/modules/partner/enums/partner-integration-environment.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-integration-status.enum.js +23 -0
- package/dist/cjs/modules/partner/enums/partner-integration-status.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-location-provider.enum.js +20 -0
- package/dist/cjs/modules/partner/enums/partner-location-provider.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-provider-code.enum.js +28 -0
- package/dist/cjs/modules/partner/enums/partner-provider-code.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-routing-mode.enum.js +25 -0
- package/dist/cjs/modules/partner/enums/partner-routing-mode.enum.js.map +1 -0
- package/dist/cjs/modules/partner/enums/partner-service-capability.enum.js +29 -0
- package/dist/cjs/modules/partner/enums/partner-service-capability.enum.js.map +1 -0
- package/dist/cjs/modules/partner/index.js +55 -0
- package/dist/cjs/modules/partner/index.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/incident-partner-routing.js +3 -0
- package/dist/cjs/modules/partner/interfaces/incident-partner-routing.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-connection-test-result.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-connection-test-result.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-coverage-rule.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-coverage-rule.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-dispatch-events.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-dispatch-events.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-dispatch-location.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-dispatch-location.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-dispatch.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-dispatch.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-emergency-contact.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-emergency-contact.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-integration.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-integration.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-provider-descriptor.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-provider-descriptor.js.map +1 -0
- package/dist/cjs/modules/partner/interfaces/partner-routing-result.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-routing-result.js.map +1 -0
- package/dist/cjs/modules/partner/utils/partner-payload.util.js +116 -0
- package/dist/cjs/modules/partner/utils/partner-payload.util.js.map +1 -0
- package/dist/cjs/modules/partner/utils/partner-routing.util.js +137 -0
- package/dist/cjs/modules/partner/utils/partner-routing.util.js.map +1 -0
- package/dist/cjs/modules/permission/data/permissions.data.js +5 -1
- package/dist/cjs/modules/permission/data/permissions.data.js.map +1 -1
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js +10 -0
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/cjs/modules/role/data/roles.data.js +26 -0
- package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/kafka/topics.js +3 -0
- package/dist/esm/kafka/topics.js.map +1 -1
- package/dist/esm/modules/common/constants/service.const.js +1 -0
- package/dist/esm/modules/common/constants/service.const.js.map +1 -1
- package/dist/esm/modules/partner/constants/partner-defaults.const.js +71 -0
- package/dist/esm/modules/partner/constants/partner-defaults.const.js.map +1 -0
- package/dist/esm/modules/partner/constants/partner-kafka.const.js +17 -0
- package/dist/esm/modules/partner/constants/partner-kafka.const.js.map +1 -0
- package/dist/esm/modules/partner/dtos/create-partner-coverage-rule.dto.js +97 -0
- package/dist/esm/modules/partner/dtos/create-partner-coverage-rule.dto.js.map +1 -0
- package/dist/esm/modules/partner/dtos/create-partner-integration.dto.js +174 -0
- package/dist/esm/modules/partner/dtos/create-partner-integration.dto.js.map +1 -0
- package/dist/esm/modules/partner/dtos/partner-dispatch-decision.dto.js +32 -0
- package/dist/esm/modules/partner/dtos/partner-dispatch-decision.dto.js.map +1 -0
- package/dist/esm/modules/partner/dtos/route-incident-to-partners.dto.js +224 -0
- package/dist/esm/modules/partner/dtos/route-incident-to-partners.dto.js.map +1 -0
- package/dist/esm/modules/partner/dtos/update-incident-partner-routing.dto.js +127 -0
- package/dist/esm/modules/partner/dtos/update-incident-partner-routing.dto.js.map +1 -0
- package/dist/esm/modules/partner/dtos/update-partner-coverage-rule.dto.js +5 -0
- package/dist/esm/modules/partner/dtos/update-partner-coverage-rule.dto.js.map +1 -0
- package/dist/esm/modules/partner/dtos/update-partner-integration.dto.js +11 -0
- package/dist/esm/modules/partner/dtos/update-partner-integration.dto.js.map +1 -0
- package/dist/esm/modules/partner/enums/incident-partner-routing-status.enum.js +27 -0
- package/dist/esm/modules/partner/enums/incident-partner-routing-status.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-adapter-operation.enum.js +15 -0
- package/dist/esm/modules/partner/enums/partner-adapter-operation.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-coverage-match-type.enum.js +20 -0
- package/dist/esm/modules/partner/enums/partner-coverage-match-type.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-dispatch-failure-reason.enum.js +48 -0
- package/dist/esm/modules/partner/enums/partner-dispatch-failure-reason.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-dispatch-scope.enum.js +18 -0
- package/dist/esm/modules/partner/enums/partner-dispatch-scope.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-dispatch-status.enum.js +49 -0
- package/dist/esm/modules/partner/enums/partner-dispatch-status.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-integration-environment.enum.js +14 -0
- package/dist/esm/modules/partner/enums/partner-integration-environment.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-integration-status.enum.js +20 -0
- package/dist/esm/modules/partner/enums/partner-integration-status.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-location-provider.enum.js +17 -0
- package/dist/esm/modules/partner/enums/partner-location-provider.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-provider-code.enum.js +25 -0
- package/dist/esm/modules/partner/enums/partner-provider-code.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-routing-mode.enum.js +22 -0
- package/dist/esm/modules/partner/enums/partner-routing-mode.enum.js.map +1 -0
- package/dist/esm/modules/partner/enums/partner-service-capability.enum.js +26 -0
- package/dist/esm/modules/partner/enums/partner-service-capability.enum.js.map +1 -0
- package/dist/esm/modules/partner/index.js +39 -0
- package/dist/esm/modules/partner/index.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/incident-partner-routing.js +2 -0
- package/dist/esm/modules/partner/interfaces/incident-partner-routing.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-connection-test-result.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-connection-test-result.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-coverage-rule.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-coverage-rule.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-dispatch-events.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-dispatch-events.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-dispatch-location.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-dispatch-location.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-dispatch.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-dispatch.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-emergency-contact.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-emergency-contact.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-integration.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-integration.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-provider-descriptor.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-provider-descriptor.js.map +1 -0
- package/dist/esm/modules/partner/interfaces/partner-routing-result.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-routing-result.js.map +1 -0
- package/dist/esm/modules/partner/utils/partner-payload.util.js +109 -0
- package/dist/esm/modules/partner/utils/partner-payload.util.js.map +1 -0
- package/dist/esm/modules/partner/utils/partner-routing.util.js +127 -0
- package/dist/esm/modules/partner/utils/partner-routing.util.js.map +1 -0
- package/dist/esm/modules/permission/data/permissions.data.js +5 -1
- package/dist/esm/modules/permission/data/permissions.data.js.map +1 -1
- package/dist/esm/modules/permission/enums/permission-actions.enum.js +10 -0
- package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/esm/modules/role/data/roles.data.js +26 -0
- package/dist/esm/modules/role/data/roles.data.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/kafka/topics.d.ts +2 -0
- package/dist/types/modules/common/constants/service.const.d.ts +4 -0
- package/dist/types/modules/partner/constants/partner-defaults.const.d.ts +60 -0
- package/dist/types/modules/partner/constants/partner-kafka.const.d.ts +16 -0
- package/dist/types/modules/partner/dtos/create-partner-coverage-rule.dto.d.ts +24 -0
- package/dist/types/modules/partner/dtos/create-partner-integration.dto.d.ts +31 -0
- package/dist/types/modules/partner/dtos/partner-dispatch-decision.dto.d.ts +11 -0
- package/dist/types/modules/partner/dtos/route-incident-to-partners.dto.d.ts +52 -0
- package/dist/types/modules/partner/dtos/update-incident-partner-routing.dto.d.ts +34 -0
- package/dist/types/modules/partner/dtos/update-partner-coverage-rule.dto.d.ts +5 -0
- package/dist/types/modules/partner/dtos/update-partner-integration.dto.d.ts +11 -0
- package/dist/types/modules/partner/enums/incident-partner-routing-status.enum.d.ts +25 -0
- package/dist/types/modules/partner/enums/partner-adapter-operation.enum.d.ts +13 -0
- package/dist/types/modules/partner/enums/partner-coverage-match-type.enum.d.ts +18 -0
- package/dist/types/modules/partner/enums/partner-dispatch-failure-reason.enum.d.ts +37 -0
- package/dist/types/modules/partner/enums/partner-dispatch-scope.enum.d.ts +16 -0
- package/dist/types/modules/partner/enums/partner-dispatch-status.enum.d.ts +37 -0
- package/dist/types/modules/partner/enums/partner-integration-environment.enum.d.ts +12 -0
- package/dist/types/modules/partner/enums/partner-integration-status.enum.d.ts +18 -0
- package/dist/types/modules/partner/enums/partner-location-provider.enum.d.ts +15 -0
- package/dist/types/modules/partner/enums/partner-provider-code.enum.d.ts +23 -0
- package/dist/types/modules/partner/enums/partner-routing-mode.enum.d.ts +20 -0
- package/dist/types/modules/partner/enums/partner-service-capability.enum.d.ts +24 -0
- package/dist/types/modules/partner/index.d.ts +33 -0
- package/dist/types/modules/partner/interfaces/incident-partner-routing.d.ts +43 -0
- package/dist/types/modules/partner/interfaces/partner-connection-test-result.d.ts +22 -0
- package/dist/types/modules/partner/interfaces/partner-coverage-rule.d.ts +36 -0
- package/dist/types/modules/partner/interfaces/partner-dispatch-events.d.ts +40 -0
- package/dist/types/modules/partner/interfaces/partner-dispatch-location.d.ts +13 -0
- package/dist/types/modules/partner/interfaces/partner-dispatch.d.ts +119 -0
- package/dist/types/modules/partner/interfaces/partner-emergency-contact.d.ts +15 -0
- package/dist/types/modules/partner/interfaces/partner-integration.d.ts +63 -0
- package/dist/types/modules/partner/interfaces/partner-provider-descriptor.d.ts +56 -0
- package/dist/types/modules/partner/interfaces/partner-routing-result.d.ts +24 -0
- package/dist/types/modules/partner/utils/partner-payload.util.d.ts +49 -0
- package/dist/types/modules/partner/utils/partner-routing.util.d.ts +71 -0
- package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +4 -0
- package/package.json +1 -1
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { PARTNER_CHANNEL_LOCATION_PROVIDER, PARTNER_DISPATCH_DEFAULTS } from '../constants/partner-defaults.const';
|
|
2
|
+
import { IncidentPartnerRoutingStatus } from '../enums/incident-partner-routing-status.enum';
|
|
3
|
+
import { PartnerCoverageMatchType } from '../enums/partner-coverage-match-type.enum';
|
|
4
|
+
import { PERMANENT_PARTNER_DISPATCH_FAILURE_REASONS, } from '../enums/partner-dispatch-failure-reason.enum';
|
|
5
|
+
import { DELIVERED_PARTNER_DISPATCH_STATUSES, PartnerDispatchStatus, } from '../enums/partner-dispatch-status.enum';
|
|
6
|
+
import { PartnerLocationProvider } from '../enums/partner-location-provider.enum';
|
|
7
|
+
import { PartnerRoutingMode } from '../enums/partner-routing-mode.enum';
|
|
8
|
+
/**
|
|
9
|
+
* Whether a coverage rule applies to an incident.
|
|
10
|
+
*
|
|
11
|
+
* Shared by clarion-partner-services (which routes on it) and the web admin
|
|
12
|
+
* (which previews "what would this rule catch?"), so the two can never disagree
|
|
13
|
+
* about whether an ambulance would have been called.
|
|
14
|
+
*
|
|
15
|
+
* A disabled rule never matches, and a rule whose match key is missing on either
|
|
16
|
+
* side never matches - a rule with no incident type cannot silently become a
|
|
17
|
+
* catch-all.
|
|
18
|
+
*/
|
|
19
|
+
export function coverageRuleMatches(rule, subject) {
|
|
20
|
+
if (rule.enabled === false)
|
|
21
|
+
return false;
|
|
22
|
+
switch (rule.matchType) {
|
|
23
|
+
case PartnerCoverageMatchType.ALL:
|
|
24
|
+
return true;
|
|
25
|
+
case PartnerCoverageMatchType.INCIDENT_TYPE:
|
|
26
|
+
return (rule.incidentTypeId != null &&
|
|
27
|
+
subject.incidentTypeId != null &&
|
|
28
|
+
rule.incidentTypeId === subject.incidentTypeId);
|
|
29
|
+
case PartnerCoverageMatchType.INCIDENT_CATEGORY:
|
|
30
|
+
return (rule.incidentCategoryId != null &&
|
|
31
|
+
subject.incidentCategoryId != null &&
|
|
32
|
+
rule.incidentCategoryId === subject.incidentCategoryId);
|
|
33
|
+
case PartnerCoverageMatchType.EMERGENCY_TYPE:
|
|
34
|
+
return (rule.emergencyType != null &&
|
|
35
|
+
subject.emergencyType != null &&
|
|
36
|
+
String(rule.emergencyType) === String(subject.emergencyType));
|
|
37
|
+
default:
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The routing mode actually applied to a dispatch.
|
|
43
|
+
*
|
|
44
|
+
* A rule-level override wins over the partnership's default, and DISABLED at
|
|
45
|
+
* either level wins over everything - an organization that has switched routing
|
|
46
|
+
* off must not be overridden by a rule it forgot about.
|
|
47
|
+
*/
|
|
48
|
+
export function resolveRoutingMode(integrationMode, ruleOverride) {
|
|
49
|
+
if (integrationMode === PartnerRoutingMode.DISABLED)
|
|
50
|
+
return PartnerRoutingMode.DISABLED;
|
|
51
|
+
if (!ruleOverride)
|
|
52
|
+
return integrationMode;
|
|
53
|
+
return ruleOverride;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* How a partner is told the incident's location was obtained, derived from the
|
|
57
|
+
* reporting channel.
|
|
58
|
+
*
|
|
59
|
+
* `overrides` accepts a partnership's `locationProviderByChannel` configuration
|
|
60
|
+
* verbatim; unknown channels and unknown provider values fall back to the
|
|
61
|
+
* platform default rather than being passed through to the partner.
|
|
62
|
+
*/
|
|
63
|
+
export function mapChannelToLocationProvider(channel, overrides) {
|
|
64
|
+
const fallback = PartnerLocationProvider.NETWORK;
|
|
65
|
+
if (!channel)
|
|
66
|
+
return fallback;
|
|
67
|
+
const override = overrides === null || overrides === void 0 ? void 0 : overrides[String(channel)];
|
|
68
|
+
if (override && isPartnerLocationProvider(override)) {
|
|
69
|
+
return override;
|
|
70
|
+
}
|
|
71
|
+
const mapped = PARTNER_CHANNEL_LOCATION_PROVIDER[channel];
|
|
72
|
+
return mapped !== null && mapped !== void 0 ? mapped : fallback;
|
|
73
|
+
}
|
|
74
|
+
/** Type guard for a value claiming to be a {@link PartnerLocationProvider}. */
|
|
75
|
+
export function isPartnerLocationProvider(value) {
|
|
76
|
+
return (typeof value === 'string' &&
|
|
77
|
+
Object.values(PartnerLocationProvider).includes(value));
|
|
78
|
+
}
|
|
79
|
+
/** Whether a failure should be retried, or has no chance of succeeding. */
|
|
80
|
+
export function isPermanentDispatchFailure(reason) {
|
|
81
|
+
if (!reason)
|
|
82
|
+
return false;
|
|
83
|
+
return PERMANENT_PARTNER_DISPATCH_FAILURE_REASONS.includes(reason);
|
|
84
|
+
}
|
|
85
|
+
/** Whether a dispatch status means the partner has the emergency. */
|
|
86
|
+
export function isDeliveredDispatchStatus(status) {
|
|
87
|
+
return DELIVERED_PARTNER_DISPATCH_STATUSES.includes(status);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Seconds to wait before retry number `attemptNumber` (1-based), as an
|
|
91
|
+
* exponential backoff clamped to the configured ceiling.
|
|
92
|
+
*/
|
|
93
|
+
export function retryDelaySeconds(attemptNumber, baseSeconds = PARTNER_DISPATCH_DEFAULTS.RETRY_BASE_SECONDS, maxSeconds = PARTNER_DISPATCH_DEFAULTS.RETRY_MAX_SECONDS) {
|
|
94
|
+
const safeAttempt = Number.isFinite(attemptNumber) && attemptNumber > 0 ? Math.floor(attemptNumber) : 1;
|
|
95
|
+
const delay = baseSeconds * Math.pow(2, safeAttempt - 1);
|
|
96
|
+
return Math.min(delay, maxSeconds);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Roll every dispatch on an incident up into the one status stored on the
|
|
100
|
+
* incident row.
|
|
101
|
+
*
|
|
102
|
+
* Order matters and encodes what an operator most needs to see first: anything
|
|
103
|
+
* still waiting on a human outranks a settled outcome, and a mix of delivered
|
|
104
|
+
* and failed is reported as PARTIALLY_ROUTED rather than rounded to either.
|
|
105
|
+
*/
|
|
106
|
+
export function summarizeIncidentRoutingStatus(statuses) {
|
|
107
|
+
if (!statuses || statuses.length === 0)
|
|
108
|
+
return IncidentPartnerRoutingStatus.NOT_ROUTED;
|
|
109
|
+
if (statuses.some((s) => s === PartnerDispatchStatus.PENDING_APPROVAL)) {
|
|
110
|
+
return IncidentPartnerRoutingStatus.AWAITING_APPROVAL;
|
|
111
|
+
}
|
|
112
|
+
if (statuses.some((s) => s === PartnerDispatchStatus.QUEUED || s === PartnerDispatchStatus.SENDING)) {
|
|
113
|
+
return IncidentPartnerRoutingStatus.PENDING;
|
|
114
|
+
}
|
|
115
|
+
const delivered = statuses.filter(isDeliveredDispatchStatus).length;
|
|
116
|
+
if (delivered === statuses.length)
|
|
117
|
+
return IncidentPartnerRoutingStatus.ROUTED;
|
|
118
|
+
if (delivered > 0)
|
|
119
|
+
return IncidentPartnerRoutingStatus.PARTIALLY_ROUTED;
|
|
120
|
+
const declined = statuses.filter((s) => s === PartnerDispatchStatus.REJECTED ||
|
|
121
|
+
s === PartnerDispatchStatus.CANCELLED ||
|
|
122
|
+
s === PartnerDispatchStatus.EXPIRED).length;
|
|
123
|
+
if (declined === statuses.length)
|
|
124
|
+
return IncidentPartnerRoutingStatus.DECLINED;
|
|
125
|
+
return IncidentPartnerRoutingStatus.FAILED;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=partner-routing.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner-routing.util.js","sourceRoot":"","sources":["../../../../../src/modules/partner/utils/partner-routing.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,11 @@ export const PERMISSIONS_DATA = [
|
|
|
16
16
|
PermissionActions.CREATE_PARTNER,
|
|
17
17
|
PermissionActions.READ_PARTNER,
|
|
18
18
|
PermissionActions.UPDATE_PARTNER,
|
|
19
|
-
PermissionActions.DELETE_PARTNER
|
|
19
|
+
PermissionActions.DELETE_PARTNER,
|
|
20
|
+
PermissionActions.READ_PARTNER_DISPATCH,
|
|
21
|
+
PermissionActions.APPROVE_PARTNER_DISPATCH,
|
|
22
|
+
PermissionActions.CANCEL_PARTNER_DISPATCH,
|
|
23
|
+
PermissionActions.RESEND_PARTNER_DISPATCH
|
|
20
24
|
]
|
|
21
25
|
},
|
|
22
26
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.data.js","sourceRoot":"","sources":["../../../../../src/modules/permission/data/permissions.data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAGrE,MAAM,CAAC,MAAM,gBAAgB,GAAiB;IAC1C;QACI,MAAM,EAAE,iBAAiB,CAAC,YAAY;QACtC,OAAO,EAAE;YACL,iBAAiB,CAAC,mBAAmB;YACrC,iBAAiB,CAAC,iBAAiB;YACnC,iBAAiB,CAAC,mBAAmB;YACrC,iBAAiB,CAAC,mBAAmB;SACxC;KACJ;IACD;QACI,MAAM,EAAE,iBAAiB,CAAC,OAAO;QACjC,OAAO,EAAE;YACL,iBAAiB,CAAC,cAAc;YAChC,iBAAiB,CAAC,YAAY;YAC9B,iBAAiB,CAAC,cAAc;YAChC,iBAAiB,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"permissions.data.js","sourceRoot":"","sources":["../../../../../src/modules/permission/data/permissions.data.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,20 @@ export var PermissionActions;
|
|
|
6
6
|
PermissionActions["UPDATE_ORGANIZATION"] = "update:organization";
|
|
7
7
|
PermissionActions["DELETE_ORGANIZATION"] = "delete:organization";
|
|
8
8
|
// Module: Partner
|
|
9
|
+
// Configuring an organization's third-party service partnerships
|
|
10
|
+
// (clarion-partner-services). These four already existed and were dormant;
|
|
11
|
+
// they now govern partnership and coverage-rule CRUD.
|
|
9
12
|
PermissionActions["CREATE_PARTNER"] = "create:partner";
|
|
10
13
|
PermissionActions["READ_PARTNER"] = "read:partner";
|
|
11
14
|
PermissionActions["UPDATE_PARTNER"] = "update:partner";
|
|
12
15
|
PermissionActions["DELETE_PARTNER"] = "delete:partner";
|
|
16
|
+
// Acting on an individual routed emergency. Kept apart from the CRUD
|
|
17
|
+
// actions above because the people who confirm an ambulance (control-room
|
|
18
|
+
// operators) are not the people who configure the partnership.
|
|
19
|
+
PermissionActions["READ_PARTNER_DISPATCH"] = "read:partner-dispatch";
|
|
20
|
+
PermissionActions["APPROVE_PARTNER_DISPATCH"] = "approve:partner-dispatch";
|
|
21
|
+
PermissionActions["CANCEL_PARTNER_DISPATCH"] = "cancel:partner-dispatch";
|
|
22
|
+
PermissionActions["RESEND_PARTNER_DISPATCH"] = "resend:partner-dispatch";
|
|
13
23
|
// Module: ControlCentre
|
|
14
24
|
PermissionActions["CREATE_CONTROL_CENTRE"] = "create:control-centre";
|
|
15
25
|
PermissionActions["READ_CONTROL_CENTRE"] = "read:control-centre";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,iBAuIX;AAvID,WAAY,iBAAiB;IACzB,uBAAuB;IACvB,gEAA2C,CAAA;IAC3C,4DAAuC,CAAA;IACvC,gEAA2C,CAAA;IAC3C,gEAA2C,CAAA;IAE3C,kBAAkB;IAClB,iEAAiE;IACjE,2EAA2E;IAC3E,sDAAsD;IACtD,sDAAiC,CAAA;IACjC,kDAA6B,CAAA;IAC7B,sDAAiC,CAAA;IACjC,sDAAiC,CAAA;IACjC,qEAAqE;IACrE,0EAA0E;IAC1E,+DAA+D;IAC/D,oEAA+C,CAAA;IAC/C,0EAAqD,CAAA;IACrD,wEAAmD,CAAA;IACnD,wEAAmD,CAAA;IAEnD,wBAAwB;IACxB,oEAA+C,CAAA;IAC/C,gEAA2C,CAAA;IAC3C,oEAA+C,CAAA;IAC/C,oEAA+C,CAAA;IAE/C,eAAe;IACf,gDAA2B,CAAA;IAC3B,4CAAuB,CAAA;IACvB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAE3B,eAAe;IACf,gDAA2B,CAAA;IAC3B,4CAAuB,CAAA;IACvB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAE3B,eAAe;IACf,gDAA2B,CAAA;IAC3B,4CAAuB,CAAA;IACvB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAE3B,mBAAmB;IACnB,wDAAmC,CAAA;IACnC,oDAA+B,CAAA;IAC/B,wDAAmC,CAAA;IACnC,wDAAmC,CAAA;IACnC,oFAA+D,CAAA;IAC/D,gFAA2D,CAAA;IAC3D,oFAA+D,CAAA;IAC/D,oFAA+D,CAAA;IAE/D,uBAAuB;IACvB,kEAA6C,CAAA;IAC7C,8DAAyC,CAAA;IACzC,kEAA6C,CAAA;IAC7C,kEAA6C,CAAA;IAE7C,kBAAkB;IAClB,8DAAyC,CAAA;IACzC,0DAAqC,CAAA;IACrC,8DAAyC,CAAA;IACzC,8DAAyC,CAAA;IAEzC,oEAA+C,CAAA;IAC/C,gEAA2C,CAAA;IAC3C,oEAA+C,CAAA;IAC/C,oEAA+C,CAAA;IAE/C,wEAAmD,CAAA;IACnD,oEAA+C,CAAA;IAC/C,wEAAmD,CAAA;IACnD,wEAAmD,CAAA;IAEnD,sFAAiE,CAAA;IACjE,kFAA6D,CAAA;IAC7D,sFAAiE,CAAA;IACjE,sFAAiE,CAAA;IAEjE,0EAAqD,CAAA;IACrD,sEAAiD,CAAA;IACjD,0EAAqD,CAAA;IACrD,0EAAqD,CAAA;IAErD,0DAAqC,CAAA;IAErC,sDAAiC,CAAA;IACjC,kDAA6B,CAAA;IAC7B,4DAAuC,CAAA;IAEvC,kDAA6B,CAAA;IAC7B,8CAAyB,CAAA;IACzB,oDAA+B,CAAA;IAE/B,sDAAiC,CAAA;IACjC,kDAA6B,CAAA;IAE7B,sDAAiC,CAAA;IACjC,kDAA6B,CAAA;IAC7B,sDAAiC,CAAA;IACjC,0DAAqC,CAAA;IACrC,8DAAyC,CAAA;IACzC,sDAAiC,CAAA;IAEjC,8DAAyC,CAAA;IACzC,sDAAiC,CAAA;IACjC,kDAA6B,CAAA;IAE7B,8FAAyE,CAAA;IACzE,kFAA6D,CAAA;IAC7D,0GAAqF,CAAA;IACrF,sFAAiE,CAAA;IAEjE,4FAAuE,CAAA;IACvE,gFAA2D,CAAA;IAC3D,wGAAmF,CAAA;IACnF,oFAA+D,CAAA;IAE/D,4DAAuC,CAAA;IACvC,wDAAmC,CAAA;IACnC,wEAAmD,CAAA;IACnD,kEAA6C,CAAA;IAE7C,mBAAmB;IACnB,kEAA6C,CAAA;IAC7C,8DAAyC,CAAA;IACzC,kEAA6C,CAAA;IAC7C,oEAA+C,CAAA;IAC/C,oEAA+C,CAAA;IAC/C,kEAA6C,CAAA;AACjD,CAAC,EAvIW,iBAAiB,KAAjB,iBAAiB,QAuI5B"}
|
|
@@ -19,6 +19,11 @@ export const ROLES_DATA = [
|
|
|
19
19
|
PermissionActions.READ_PARTNER,
|
|
20
20
|
PermissionActions.UPDATE_PARTNER,
|
|
21
21
|
PermissionActions.DELETE_PARTNER,
|
|
22
|
+
//Partner dispatch
|
|
23
|
+
PermissionActions.READ_PARTNER_DISPATCH,
|
|
24
|
+
PermissionActions.APPROVE_PARTNER_DISPATCH,
|
|
25
|
+
PermissionActions.CANCEL_PARTNER_DISPATCH,
|
|
26
|
+
PermissionActions.RESEND_PARTNER_DISPATCH,
|
|
22
27
|
//control centre
|
|
23
28
|
PermissionActions.CREATE_CONTROL_CENTRE,
|
|
24
29
|
PermissionActions.READ_CONTROL_CENTRE,
|
|
@@ -65,6 +70,11 @@ export const ROLES_DATA = [
|
|
|
65
70
|
PermissionActions.READ_PARTNER,
|
|
66
71
|
PermissionActions.UPDATE_PARTNER,
|
|
67
72
|
PermissionActions.DELETE_PARTNER,
|
|
73
|
+
//Partner dispatch
|
|
74
|
+
PermissionActions.READ_PARTNER_DISPATCH,
|
|
75
|
+
PermissionActions.APPROVE_PARTNER_DISPATCH,
|
|
76
|
+
PermissionActions.CANCEL_PARTNER_DISPATCH,
|
|
77
|
+
PermissionActions.RESEND_PARTNER_DISPATCH,
|
|
68
78
|
//control centre
|
|
69
79
|
PermissionActions.CREATE_CONTROL_CENTRE,
|
|
70
80
|
PermissionActions.READ_CONTROL_CENTRE,
|
|
@@ -107,6 +117,8 @@ export const ROLES_DATA = [
|
|
|
107
117
|
PermissionActions.READ_ORGANIZATION,
|
|
108
118
|
//Partner
|
|
109
119
|
PermissionActions.READ_PARTNER,
|
|
120
|
+
//Partner dispatch
|
|
121
|
+
PermissionActions.READ_PARTNER_DISPATCH,
|
|
110
122
|
//control centre
|
|
111
123
|
PermissionActions.READ_CONTROL_CENTRE,
|
|
112
124
|
//Zone
|
|
@@ -129,6 +141,13 @@ export const ROLES_DATA = [
|
|
|
129
141
|
permissions: [
|
|
130
142
|
//Organization
|
|
131
143
|
PermissionActions.READ_ORGANIZATION,
|
|
144
|
+
//Partner dispatch: the control room confirms and withdraws a routed
|
|
145
|
+
//emergency, but does not configure the partnership behind it.
|
|
146
|
+
PermissionActions.READ_PARTNER,
|
|
147
|
+
PermissionActions.READ_PARTNER_DISPATCH,
|
|
148
|
+
PermissionActions.APPROVE_PARTNER_DISPATCH,
|
|
149
|
+
PermissionActions.CANCEL_PARTNER_DISPATCH,
|
|
150
|
+
PermissionActions.RESEND_PARTNER_DISPATCH,
|
|
132
151
|
//Control Centre
|
|
133
152
|
PermissionActions.READ_CONTROL_CENTRE,
|
|
134
153
|
PermissionActions.UPDATE_CONTROL_CENTRE,
|
|
@@ -163,6 +182,10 @@ export const ROLES_DATA = [
|
|
|
163
182
|
permissions: [
|
|
164
183
|
//Organization
|
|
165
184
|
PermissionActions.READ_ORGANIZATION,
|
|
185
|
+
//Partner dispatch: an operator on the desk may confirm a routed
|
|
186
|
+
//emergency; withdrawing one and resending it stay with their admin.
|
|
187
|
+
PermissionActions.READ_PARTNER_DISPATCH,
|
|
188
|
+
PermissionActions.APPROVE_PARTNER_DISPATCH,
|
|
166
189
|
//Control Centre
|
|
167
190
|
PermissionActions.READ_CONTROL_CENTRE,
|
|
168
191
|
//Zone
|
|
@@ -187,6 +210,9 @@ export const ROLES_DATA = [
|
|
|
187
210
|
permissions: [
|
|
188
211
|
//Organization
|
|
189
212
|
PermissionActions.READ_ORGANIZATION,
|
|
213
|
+
//Partner dispatch: a responder sees whether a partner is en route,
|
|
214
|
+
//and changes nothing about it.
|
|
215
|
+
PermissionActions.READ_PARTNER_DISPATCH,
|
|
190
216
|
//Control Centre
|
|
191
217
|
PermissionActions.READ_CONTROL_CENTRE,
|
|
192
218
|
//Zone
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.data.js","sourceRoot":"","sources":["../../../../../src/modules/role/data/roles.data.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"roles.data.js","sourceRoot":"","sources":["../../../../../src/modules/role/data/roles.data.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export * from './modules/tracking/index';
|
|
|
22
22
|
export * from './modules/entitlement/index';
|
|
23
23
|
export * from './modules/alert-dispatch/index';
|
|
24
24
|
export * from './modules/system-user/index';
|
|
25
|
+
export * from './modules/partner/index';
|
|
25
26
|
export * from './interfaces/server-message';
|
|
26
27
|
export * from './interfaces/i-request-with-user';
|
|
27
28
|
export * from './interfaces/validated-user';
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { IncidentChannel } from '../../incident/enums/incident-channel.enum';
|
|
2
|
+
import { PartnerLocationProvider } from '../enums/partner-location-provider.enum';
|
|
3
|
+
/**
|
|
4
|
+
* Platform defaults for third-party partner routing. A deployment overrides
|
|
5
|
+
* these with `PARTNER_*` environment variables and a partnership can override
|
|
6
|
+
* some of them again in its own configuration, so these are the last fallback,
|
|
7
|
+
* not policy.
|
|
8
|
+
*/
|
|
9
|
+
export declare const PARTNER_DISPATCH_DEFAULTS: {
|
|
10
|
+
/** Send attempts, including the first, before a transient failure becomes terminal. */
|
|
11
|
+
readonly MAX_ATTEMPTS: 5;
|
|
12
|
+
/** Base of the exponential retry backoff, in seconds: 15s, 30s, 60s, 120s. */
|
|
13
|
+
readonly RETRY_BASE_SECONDS: 15;
|
|
14
|
+
/** Ceiling for the exponential backoff, in seconds. */
|
|
15
|
+
readonly RETRY_MAX_SECONDS: 300;
|
|
16
|
+
/** Per-request timeout for an outbound partner call, in milliseconds. */
|
|
17
|
+
readonly REQUEST_TIMEOUT_MS: 10000;
|
|
18
|
+
/** Timeout for the partner authentication exchange, in milliseconds. */
|
|
19
|
+
readonly AUTH_TIMEOUT_MS: 8000;
|
|
20
|
+
/**
|
|
21
|
+
* How long a MANUAL dispatch waits for a decision before it expires, in
|
|
22
|
+
* minutes. An hour is deliberately generous: an expired ambulance request is
|
|
23
|
+
* a worse outcome than a stale one, and an operator can always cancel.
|
|
24
|
+
*/
|
|
25
|
+
readonly APPROVAL_WINDOW_MINUTES: 60;
|
|
26
|
+
/** Order used when a partnership does not set its own. */
|
|
27
|
+
readonly PRIORITY: 100;
|
|
28
|
+
/**
|
|
29
|
+
* Seconds subtracted from a partner token's advertised lifetime before it is
|
|
30
|
+
* treated as expired, so a token can never expire mid-request.
|
|
31
|
+
*/
|
|
32
|
+
readonly TOKEN_EXPIRY_SKEW_SECONDS: 60;
|
|
33
|
+
/** Longest a partner access token is cached, whatever lifetime the partner advertises. */
|
|
34
|
+
readonly TOKEN_MAX_CACHE_SECONDS: number;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* How an incident's reporting channel is described to a partner.
|
|
38
|
+
*
|
|
39
|
+
* The mobile app takes a platform fused-location fix (GPS plus network and
|
|
40
|
+
* sensors), so APP maps to FUSED rather than the narrower GPS. Every other
|
|
41
|
+
* channel is either a browser geolocation or a location an operator typed in,
|
|
42
|
+
* and NETWORK is the closest honest description of both. A partnership can
|
|
43
|
+
* override the whole map through `locationProviderByChannel` in its
|
|
44
|
+
* configuration.
|
|
45
|
+
*/
|
|
46
|
+
export declare const PARTNER_CHANNEL_LOCATION_PROVIDER: Readonly<Record<IncidentChannel, PartnerLocationProvider>>;
|
|
47
|
+
/** Field limits partner APIs impose, applied before a payload is built. */
|
|
48
|
+
export declare const PARTNER_FIELD_LIMITS: {
|
|
49
|
+
readonly ADDRESS_MAX_LENGTH: 500;
|
|
50
|
+
readonly ISSUE_MAX_LENGTH: 1000;
|
|
51
|
+
readonly CONTACT_NAME_MAX_LENGTH: 250;
|
|
52
|
+
readonly RELATIONSHIP_MAX_LENGTH: 50;
|
|
53
|
+
/** Emergency-contact numbers offered to a partner, primary guardian first. */
|
|
54
|
+
readonly MAX_EMERGENCY_CONTACT_PHONE_NUMBERS: 5;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Header carrying a caller-supplied idempotency key on routing requests. Kept
|
|
58
|
+
* here so producer and consumer cannot drift.
|
|
59
|
+
*/
|
|
60
|
+
export declare const PARTNER_ROUTING_IDEMPOTENCY_HEADER = "x-partner-routing-idempotency-key";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consumer groups for the partner dispatch topics. One group per logical
|
|
3
|
+
* consumer, so adding a consumer never steals another's messages.
|
|
4
|
+
*/
|
|
5
|
+
export declare const PARTNER_CONSUMER_GROUPS: {
|
|
6
|
+
/** clarion-notification: tells an operator a manual dispatch needs a decision. */
|
|
7
|
+
readonly NOTIFICATION: "partner-dispatch-notification";
|
|
8
|
+
/** clarion-socket: pushes dispatch state to the live admin views. */
|
|
9
|
+
readonly REALTIME: "partner-dispatch-realtime";
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Redis channel clarion-partner-services publishes live dispatch updates on,
|
|
13
|
+
* mirroring the tracking realtime bridge that clarion-socket already subscribes
|
|
14
|
+
* to.
|
|
15
|
+
*/
|
|
16
|
+
export declare const PARTNER_REALTIME_CHANNEL = "partner:dispatch:events";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IncidentEmergencyType } from '../../incident/enums/incident-emergency-type.enum';
|
|
2
|
+
import { PartnerCoverageMatchType } from '../enums/partner-coverage-match-type.enum';
|
|
3
|
+
import { PartnerRoutingMode } from '../enums/partner-routing-mode.enum';
|
|
4
|
+
import { PartnerServiceCapability } from '../enums/partner-service-capability.enum';
|
|
5
|
+
/**
|
|
6
|
+
* Declare that a kind of incident is covered by a partnership.
|
|
7
|
+
*
|
|
8
|
+
* The match key must agree with `matchType` - INCIDENT_TYPE needs
|
|
9
|
+
* `incidentTypeId`, INCIDENT_CATEGORY needs `incidentCategoryId`,
|
|
10
|
+
* EMERGENCY_TYPE needs `emergencyType`, ALL needs none. That cross-field rule is
|
|
11
|
+
* enforced by clarion-partner-services, which also checks the referenced type or
|
|
12
|
+
* category actually belongs to the tenant.
|
|
13
|
+
*/
|
|
14
|
+
export declare class CreatePartnerCoverageRuleDto {
|
|
15
|
+
matchType: PartnerCoverageMatchType;
|
|
16
|
+
incidentTypeId?: number;
|
|
17
|
+
incidentCategoryId?: number;
|
|
18
|
+
emergencyType?: IncidentEmergencyType;
|
|
19
|
+
capability: PartnerServiceCapability;
|
|
20
|
+
routingModeOverride?: PartnerRoutingMode;
|
|
21
|
+
priority?: number;
|
|
22
|
+
enabled?: boolean;
|
|
23
|
+
notes?: string;
|
|
24
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CountryCode } from '../../country/enums/country-code.enum';
|
|
2
|
+
import { PartnerIntegrationEnvironment } from '../enums/partner-integration-environment.enum';
|
|
3
|
+
import { PartnerProviderCode } from '../enums/partner-provider-code.enum';
|
|
4
|
+
import { PartnerRoutingMode } from '../enums/partner-routing-mode.enum';
|
|
5
|
+
import { PartnerServiceCapability } from '../enums/partner-service-capability.enum';
|
|
6
|
+
/**
|
|
7
|
+
* Set up an organization's partnership with a third-party service partner.
|
|
8
|
+
*
|
|
9
|
+
* `organizationId` is only honoured for a Super-Admin, who must state which
|
|
10
|
+
* tenant they are configuring; every other caller is pinned to their own
|
|
11
|
+
* organization by clarion-partner-services regardless of what they send.
|
|
12
|
+
*/
|
|
13
|
+
export declare class CreatePartnerIntegrationDto {
|
|
14
|
+
organizationId?: number;
|
|
15
|
+
controlCentreId?: number;
|
|
16
|
+
providerCode: PartnerProviderCode;
|
|
17
|
+
name: string;
|
|
18
|
+
environment?: PartnerIntegrationEnvironment;
|
|
19
|
+
baseUrl?: string;
|
|
20
|
+
credentialReference: string;
|
|
21
|
+
configuration?: Record<string, unknown>;
|
|
22
|
+
capabilities: PartnerServiceCapability[];
|
|
23
|
+
routingMode?: PartnerRoutingMode;
|
|
24
|
+
approvalWindowMinutes?: number;
|
|
25
|
+
enabled?: boolean;
|
|
26
|
+
priority?: number;
|
|
27
|
+
countryCode?: CountryCode;
|
|
28
|
+
partnerContactName?: string;
|
|
29
|
+
partnerContactPhone?: string;
|
|
30
|
+
partnerContactEmail?: string;
|
|
31
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An operator's decision on a dispatch waiting for manual confirmation, or a
|
|
3
|
+
* withdrawal of one already approved.
|
|
4
|
+
*
|
|
5
|
+
* The acting user is never taken from the body - clarion-partner-services reads
|
|
6
|
+
* it from the trusted user context the gateway forwards, so a decision can
|
|
7
|
+
* always be attributed.
|
|
8
|
+
*/
|
|
9
|
+
export declare class PartnerDispatchDecisionDto {
|
|
10
|
+
reason?: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { CountryCode } from '../../country/enums/country-code.enum';
|
|
2
|
+
import { IncidentChannel } from '../../incident/enums/incident-channel.enum';
|
|
3
|
+
import { IncidentClass } from '../../incident/enums/incident-class.enum';
|
|
4
|
+
import { IncidentEmergencyType } from '../../incident/enums/incident-emergency-type.enum';
|
|
5
|
+
import { IncidentPriority } from '../../incident/enums/incident-priority.enum';
|
|
6
|
+
/** Who raised the emergency, as far as the partner needs to know. */
|
|
7
|
+
export declare class PartnerRoutingReporterDto {
|
|
8
|
+
name?: string;
|
|
9
|
+
phoneNumber?: string;
|
|
10
|
+
userId?: number;
|
|
11
|
+
}
|
|
12
|
+
/** Where the emergency is. */
|
|
13
|
+
export declare class PartnerRoutingLocationDto {
|
|
14
|
+
latitude: number;
|
|
15
|
+
longitude: number;
|
|
16
|
+
measuredAt?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The self-contained routing request clarion-incident sends to
|
|
20
|
+
* clarion-partner-services after an incident commits.
|
|
21
|
+
*
|
|
22
|
+
* Deliberately self-contained rather than a bare incident id: partner routing
|
|
23
|
+
* must never make clarion-partner-services read back from clarion-incident on
|
|
24
|
+
* the emergency path, and the payload frozen here is exactly what a dispatch is
|
|
25
|
+
* audited against later. The one thing it does NOT carry is the reporter's
|
|
26
|
+
* guardians - those are resolved by clarion-partner-services off the hot path,
|
|
27
|
+
* so the SOS response is never delayed by an extra lookup.
|
|
28
|
+
*
|
|
29
|
+
* Idempotent by `incidentId`: a redelivered or retried request returns the
|
|
30
|
+
* existing routing result instead of creating a second dispatch.
|
|
31
|
+
*/
|
|
32
|
+
export declare class RouteIncidentToPartnersDto {
|
|
33
|
+
incidentId: number;
|
|
34
|
+
organizationId: number;
|
|
35
|
+
controlCentreId?: number;
|
|
36
|
+
incidentTypeId?: number;
|
|
37
|
+
incidentTypeName?: string;
|
|
38
|
+
incidentCategoryId?: number;
|
|
39
|
+
incidentCategoryName?: string;
|
|
40
|
+
emergencyType?: IncidentEmergencyType;
|
|
41
|
+
incidentClass?: IncidentClass;
|
|
42
|
+
channel?: IncidentChannel;
|
|
43
|
+
priority?: IncidentPriority;
|
|
44
|
+
description?: string;
|
|
45
|
+
address?: string;
|
|
46
|
+
location?: PartnerRoutingLocationDto;
|
|
47
|
+
reporter?: PartnerRoutingReporterDto;
|
|
48
|
+
createdAt: string;
|
|
49
|
+
countryCode?: CountryCode;
|
|
50
|
+
notifyServiceProvider?: boolean;
|
|
51
|
+
notifyGuardians?: boolean;
|
|
52
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { IncidentPartnerRoutingStatus } from '../enums/incident-partner-routing-status.enum';
|
|
2
|
+
import { PartnerDispatchStatus } from '../enums/partner-dispatch-status.enum';
|
|
3
|
+
import { PartnerProviderCode } from '../enums/partner-provider-code.enum';
|
|
4
|
+
import { PartnerRoutingMode } from '../enums/partner-routing-mode.enum';
|
|
5
|
+
import { PartnerServiceCapability } from '../enums/partner-service-capability.enum';
|
|
6
|
+
/** One partner's leg of an incident's routing, as pushed back to clarion-incident. */
|
|
7
|
+
export declare class IncidentPartnerRoutingEntryDto {
|
|
8
|
+
integrationId: number;
|
|
9
|
+
providerCode: PartnerProviderCode;
|
|
10
|
+
providerName?: string;
|
|
11
|
+
capability: PartnerServiceCapability;
|
|
12
|
+
routingMode: PartnerRoutingMode;
|
|
13
|
+
dispatchId: number;
|
|
14
|
+
dispatchReference: string;
|
|
15
|
+
status: PartnerDispatchStatus;
|
|
16
|
+
partnerReference?: string;
|
|
17
|
+
updatedAt: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The routing callback clarion-partner-services sends to clarion-incident to
|
|
21
|
+
* stamp an incident with its third-party routing outcome.
|
|
22
|
+
*
|
|
23
|
+
* Service-to-service and internal: it is not proxied by the API gateway, and
|
|
24
|
+
* clarion-incident accepts it only from inside the cluster. Sent whenever the
|
|
25
|
+
* rolled-up status changes, so an incident row is eventually consistent with the
|
|
26
|
+
* dispatches behind it without any consumer having to join across services.
|
|
27
|
+
*/
|
|
28
|
+
export declare class UpdateIncidentPartnerRoutingDto {
|
|
29
|
+
status: IncidentPartnerRoutingStatus;
|
|
30
|
+
evaluatedAt: string;
|
|
31
|
+
consideredIntegrationCount?: number;
|
|
32
|
+
entries?: IncidentPartnerRoutingEntryDto[];
|
|
33
|
+
degraded?: boolean;
|
|
34
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { CreatePartnerCoverageRuleDto } from './create-partner-coverage-rule.dto';
|
|
2
|
+
declare const UpdatePartnerCoverageRuleDto_base: import("@nestjs/mapped-types").MappedType<Partial<CreatePartnerCoverageRuleDto>>;
|
|
3
|
+
export declare class UpdatePartnerCoverageRuleDto extends UpdatePartnerCoverageRuleDto_base {
|
|
4
|
+
}
|
|
5
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CreatePartnerIntegrationDto } from './create-partner-integration.dto';
|
|
2
|
+
declare const UpdatePartnerIntegrationDto_base: import("@nestjs/mapped-types").MappedType<Partial<Omit<CreatePartnerIntegrationDto, "organizationId" | "providerCode">>>;
|
|
3
|
+
/**
|
|
4
|
+
* Every field of a partnership is editable except the two that define its
|
|
5
|
+
* identity: `providerCode` and `organizationId`. Changing either would silently
|
|
6
|
+
* repoint an existing dispatch history at a different partner or tenant, so a
|
|
7
|
+
* move is a delete and a create.
|
|
8
|
+
*/
|
|
9
|
+
export declare class UpdatePartnerIntegrationDto extends UpdatePartnerIntegrationDto_base {
|
|
10
|
+
}
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The incident-side summary of third-party routing, stored on the incident row
|
|
3
|
+
* in clarion-incident so the control room can filter and sort on it without a
|
|
4
|
+
* cross-service join.
|
|
5
|
+
*
|
|
6
|
+
* Owned by clarion-partner-services: clarion-incident writes it only from the
|
|
7
|
+
* routing callback, never from a client payload. Every incident starts
|
|
8
|
+
* NOT_ROUTED, which is also what every row predating the feature backfills to.
|
|
9
|
+
*/
|
|
10
|
+
export declare enum IncidentPartnerRoutingStatus {
|
|
11
|
+
/** No partnership covers this incident - the ordinary case. */
|
|
12
|
+
NOT_ROUTED = "NOT_ROUTED",
|
|
13
|
+
/** Covered, and clarion-partner-services has the dispatch(es) in flight. */
|
|
14
|
+
PENDING = "PENDING",
|
|
15
|
+
/** At least one dispatch is waiting on a human decision (MANUAL routing). */
|
|
16
|
+
AWAITING_APPROVAL = "AWAITING_APPROVAL",
|
|
17
|
+
/** Every dispatch reached its partner. */
|
|
18
|
+
ROUTED = "ROUTED",
|
|
19
|
+
/** Some dispatches reached their partner and some did not. */
|
|
20
|
+
PARTIALLY_ROUTED = "PARTIALLY_ROUTED",
|
|
21
|
+
/** Every dispatch failed. */
|
|
22
|
+
FAILED = "FAILED",
|
|
23
|
+
/** Every dispatch was declined or withdrawn by the organization. */
|
|
24
|
+
DECLINED = "DECLINED"
|
|
25
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The outbound partner call an attempt record describes. Kept separate from the
|
|
3
|
+
* dispatch status so an audit trail can distinguish "we could not authenticate"
|
|
4
|
+
* from "the emergency itself was rejected".
|
|
5
|
+
*/
|
|
6
|
+
export declare enum PartnerAdapterOperation {
|
|
7
|
+
/** Exchanging the stored credential for a short-lived access token. */
|
|
8
|
+
AUTHENTICATE = "AUTHENTICATE",
|
|
9
|
+
/** A non-mutating connectivity probe. */
|
|
10
|
+
HEALTH_CHECK = "HEALTH_CHECK",
|
|
11
|
+
/** Submitting the emergency itself. */
|
|
12
|
+
DISPATCH = "DISPATCH"
|
|
13
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a coverage rule matches an incident on.
|
|
3
|
+
*
|
|
4
|
+
* Incident categories and types are per-organization rows in clarion-incident,
|
|
5
|
+
* so a rule referencing them is inherently tenant-scoped; emergency type is a
|
|
6
|
+
* platform-wide enum. `ALL` is the catch-all an organization uses when a partner
|
|
7
|
+
* covers everything it responds to.
|
|
8
|
+
*/
|
|
9
|
+
export declare enum PartnerCoverageMatchType {
|
|
10
|
+
/** Every incident the organization raises. */
|
|
11
|
+
ALL = "ALL",
|
|
12
|
+
/** One `types` row in clarion-incident (e.g. the org's "Medical" type). */
|
|
13
|
+
INCIDENT_TYPE = "INCIDENT_TYPE",
|
|
14
|
+
/** One `categories` row in clarion-incident — matches all of its types. */
|
|
15
|
+
INCIDENT_CATEGORY = "INCIDENT_CATEGORY",
|
|
16
|
+
/** The platform-wide emergency classification (emergency / non-emergency / panic). */
|
|
17
|
+
EMERGENCY_TYPE = "EMERGENCY_TYPE"
|
|
18
|
+
}
|