tabletcommand-incident 0.4.11 → 0.4.13
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/.cspell/project-words.txt +5 -0
- package/build/incidentProcessor.js +5 -1
- package/build/incidentProcessor.js.map +1 -1
- package/build/ruleLegacy/cleanupCommentsFilters.js +0 -21
- package/build/ruleLegacy/cleanupCommentsFilters.js.map +1 -1
- package/build/ruleProcessorLegacy.js +0 -73
- package/build/ruleProcessorLegacy.js.map +1 -1
- package/build/rules/index.js +81 -57
- package/build/rules/index.js.map +1 -1
- package/build/rules/join-call-type-priority.js +23 -3
- package/build/rules/join-call-type-priority.js.map +1 -1
- package/build/rules/set-fire-alarm-at-dispatch-from-alarm-level.js +65 -0
- package/build/rules/set-fire-alarm-at-dispatch-from-alarm-level.js.map +1 -0
- package/build/rules/set-fire-map-santa-clara-city copy.js +51 -0
- package/build/rules/set-fire-map-santa-clara-city copy.js.map +1 -0
- package/build/test/domain.js +61 -55
- package/build/test/domain.js.map +1 -1
- package/build/test/index.js +279 -98
- package/build/test/index.js.map +1 -1
- package/build/test/mock.js +288 -3
- package/build/test/mock.js.map +1 -1
- package/build/test/rules/clean-up-comments.js +4 -8
- package/build/test/rules/clean-up-comments.js.map +1 -1
- package/build/test/rules/clean-up-lat-long.js +5 -9
- package/build/test/rules/clean-up-lat-long.js.map +1 -1
- package/build/test/rules/clear-field.js +4 -8
- package/build/test/rules/clear-field.js.map +1 -1
- package/build/test/rules/close-incident-after-hours.js +8 -12
- package/build/test/rules/close-incident-after-hours.js.map +1 -1
- package/build/test/rules/close-incident-matching-incident-number.js +28 -29
- package/build/test/rules/close-incident-matching-incident-number.js.map +1 -1
- package/build/test/rules/close-incident-of-certain-type.js +8 -12
- package/build/test/rules/close-incident-of-certain-type.js.map +1 -1
- package/build/test/rules/join-call-type-priority.js +20 -11
- package/build/test/rules/join-call-type-priority.js.map +1 -1
- package/build/test/rules/map-unit-dates-verdugo.js +8 -9
- package/build/test/rules/map-unit-dates-verdugo.js.map +1 -1
- package/build/test/rules/remove-person-from-unit.js +6 -7
- package/build/test/rules/remove-person-from-unit.js.map +1 -1
- package/build/test/rules/set-address.js +5 -9
- package/build/test/rules/set-address.js.map +1 -1
- package/build/test/rules/set-channels-from-radio-channels.js +19 -13
- package/build/test/rules/set-channels-from-radio-channels.js.map +1 -1
- package/build/test/rules/set-city-alameda.js +5 -9
- package/build/test/rules/set-city-alameda.js.map +1 -1
- package/build/test/rules/set-city-calfire-lnu.js +5 -9
- package/build/test/rules/set-city-calfire-lnu.js.map +1 -1
- package/build/test/rules/set-city-cleanup.js +7 -11
- package/build/test/rules/set-city-cleanup.js.map +1 -1
- package/build/test/rules/set-city-southern-marin.js +5 -9
- package/build/test/rules/set-city-southern-marin.js.map +1 -1
- package/build/test/rules/set-city-verdugo.js +4 -8
- package/build/test/rules/set-city-verdugo.js.map +1 -1
- package/build/test/rules/set-comment-opts-ack-type.js +7 -8
- package/build/test/rules/set-comment-opts-ack-type.js.map +1 -1
- package/build/test/rules/set-common-place-name.js +4 -8
- package/build/test/rules/set-common-place-name.js.map +1 -1
- package/build/test/rules/set-communication-channels-from-radio-names.js +6 -10
- package/build/test/rules/set-communication-channels-from-radio-names.js.map +1 -1
- package/build/test/rules/set-cross-streets.js +16 -20
- package/build/test/rules/set-cross-streets.js.map +1 -1
- package/build/test/rules/set-fire-map-from-map-pages-southern-marin.js +4 -8
- package/build/test/rules/set-fire-map-from-map-pages-southern-marin.js.map +1 -1
- package/build/test/rules/set-fire-map-pages-ontario.js +5 -9
- package/build/test/rules/set-fire-map-pages-ontario.js.map +1 -1
- package/build/test/rules/set-fire-map-santa-clara-city.js +4 -8
- package/build/test/rules/set-fire-map-santa-clara-city.js.map +1 -1
- package/build/test/rules/set-format-units-pulsepoint.js +6 -7
- package/build/test/rules/set-format-units-pulsepoint.js.map +1 -1
- package/build/test/rules/set-incident-type-ontario.js +4 -8
- package/build/test/rules/set-incident-type-ontario.js.map +1 -1
- package/build/test/rules/set-location-preference-derry.js +10 -14
- package/build/test/rules/set-location-preference-derry.js.map +1 -1
- package/build/test/rules/set-location-preference.js +10 -14
- package/build/test/rules/set-location-preference.js.map +1 -1
- package/build/test/rules/set-map-incident-type-pulsepoint.js +4 -8
- package/build/test/rules/set-map-incident-type-pulsepoint.js.map +1 -1
- package/build/test/rules/set-prior-incident-comment-field.js +5 -6
- package/build/test/rules/set-prior-incident-comment-field.js.map +1 -1
- package/build/test/rules/set-street-number.js +5 -9
- package/build/test/rules/set-street-number.js.map +1 -1
- package/build/test/rulesLegacy.js +0 -245
- package/build/test/rulesLegacy.js.map +1 -1
- package/build/test/rulesLegacyCleanupCommentsFilters.js +0 -19
- package/build/test/rulesLegacyCleanupCommentsFilters.js.map +1 -1
- package/build/test/setIncidentType.js +5 -6
- package/build/test/setIncidentType.js.map +1 -1
- package/build/verify/correction.js +62 -0
- package/build/verify/correction.js.map +1 -0
- package/definitions/incidentProcessor.d.ts.map +1 -1
- package/definitions/ruleLegacy/cleanupCommentsFilters.d.ts +0 -1
- package/definitions/ruleLegacy/cleanupCommentsFilters.d.ts.map +1 -1
- package/definitions/ruleProcessorLegacy.d.ts.map +1 -1
- package/definitions/rules/index.d.ts.map +1 -1
- package/definitions/rules/join-call-type-priority.d.ts +4 -1
- package/definitions/rules/join-call-type-priority.d.ts.map +1 -1
- package/definitions/rules/set-fire-alarm-at-dispatch-from-alarm-level.d.ts +11 -0
- package/definitions/rules/set-fire-alarm-at-dispatch-from-alarm-level.d.ts.map +1 -0
- package/definitions/rules/set-fire-map-santa-clara-city copy.d.ts +11 -0
- package/definitions/rules/set-fire-map-santa-clara-city copy.d.ts.map +1 -0
- package/definitions/test/mock.d.ts +6 -1
- package/definitions/test/mock.d.ts.map +1 -1
- package/definitions/types.d.ts +1 -0
- package/definitions/types.d.ts.map +1 -1
- package/definitions/verify/correction.d.ts +2 -0
- package/definitions/verify/correction.d.ts.map +1 -0
- package/package.json +8 -8
- package/src/incidentProcessor.ts +5 -1
- package/src/ruleLegacy/cleanupCommentsFilters.js +0 -26
- package/src/ruleProcessorLegacy.js +0 -88
- package/src/rules/index.ts +92 -65
- package/src/rules/join-call-type-priority.ts +28 -3
- package/src/rules/set-fire-alarm-at-dispatch-from-alarm-level.ts +67 -0
- package/src/test/domain.ts +9 -4
- package/src/test/index.ts +295 -62
- package/src/test/mock.ts +293 -3
- package/src/test/rules/clean-up-comments.ts +1 -2
- package/src/test/rules/clean-up-lat-long.ts +1 -2
- package/src/test/rules/clear-field.ts +1 -2
- package/src/test/rules/close-incident-after-hours.ts +1 -2
- package/src/test/rules/close-incident-matching-incident-number.ts +2 -2
- package/src/test/rules/close-incident-of-certain-type.ts +1 -2
- package/src/test/rules/join-call-type-priority.ts +19 -5
- package/src/test/rules/map-unit-dates-verdugo.ts +1 -3
- package/src/test/rules/remove-person-from-unit.ts +1 -2
- package/src/test/rules/set-address.ts +1 -2
- package/src/test/rules/set-channels-from-radio-channels.ts +11 -2
- package/src/test/rules/set-city-alameda.ts +1 -2
- package/src/test/rules/set-city-calfire-lnu.ts +1 -2
- package/src/test/rules/set-city-cleanup.ts +1 -2
- package/src/test/rules/set-city-southern-marin.ts +1 -2
- package/src/test/rules/set-city-verdugo.ts +1 -2
- package/src/test/rules/set-comment-opts-ack-type.ts +1 -2
- package/src/test/rules/set-common-place-name.ts +1 -2
- package/src/test/rules/set-communication-channels-from-radio-names.ts +1 -2
- package/src/test/rules/set-cross-streets.ts +1 -2
- package/src/test/rules/set-fire-map-from-map-pages-southern-marin.ts +1 -2
- package/src/test/rules/set-fire-map-pages-ontario.ts +1 -2
- package/src/test/rules/set-fire-map-santa-clara-city.ts +1 -2
- package/src/test/rules/set-format-units-pulsepoint.ts +1 -2
- package/src/test/rules/set-incident-type-ontario.ts +1 -2
- package/src/test/rules/set-location-preference-derry.ts +1 -2
- package/src/test/rules/set-location-preference.ts +1 -2
- package/src/test/rules/set-map-incident-type-pulsepoint.ts +1 -2
- package/src/test/rules/set-prior-incident-comment-field.ts +2 -3
- package/src/test/rules/set-street-number.ts +1 -2
- package/src/test/rulesLegacy.js +1 -272
- package/src/test/rulesLegacyCleanupCommentsFilters.js +0 -22
- package/src/test/setIncidentType.ts +1 -3
- package/src/types.ts +1 -0
- package/src/verify/correction.ts +55 -0
- package/build/ruleLegacy/removePersonFromUnit.js +0 -35
- package/build/ruleLegacy/removePersonFromUnit.js.map +0 -1
- package/build/ruleLegacy/setAgencyCallTypeClarkCounty.js +0 -18
- package/build/ruleLegacy/setAgencyCallTypeClarkCounty.js.map +0 -1
- package/build/ruleLegacy/setCommunicationChannelsFromRadioNames.js +0 -50
- package/build/ruleLegacy/setCommunicationChannelsFromRadioNames.js.map +0 -1
- package/build/ruleLegacy/setFireMapEmptyString.js +0 -15
- package/build/ruleLegacy/setFireMapEmptyString.js.map +0 -1
- package/definitions/location.d.ts +0 -10
- package/definitions/location.d.ts.map +0 -1
- package/definitions/rule/cleanupComments.d.ts +0 -3
- package/definitions/rule/cleanupComments.d.ts.map +0 -1
- package/definitions/rule/cleanupCommentsFilters.d.ts +0 -8
- package/definitions/rule/cleanupCommentsFilters.d.ts.map +0 -1
- package/definitions/rule/cleanupLatLongSantaClaraCity.d.ts +0 -3
- package/definitions/rule/cleanupLatLongSantaClaraCity.d.ts.map +0 -1
- package/definitions/rule/cleanupNull.d.ts +0 -3
- package/definitions/rule/cleanupNull.d.ts.map +0 -1
- package/definitions/rule/cleanupReportNumber.d.ts +0 -3
- package/definitions/rule/cleanupReportNumber.d.ts.map +0 -1
- package/definitions/rule/closeIncidentAfterHours.d.ts +0 -3
- package/definitions/rule/closeIncidentAfterHours.d.ts.map +0 -1
- package/definitions/rule/closeIncidentMatchingIncidentNumber.d.ts +0 -3
- package/definitions/rule/closeIncidentMatchingIncidentNumber.d.ts.map +0 -1
- package/definitions/rule/closeIncidentOfCertainType.d.ts +0 -3
- package/definitions/rule/closeIncidentOfCertainType.d.ts.map +0 -1
- package/definitions/rule/copyCommandName.d.ts +0 -3
- package/definitions/rule/copyCommandName.d.ts.map +0 -1
- package/definitions/rule/copyIncidentNumber.d.ts +0 -3
- package/definitions/rule/copyIncidentNumber.d.ts.map +0 -1
- package/definitions/rule/copyLocationComment.d.ts +0 -3
- package/definitions/rule/copyLocationComment.d.ts.map +0 -1
- package/definitions/rule/mapUnitDatesVerdugo.d.ts +0 -3
- package/definitions/rule/mapUnitDatesVerdugo.d.ts.map +0 -1
- package/definitions/rule/rebuildUnitDispatchNumber.d.ts +0 -3
- package/definitions/rule/rebuildUnitDispatchNumber.d.ts.map +0 -1
- package/definitions/rule/removeEmptyPersonFromUnit.d.ts +0 -3
- package/definitions/rule/removeEmptyPersonFromUnit.d.ts.map +0 -1
- package/definitions/rule/removeField.d.ts +0 -3
- package/definitions/rule/removeField.d.ts.map +0 -1
- package/definitions/rule/removePersonFromUnit.d.ts +0 -3
- package/definitions/rule/removePersonFromUnit.d.ts.map +0 -1
- package/definitions/rule/setAgencyCallTypeClarkCounty.d.ts +0 -3
- package/definitions/rule/setAgencyCallTypeClarkCounty.d.ts.map +0 -1
- package/definitions/rule/setChannelUrlForDepartment.d.ts +0 -3
- package/definitions/rule/setChannelUrlForDepartment.d.ts.map +0 -1
- package/definitions/rule/setChannelsFromRadioChannels.d.ts +0 -3
- package/definitions/rule/setChannelsFromRadioChannels.d.ts.map +0 -1
- package/definitions/rule/setCityAlameda.d.ts +0 -3
- package/definitions/rule/setCityAlameda.d.ts.map +0 -1
- package/definitions/rule/setCityCalfireLNU.d.ts +0 -3
- package/definitions/rule/setCityCalfireLNU.d.ts.map +0 -1
- package/definitions/rule/setCitySouthernMarin.d.ts +0 -3
- package/definitions/rule/setCitySouthernMarin.d.ts.map +0 -1
- package/definitions/rule/setCommonPlaceName.d.ts +0 -3
- package/definitions/rule/setCommonPlaceName.d.ts.map +0 -1
- package/definitions/rule/setCommunicationChannelsFromRadioNames.d.ts +0 -3
- package/definitions/rule/setCommunicationChannelsFromRadioNames.d.ts.map +0 -1
- package/definitions/rule/setCrossStreets.d.ts +0 -3
- package/definitions/rule/setCrossStreets.d.ts.map +0 -1
- package/definitions/rule/setFireMapEmptyString.d.ts +0 -3
- package/definitions/rule/setFireMapEmptyString.d.ts.map +0 -1
- package/definitions/rule/setFireMapFromMapPagesSouthernMarin.d.ts +0 -3
- package/definitions/rule/setFireMapFromMapPagesSouthernMarin.d.ts.map +0 -1
- package/definitions/rule/setFireMapSantaClaraCity.d.ts +0 -3
- package/definitions/rule/setFireMapSantaClaraCity.d.ts.map +0 -1
- package/definitions/rule/setFormatUnitsPulsepoint.d.ts +0 -3
- package/definitions/rule/setFormatUnitsPulsepoint.d.ts.map +0 -1
- package/definitions/rule/setFullAddress.d.ts +0 -3
- package/definitions/rule/setFullAddress.d.ts.map +0 -1
- package/definitions/rule/setLatitudeLongitude.d.ts +0 -3
- package/definitions/rule/setLatitudeLongitude.d.ts.map +0 -1
- package/definitions/rule/setLegacyPriorIncidentChanged.d.ts +0 -3
- package/definitions/rule/setLegacyPriorIncidentChanged.d.ts.map +0 -1
- package/definitions/rule/setLegacyRenameUnit.d.ts +0 -3
- package/definitions/rule/setLegacyRenameUnit.d.ts.map +0 -1
- package/definitions/rule/setLocationPreferenceDerry.d.ts +0 -3
- package/definitions/rule/setLocationPreferenceDerry.d.ts.map +0 -1
- package/definitions/rule/setLocationPreferenceTorrance.d.ts +0 -3
- package/definitions/rule/setLocationPreferenceTorrance.d.ts.map +0 -1
- package/definitions/rule/setMapIncidentTypePulsepoint.d.ts +0 -3
- package/definitions/rule/setMapIncidentTypePulsepoint.d.ts.map +0 -1
- package/definitions/rule/setPriorIncidentCommentField.d.ts +0 -3
- package/definitions/rule/setPriorIncidentCommentField.d.ts.map +0 -1
- package/definitions/rule/setRadioChannelsFromLegacyChannels.d.ts +0 -3
- package/definitions/rule/setRadioChannelsFromLegacyChannels.d.ts.map +0 -1
- package/definitions/rule/setRadioChannelsFromRadioNames.d.ts +0 -3
- package/definitions/rule/setRadioChannelsFromRadioNames.d.ts.map +0 -1
- package/definitions/rule/setStreetNumber.d.ts +0 -3
- package/definitions/rule/setStreetNumber.d.ts.map +0 -1
- package/definitions/rule/setUnitDispatchNumberAsString.d.ts +0 -3
- package/definitions/rule/setUnitDispatchNumberAsString.d.ts.map +0 -1
- package/definitions/rule/setUnitUUID.d.ts +0 -3
- package/definitions/rule/setUnitUUID.d.ts.map +0 -1
- package/definitions/rule/translateCityVerdugo.d.ts +0 -3
- package/definitions/rule/translateCityVerdugo.d.ts.map +0 -1
- package/definitions/rule-processor.d.ts +0 -2
- package/definitions/rule-processor.d.ts.map +0 -1
- package/definitions/ruleLegacy/copyIncidentNumber.d.ts +0 -3
- package/definitions/ruleLegacy/copyIncidentNumber.d.ts.map +0 -1
- package/definitions/ruleLegacy/copyLocationComment.d.ts +0 -3
- package/definitions/ruleLegacy/copyLocationComment.d.ts.map +0 -1
- package/definitions/ruleLegacy/removePersonFromUnit.d.ts +0 -3
- package/definitions/ruleLegacy/removePersonFromUnit.d.ts.map +0 -1
- package/definitions/ruleLegacy/setAgencyCallTypeClarkCounty.d.ts +0 -3
- package/definitions/ruleLegacy/setAgencyCallTypeClarkCounty.d.ts.map +0 -1
- package/definitions/ruleLegacy/setCityAlameda.d.ts +0 -3
- package/definitions/ruleLegacy/setCityAlameda.d.ts.map +0 -1
- package/definitions/ruleLegacy/setCityCalfireLNU.d.ts +0 -3
- package/definitions/ruleLegacy/setCityCalfireLNU.d.ts.map +0 -1
- package/definitions/ruleLegacy/setCitySouthernMarin.d.ts +0 -3
- package/definitions/ruleLegacy/setCitySouthernMarin.d.ts.map +0 -1
- package/definitions/ruleLegacy/setCommonPlaceName.d.ts +0 -3
- package/definitions/ruleLegacy/setCommonPlaceName.d.ts.map +0 -1
- package/definitions/ruleLegacy/setCommunicationChannelsFromRadioNames.d.ts +0 -3
- package/definitions/ruleLegacy/setCommunicationChannelsFromRadioNames.d.ts.map +0 -1
- package/definitions/ruleLegacy/setCrossStreets.d.ts +0 -3
- package/definitions/ruleLegacy/setCrossStreets.d.ts.map +0 -1
- package/definitions/ruleLegacy/setFireMapEmptyString.d.ts +0 -3
- package/definitions/ruleLegacy/setFireMapEmptyString.d.ts.map +0 -1
- package/definitions/ruleLegacy/setFireMapFromMapPagesSouthernMarin.d.ts +0 -3
- package/definitions/ruleLegacy/setFireMapFromMapPagesSouthernMarin.d.ts.map +0 -1
- package/definitions/ruleLegacy/setFullAddress.d.ts +0 -3
- package/definitions/ruleLegacy/setFullAddress.d.ts.map +0 -1
- package/definitions/ruleLegacy/setPriorIncidentCommentField.d.ts +0 -3
- package/definitions/ruleLegacy/setPriorIncidentCommentField.d.ts.map +0 -1
- package/definitions/ruleLegacy/translateCityVerdugo.d.ts +0 -3
- package/definitions/ruleLegacy/translateCityVerdugo.d.ts.map +0 -1
- package/definitions/set-incident-type.d.ts +0 -20
- package/definitions/set-incident-type.d.ts.map +0 -1
- package/definitions/test/rules.d.ts +0 -2
- package/definitions/test/rules.d.ts.map +0 -1
- package/definitions/test/rulesCleanupCommentsFilters.d.ts +0 -2
- package/definitions/test/rulesCleanupCommentsFilters.d.ts.map +0 -1
- package/definitions/test/set-incident-type.d.ts +0 -2
- package/definitions/test/set-incident-type.d.ts.map +0 -1
- package/src/ruleLegacy/removePersonFromUnit.js +0 -37
- package/src/ruleLegacy/setAgencyCallTypeClarkCounty.js +0 -20
- package/src/ruleLegacy/setCommunicationChannelsFromRadioNames.js +0 -58
- package/src/ruleLegacy/setFireMapEmptyString.js +0 -15
|
@@ -10,9 +10,7 @@ const cleanupNull = require("./ruleLegacy/cleanupNull");
|
|
|
10
10
|
const closeIncidentAfterHours = require("./ruleLegacy/closeIncidentAfterHours");
|
|
11
11
|
const closeIncidentMatchingIncidentNumber = require("./ruleLegacy/closeIncidentMatchingIncidentNumber");
|
|
12
12
|
const closeIncidentOfCertainType = require("./ruleLegacy/closeIncidentOfCertainType");
|
|
13
|
-
const removePersonFromUnit = require("./ruleLegacy/removePersonFromUnit");
|
|
14
13
|
const removeEmptyPersonFromUnit = require("./ruleLegacy/removeEmptyPersonFromUnit");
|
|
15
|
-
const setFireMapEmptyString = require("./ruleLegacy/setFireMapEmptyString");
|
|
16
14
|
const setChannelFromRadioChannels = require("./ruleLegacy/setChannelsFromRadioChannels");
|
|
17
15
|
const rebuildUnitDispatchNumber = require("./ruleLegacy/rebuildUnitDispatchNumber");
|
|
18
16
|
const removeField = require("./ruleLegacy/removeField");
|
|
@@ -22,7 +20,6 @@ const setFormatUnitsPulsepoint = require("./ruleLegacy/setFormatUnitsPulsepoint"
|
|
|
22
20
|
const mapUnitDatesVerdugo = require("./ruleLegacy/mapUnitDatesVerdugo");
|
|
23
21
|
const setMapIncidentTypePulsepoint = require("./ruleLegacy/setMapIncidentTypePulsepoint");
|
|
24
22
|
const setLatitudeLongitude = require("./ruleLegacy/setLatitudeLongitude");
|
|
25
|
-
const setCommunicationChannelsFromRadioNamesModule = require("./ruleLegacy/setCommunicationChannelsFromRadioNames");
|
|
26
23
|
const setRadioChannelsFromLegacyChannelsModule = require("./ruleLegacy/setRadioChannelsFromLegacyChannels");
|
|
27
24
|
const setRadioChannelsFromRadioNamesModule = require("./ruleLegacy/setRadioChannelsFromRadioNames");
|
|
28
25
|
const setFireMapSantaClaraCity = require("./ruleLegacy/setFireMapSantaClaraCity");
|
|
@@ -36,8 +33,6 @@ const setUnitDispatchNumberAsString = require("./ruleLegacy/setUnitDispatchNumbe
|
|
|
36
33
|
const setLegacyPriorIncidentChanged = require("./ruleLegacy/setLegacyPriorIncidentChanged");
|
|
37
34
|
const setLegacyRenameUnit = require("./ruleLegacy/setLegacyRenameUnit");
|
|
38
35
|
|
|
39
|
-
const setAgencyCallTypeClarkCounty = require("./ruleLegacy/setAgencyCallTypeClarkCounty");
|
|
40
|
-
|
|
41
36
|
// Applies to the raw incident, whatever we get from the CAD
|
|
42
37
|
function ruleProcessor(incident, department) {
|
|
43
38
|
if (!_.isObject(incident)) {
|
|
@@ -184,14 +179,6 @@ function ruleProcessor(incident, department) {
|
|
|
184
179
|
// Copy LocationComment as Comment
|
|
185
180
|
// Move LocationComment to CommonPlaceName
|
|
186
181
|
|
|
187
|
-
// Clark County
|
|
188
|
-
if (departmentId === "5c1016b2ebcdc419d00a3ecb") {
|
|
189
|
-
rule.setAgencyCallTypeClarkCounty = [{
|
|
190
|
-
is: "setAgencyCallTypeClarkCountyResolved",
|
|
191
|
-
use: setAgencyCallTypeClarkCounty
|
|
192
|
-
}];
|
|
193
|
-
}
|
|
194
|
-
|
|
195
182
|
// Richmond Hill Fire Department/Versaterm: production, testing, development
|
|
196
183
|
if (departmentId === "592ba375e47dac145f680bab" ||
|
|
197
184
|
departmentId === "5a6631f0923ce109270975bd" ||
|
|
@@ -273,81 +260,6 @@ function ruleProcessor(incident, department) {
|
|
|
273
260
|
}];
|
|
274
261
|
}
|
|
275
262
|
|
|
276
|
-
// Santa Cruz Regional Communications
|
|
277
|
-
if (departmentId === "51b8bea159aaf4fa3e000378") {
|
|
278
|
-
/* cSpell:disable */
|
|
279
|
-
const setCommunicationChannelsFromRadioNamesSCRC = setCommunicationChannelsFromRadioNamesModule(
|
|
280
|
-
["FBLK", "FBLK1", "FBLK2", "FBLK3", "FBLK4", "FBLU",
|
|
281
|
-
"FBLU1", "FBLU2", "FBLU3", "FBLU4", "FGRN", "FGRN1",
|
|
282
|
-
"FGRN2", "FGRN3", "FGRN4", "FORNG", "FORNG1", "FORNG2",
|
|
283
|
-
"FORNG3", "FORNG4", "FSILV", "FSILV1", "FSILV2", "FSILV3",
|
|
284
|
-
"FSILV4", "HTAC1", "HTAC2", "UCTAC", "VFIR21", "VFIR22",
|
|
285
|
-
"VFIR23", "VFIR24", "VFIR25", "VFIR26", "FCORD", "FCORDH"], // Tactical
|
|
286
|
-
[], // TacticalAlt
|
|
287
|
-
["FRED", "FRED1", "FRED2", "FRED3", "FRED4", "FYELL",
|
|
288
|
-
"FYELL1", "FYELL2", "FYELL3", "FYELL4", "FCZU", "FBEU"] // Command
|
|
289
|
-
);
|
|
290
|
-
|
|
291
|
-
rule.setCommunicationChannelsFromRadioNamesSCRC = [{
|
|
292
|
-
is: "setCommunicationChannelsFromRadioNamesSCRCResolved",
|
|
293
|
-
use: setCommunicationChannelsFromRadioNamesSCRC
|
|
294
|
-
}];
|
|
295
|
-
/* cSpell:enable */
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
// San Mateo County Dispatch - Production, Training, Testing
|
|
299
|
-
const isSanMateoCounty = departmentId === "5238fb0228dd530000000132" || // Production
|
|
300
|
-
departmentId === "5578fd8ee06887fe660000f9" || // Training
|
|
301
|
-
departmentId === "5f31cf7587aabc6af4559da7"; // Testing
|
|
302
|
-
if (isSanMateoCounty) {
|
|
303
|
-
const removePersonFromUnitSanMateo = removePersonFromUnit();
|
|
304
|
-
|
|
305
|
-
rule.removePersonFromUnitSanMateo = [{
|
|
306
|
-
is: "removePersonFromUnitSanMateoResolved",
|
|
307
|
-
use: removePersonFromUnitSanMateo
|
|
308
|
-
}];
|
|
309
|
-
|
|
310
|
-
const setFireMapEmptyStringSanMateo = setFireMapEmptyString();
|
|
311
|
-
|
|
312
|
-
rule.setFireMapEmptyStringSanMateo = [{
|
|
313
|
-
is: "setFireMapEmptyStringSanMateoResolved",
|
|
314
|
-
use: setFireMapEmptyStringSanMateo
|
|
315
|
-
}];
|
|
316
|
-
|
|
317
|
-
/* cSpell:disable */
|
|
318
|
-
const setCommunicationChannelsFromRadioNamesSMC = setCommunicationChannelsFromRadioNamesModule(
|
|
319
|
-
["TAC15", "TAC16", "TAC17", "TAC25", "TAC26", "TAC27", "TAC35", "TAC36", "TAC37",
|
|
320
|
-
"TAC45", "TAC46", "TAC47", "VFIR21", "VFIR22", "VFIR23", "VFIR24", "VFIR25", "VFIR26"], // Tactical
|
|
321
|
-
[], // TacticalAlt
|
|
322
|
-
["CM11X1", "CM11X2", "CM11X3", "CM11X4", "CM11X5", "CM21X1", "CM21X2", "CM21X3",
|
|
323
|
-
"CM21X4", "CM21X5", "CM31X1", "CM31X2", "CM31X3", "CM31X4", "CM31X5", "CM41X1",
|
|
324
|
-
"CM41X2", "CM41X3", "CM41X4", "CM41X5", "CM51X1", "CM51X2", "CM51X3", "CM51X4",
|
|
325
|
-
"CM51X5"] // Command
|
|
326
|
-
);
|
|
327
|
-
/* cSpell:enable */
|
|
328
|
-
|
|
329
|
-
rule.setCommunicationChannelsFromRadioNames = [{
|
|
330
|
-
is: "setCommunicationChannelsFromRadioNamesResolved",
|
|
331
|
-
use: setCommunicationChannelsFromRadioNamesSMC
|
|
332
|
-
}];
|
|
333
|
-
|
|
334
|
-
const sanMateoAutoCloseTypes = [
|
|
335
|
-
"FIRE INFORMATION ADVISEMENT"
|
|
336
|
-
];
|
|
337
|
-
const sanMateoAutoCloseDelay = 1; // After 1 second
|
|
338
|
-
const closeIncidentOfCertainTypeSanMateo = closeIncidentOfCertainType(sanMateoAutoCloseTypes, sanMateoAutoCloseDelay);
|
|
339
|
-
|
|
340
|
-
rule.closeIncidentOfCertainTypeSanMateo = [{
|
|
341
|
-
is: "closeIncidentOfCertainTypeSanMateoResolved",
|
|
342
|
-
use: closeIncidentOfCertainTypeSanMateo
|
|
343
|
-
}];
|
|
344
|
-
|
|
345
|
-
rule.cleanupComments = [{
|
|
346
|
-
is: "cleanupCommentsSMCResolved",
|
|
347
|
-
use: cleanupCommentsModule(cleanupCommentsFilters.missingDate)
|
|
348
|
-
}];
|
|
349
|
-
}
|
|
350
|
-
|
|
351
263
|
// Santa Clara City, Santa Clara City-Hexagon Test
|
|
352
264
|
if (departmentId === "5a3e9340432ea42a8dc0d6de" ||
|
|
353
265
|
departmentId === "5b05e02b14f3f758ae9501cb") {
|
package/src/rules/index.ts
CHANGED
|
@@ -28,6 +28,7 @@ import { IncidentRuleMapUnitDatesVerdugo } from "./map-unit-dates-verdugo";
|
|
|
28
28
|
import { IncidentRuleNotImplemented } from "./not-implemented";
|
|
29
29
|
import { IncidentRuleRemovePersonFromUnit } from "./remove-person-from-unit";
|
|
30
30
|
import { IncidentRuleSetAddress } from "./set-address";
|
|
31
|
+
import { IncidentRuleSetAlarmAtDispatchFromAlarmLevel } from "./set-fire-alarm-at-dispatch-from-alarm-level";
|
|
31
32
|
import { IncidentRuleSetChannelsFromRadioChannels } from "./set-channels-from-radio-channels";
|
|
32
33
|
import { IncidentRuleSetCityAlameda } from "./set-city-alameda";
|
|
33
34
|
import { IncidentRuleSetCityCalfireLNU } from "./set-city-calfire-lnu";
|
|
@@ -39,15 +40,15 @@ import { IncidentRuleSetCommonPlaceName } from "./set-common-place-name";
|
|
|
39
40
|
import { IncidentRuleSetCommunicationChannelsFromRadioNames } from "./set-communication-channels-from-radio-names";
|
|
40
41
|
import { IncidentRuleSetCrossStreets } from "./set-cross-streets";
|
|
41
42
|
import { IncidentRuleSetFireMapFromMapPagesSouthernMarin } from "./set-fire-map-from-map-pages-southern-marin";
|
|
43
|
+
import { IncidentRuleSetFireMapPagesOntario } from "./set-fire-map-pages-ontario";
|
|
42
44
|
import { IncidentRuleSetFireMapSantaClaraCity } from "./set-fire-map-santa-clara-city";
|
|
43
45
|
import { IncidentRuleSetFormatUnitsPulsePoint } from "./set-format-units-pulsepoint";
|
|
46
|
+
import { IncidentRuleSetIncidentTypeOntario } from "./set-incident-type-ontario";
|
|
44
47
|
import { IncidentRuleSetLocationPreference } from "./set-location-preference";
|
|
45
48
|
import { IncidentRuleSetLocationPreferenceDerry } from "./set-location-preference-derry";
|
|
46
49
|
import { IncidentRuleSetMapIncidentTypePulsePoint } from "./set-map-incident-type-pulsepoint";
|
|
47
50
|
import { IncidentRuleSetPriorIncidentCommentField } from "./set-prior-incident-comment-field";
|
|
48
51
|
import { IncidentRuleSetStreetNumber } from "./set-street-number";
|
|
49
|
-
import { IncidentRuleSetIncidentTypeOntario } from "./set-incident-type-ontario";
|
|
50
|
-
import { IncidentRuleSetFireMapPagesOntario } from "./set-fire-map-pages-ontario";
|
|
51
52
|
|
|
52
53
|
import {
|
|
53
54
|
IncidentRuleCleanUpComments,
|
|
@@ -76,6 +77,75 @@ export function rulesForDepartment(department: Partial<Department>): IncidentRul
|
|
|
76
77
|
items.push(new IncidentRuleSetCityCalfireLNU());
|
|
77
78
|
}
|
|
78
79
|
|
|
80
|
+
// Clark County
|
|
81
|
+
if (departmentId === "5c1016b2ebcdc419d00a3ecb") {
|
|
82
|
+
items.push(new IncidentRuleJoinCallTypePriority("PrioCallType"));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Jackson County - Testing
|
|
86
|
+
if (departmentId === "661db49dc30f898ba3594c9a") {
|
|
87
|
+
items.push(new IncidentRuleJoinCallTypePriority("CallTypePrio", "-"));
|
|
88
|
+
items.push(new IncidentRuleSetAlarmAtDispatchFromAlarmLevel());
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// San Mateo County Dispatch - Production, Training, Testing
|
|
92
|
+
const isSanMateoCounty = departmentId === "5238fb0228dd530000000132" || // Production
|
|
93
|
+
departmentId === "5578fd8ee06887fe660000f9" || // Training
|
|
94
|
+
departmentId === "5f31cf7587aabc6af4559da7"; // Testing
|
|
95
|
+
if (isSanMateoCounty) {
|
|
96
|
+
items.push(new IncidentRuleRemovePersonFromUnit());
|
|
97
|
+
items.push(new IncidentRuleClearField("FireMap"));
|
|
98
|
+
// cSpell:disable
|
|
99
|
+
items.push(new IncidentRuleSetCommunicationChannelsFromRadioNames(
|
|
100
|
+
// Tactical
|
|
101
|
+
[
|
|
102
|
+
"TAC15", "TAC16", "TAC17", "TAC25", "TAC26", "TAC27", "TAC35", "TAC36", "TAC37",
|
|
103
|
+
"TAC45", "TAC46", "TAC47", "VFIR21", "VFIR22", "VFIR23", "VFIR24", "VFIR25", "VFIR26",
|
|
104
|
+
],
|
|
105
|
+
// Tactical Alt
|
|
106
|
+
[],
|
|
107
|
+
// Command
|
|
108
|
+
[
|
|
109
|
+
"CM11X1", "CM11X2", "CM11X3", "CM11X4", "CM11X5", "CM21X1", "CM21X2", "CM21X3",
|
|
110
|
+
"CM21X4", "CM21X5", "CM31X1", "CM31X2", "CM31X3", "CM31X4", "CM31X5", "CM41X1",
|
|
111
|
+
"CM41X2", "CM41X3", "CM41X4", "CM41X5", "CM51X1", "CM51X2", "CM51X3", "CM51X4",
|
|
112
|
+
"CM51X5",
|
|
113
|
+
]
|
|
114
|
+
));
|
|
115
|
+
// cSpell:enable
|
|
116
|
+
items.push(new IncidentRuleCloseIncidentOfCertainType(
|
|
117
|
+
[
|
|
118
|
+
"FIRE INFORMATION ADVISEMENT",
|
|
119
|
+
],
|
|
120
|
+
1, // After 1 second
|
|
121
|
+
));
|
|
122
|
+
items.push(new IncidentRuleCleanUpComments(cleanUpFilterMissingDates));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Santa Cruz Regional Communications
|
|
126
|
+
if (departmentId === "51b8bea159aaf4fa3e000378") {
|
|
127
|
+
// cSpell:disable
|
|
128
|
+
items.push(new IncidentRuleSetCommunicationChannelsFromRadioNames(
|
|
129
|
+
// Tactical
|
|
130
|
+
[
|
|
131
|
+
"FBLK", "FBLK1", "FBLK2", "FBLK3", "FBLK4", "FBLU",
|
|
132
|
+
"FBLU1", "FBLU2", "FBLU3", "FBLU4", "FGRN", "FGRN1",
|
|
133
|
+
"FGRN2", "FGRN3", "FGRN4", "FORNG", "FORNG1", "FORNG2",
|
|
134
|
+
"FORNG3", "FORNG4", "FSILV", "FSILV1", "FSILV2", "FSILV3",
|
|
135
|
+
"FSILV4", "HTAC1", "HTAC2", "UCTAC", "VFIR21", "VFIR22",
|
|
136
|
+
"VFIR23", "VFIR24", "VFIR25", "VFIR26", "FCORD", "FCORDH",
|
|
137
|
+
],
|
|
138
|
+
// Tactical Alt
|
|
139
|
+
[],
|
|
140
|
+
// Command
|
|
141
|
+
[
|
|
142
|
+
"FRED", "FRED1", "FRED2", "FRED3", "FRED4", "FYELL",
|
|
143
|
+
"FYELL1", "FYELL2", "FYELL3", "FYELL4", "FCZU", "FBEU",
|
|
144
|
+
]
|
|
145
|
+
));
|
|
146
|
+
// cSpell:enable
|
|
147
|
+
}
|
|
148
|
+
|
|
79
149
|
// Southern Marin / Southern Marin Test
|
|
80
150
|
if (departmentId === "5175b66dd114ea2bee000037" ||
|
|
81
151
|
departmentId === "5a30abc8bed2e86d05c9e68e"
|
|
@@ -91,10 +161,30 @@ export function rulesForDepartment(department: Partial<Department>): IncidentRul
|
|
|
91
161
|
));
|
|
92
162
|
}
|
|
93
163
|
|
|
164
|
+
// Verdugo
|
|
94
165
|
if (departmentId === "6387f8028dc3b9c15bd2afc8" || departmentId === "54ef74f5b034810000000e38") {
|
|
95
166
|
items.push(new IncidentRuleSetCityVerdugo());
|
|
96
167
|
}
|
|
97
168
|
|
|
169
|
+
// Yolo Emergency Communications Agency
|
|
170
|
+
if (departmentId === "660c60e25a572c9f4a20972a") {
|
|
171
|
+
// cSpell:disable
|
|
172
|
+
items.push(new IncidentRuleSetCommunicationChannelsFromRadioNames(
|
|
173
|
+
// Tactical
|
|
174
|
+
[
|
|
175
|
+
"BLACK", "BROWN",
|
|
176
|
+
"ECHO6", "ECHO7", "ECHO8", "ECHO9",
|
|
177
|
+
"VFIRE22", "VFIRE23", "VFIRE24", "VFIRE25", "VFIRE26",
|
|
178
|
+
"WDLDTAC",
|
|
179
|
+
],
|
|
180
|
+
// Tactical Alt
|
|
181
|
+
[],
|
|
182
|
+
// Command
|
|
183
|
+
[]
|
|
184
|
+
));
|
|
185
|
+
// cSpell:enable
|
|
186
|
+
}
|
|
187
|
+
|
|
98
188
|
// Cleanup City that were not previously processed
|
|
99
189
|
items.push(new IncidentRuleSetCityCleanUp());
|
|
100
190
|
|
|
@@ -132,11 +222,6 @@ export function rulesForDepartment(department: Partial<Department>): IncidentRul
|
|
|
132
222
|
|
|
133
223
|
//. Moved...
|
|
134
224
|
|
|
135
|
-
// Clark County
|
|
136
|
-
if (departmentId === "5c1016b2ebcdc419d00a3ecb") {
|
|
137
|
-
items.push(new IncidentRuleJoinCallTypePriority());
|
|
138
|
-
}
|
|
139
|
-
|
|
140
225
|
// Verdugo
|
|
141
226
|
if (departmentId === "54ef74f5b034810000000e38" ||
|
|
142
227
|
departmentId === "6387f8028dc3b9c15bd2afc8"
|
|
@@ -170,64 +255,6 @@ export function rulesForDepartment(department: Partial<Department>): IncidentRul
|
|
|
170
255
|
items.push(new IncidentRuleCloseIncidentAfterHours(4));
|
|
171
256
|
}
|
|
172
257
|
|
|
173
|
-
// Santa Cruz Regional Communications
|
|
174
|
-
if (departmentId === "51b8bea159aaf4fa3e000378") {
|
|
175
|
-
// cSpell:disable
|
|
176
|
-
items.push(new IncidentRuleSetCommunicationChannelsFromRadioNames(
|
|
177
|
-
// Tactical
|
|
178
|
-
[
|
|
179
|
-
"FBLK", "FBLK1", "FBLK2", "FBLK3", "FBLK4", "FBLU",
|
|
180
|
-
"FBLU1", "FBLU2", "FBLU3", "FBLU4", "FGRN", "FGRN1",
|
|
181
|
-
"FGRN2", "FGRN3", "FGRN4", "FORNG", "FORNG1", "FORNG2",
|
|
182
|
-
"FORNG3", "FORNG4", "FSILV", "FSILV1", "FSILV2", "FSILV3",
|
|
183
|
-
"FSILV4", "HTAC1", "HTAC2", "UCTAC", "VFIR21", "VFIR22",
|
|
184
|
-
"VFIR23", "VFIR24", "VFIR25", "VFIR26", "FCORD", "FCORDH",
|
|
185
|
-
],
|
|
186
|
-
// Tactical Alt
|
|
187
|
-
[],
|
|
188
|
-
// Command
|
|
189
|
-
[
|
|
190
|
-
"FRED", "FRED1", "FRED2", "FRED3", "FRED4", "FYELL",
|
|
191
|
-
"FYELL1", "FYELL2", "FYELL3", "FYELL4", "FCZU", "FBEU",
|
|
192
|
-
]
|
|
193
|
-
));
|
|
194
|
-
// cSpell:enable
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// San Mateo County Dispatch - Production, Training, Testing
|
|
198
|
-
const isSanMateoCounty = departmentId === "5238fb0228dd530000000132" || // Production
|
|
199
|
-
departmentId === "5578fd8ee06887fe660000f9" || // Training
|
|
200
|
-
departmentId === "5f31cf7587aabc6af4559da7"; // Testing
|
|
201
|
-
if (isSanMateoCounty) {
|
|
202
|
-
items.push(new IncidentRuleRemovePersonFromUnit());
|
|
203
|
-
items.push(new IncidentRuleClearField("FireMap"));
|
|
204
|
-
// cSpell:disable
|
|
205
|
-
items.push(new IncidentRuleSetCommunicationChannelsFromRadioNames(
|
|
206
|
-
// Tactical
|
|
207
|
-
[
|
|
208
|
-
"TAC15", "TAC16", "TAC17", "TAC25", "TAC26", "TAC27", "TAC35", "TAC36", "TAC37",
|
|
209
|
-
"TAC45", "TAC46", "TAC47", "VFIR21", "VFIR22", "VFIR23", "VFIR24", "VFIR25", "VFIR26",
|
|
210
|
-
],
|
|
211
|
-
// Tactical Alt
|
|
212
|
-
[],
|
|
213
|
-
// Command
|
|
214
|
-
[
|
|
215
|
-
"CM11X1", "CM11X2", "CM11X3", "CM11X4", "CM11X5", "CM21X1", "CM21X2", "CM21X3",
|
|
216
|
-
"CM21X4", "CM21X5", "CM31X1", "CM31X2", "CM31X3", "CM31X4", "CM31X5", "CM41X1",
|
|
217
|
-
"CM41X2", "CM41X3", "CM41X4", "CM41X5", "CM51X1", "CM51X2", "CM51X3", "CM51X4",
|
|
218
|
-
"CM51X5",
|
|
219
|
-
]
|
|
220
|
-
));
|
|
221
|
-
// cSpell:enable
|
|
222
|
-
items.push(new IncidentRuleCloseIncidentOfCertainType(
|
|
223
|
-
[
|
|
224
|
-
"FIRE INFORMATION ADVISEMENT",
|
|
225
|
-
],
|
|
226
|
-
1, // After 1 second
|
|
227
|
-
));
|
|
228
|
-
items.push(new IncidentRuleCleanUpComments(cleanUpFilterMissingDates));
|
|
229
|
-
}
|
|
230
|
-
|
|
231
258
|
// Santa Clara City, Santa Clara City-Hexagon Test
|
|
232
259
|
if (departmentId === "5a3e9340432ea42a8dc0d6de" ||
|
|
233
260
|
departmentId === "5b05e02b14f3f758ae9501cb"
|
|
@@ -3,14 +3,20 @@ import _ from "lodash";
|
|
|
3
3
|
import { CADIncident } from "tabletcommand-backend-models";
|
|
4
4
|
import { IncidentRule, IncidentRuleChange } from ".";
|
|
5
5
|
|
|
6
|
+
export type JoinCallTypeOrder = "PrioCallType" | "CallTypePrio";
|
|
7
|
+
|
|
6
8
|
export class IncidentRuleJoinCallTypePriority implements IncidentRule {
|
|
7
9
|
name = "Join Call Type - Priority";
|
|
8
10
|
matched = false;
|
|
9
11
|
changed = false;
|
|
10
12
|
changes: IncidentRuleChange[] = [];
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
joinOrder: JoinCallTypeOrder = "PrioCallType";
|
|
15
|
+
separator = "";
|
|
16
|
+
|
|
17
|
+
constructor(j: JoinCallTypeOrder, s = "") {
|
|
18
|
+
this.joinOrder = j;
|
|
19
|
+
this.separator = s;
|
|
14
20
|
}
|
|
15
21
|
|
|
16
22
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -24,7 +30,26 @@ export class IncidentRuleJoinCallTypePriority implements IncidentRule {
|
|
|
24
30
|
|
|
25
31
|
const priorityDescription = _.trim(item.AgencyIncidentPriorityDescription);
|
|
26
32
|
const callTypeDescription = _.trim(item.AgencyIncidentCallTypeDescription);
|
|
27
|
-
const
|
|
33
|
+
const parts: string[] = [];
|
|
34
|
+
switch (this.joinOrder) {
|
|
35
|
+
case "CallTypePrio":
|
|
36
|
+
parts.push(callTypeDescription);
|
|
37
|
+
if (this.separator !== "") {
|
|
38
|
+
parts.push(this.separator);
|
|
39
|
+
}
|
|
40
|
+
parts.push(priorityDescription);
|
|
41
|
+
break;
|
|
42
|
+
|
|
43
|
+
default:
|
|
44
|
+
parts.push(priorityDescription);
|
|
45
|
+
if (this.separator !== "") {
|
|
46
|
+
parts.push(this.separator);
|
|
47
|
+
}
|
|
48
|
+
parts.push(callTypeDescription);
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const nextCallType = parts.join(" ");
|
|
28
53
|
item.AgencyIncidentCallTypeDescription = nextCallType;
|
|
29
54
|
|
|
30
55
|
this.matched = true;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import _ from "lodash";
|
|
2
|
+
import { CADIncident } from "tabletcommand-backend-models";
|
|
3
|
+
import { IncidentRule, IncidentRuleChange } from ".";
|
|
4
|
+
import { CADUnit } from "../types";
|
|
5
|
+
|
|
6
|
+
export class IncidentRuleSetAlarmAtDispatchFromAlarmLevel implements IncidentRule {
|
|
7
|
+
name = "Set Unit.AlarmAtDispatch from Incident.AlarmLevel";
|
|
8
|
+
matched = false;
|
|
9
|
+
changed = false;
|
|
10
|
+
changes: IncidentRuleChange[] = [];
|
|
11
|
+
|
|
12
|
+
constructor() {
|
|
13
|
+
//
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
|
+
apply(item: Partial<CADIncident>, _atDate: Date): Partial<CADIncident> {
|
|
18
|
+
const hasAlarmLevel = (_.isString(item.AlarmLevel) && _.trim(item.AlarmLevel) !== "") || _.isNumber(item.AlarmLevel);
|
|
19
|
+
if (!hasAlarmLevel) {
|
|
20
|
+
return item;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// To handle when AlarmLevel is a number
|
|
24
|
+
const alarmLevel = _.trim(`${item.AlarmLevel}`);
|
|
25
|
+
let changed = false;
|
|
26
|
+
let matched = false;
|
|
27
|
+
const change: Record<string, string> = {};
|
|
28
|
+
|
|
29
|
+
// Process if unit is from Stream
|
|
30
|
+
if (_.isArray(item.Unit as CADUnit[])) {
|
|
31
|
+
(item.Unit as CADUnit[]).forEach((unit: CADUnit) => {
|
|
32
|
+
if (_.isString(unit.AlarmAtDispatch) && unit.AlarmAtDispatch !== "") {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
unit.AlarmAtDispatch = alarmLevel;
|
|
36
|
+
changed = true;
|
|
37
|
+
matched = true;
|
|
38
|
+
change[unit.UnitID ?? "-"] = `AlarmAtDispatch: ${alarmLevel}`;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Process if unit is from Incident
|
|
43
|
+
if (_.isArray(item.units)) {
|
|
44
|
+
item.units.forEach((unit: CADUnit) => {
|
|
45
|
+
if (_.isString(unit.AlarmAtDispatch) && unit.AlarmAtDispatch !== "") {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
unit.AlarmAtDispatch = alarmLevel;
|
|
49
|
+
changed = true;
|
|
50
|
+
matched = true;
|
|
51
|
+
change[unit.UnitID ?? "-"] = `AlarmAtDispatch: ${alarmLevel}`;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
this.matched = matched;
|
|
56
|
+
this.changed = changed;
|
|
57
|
+
|
|
58
|
+
this.changes.push({
|
|
59
|
+
name: this.name,
|
|
60
|
+
matched: this.matched,
|
|
61
|
+
changed: this.changed,
|
|
62
|
+
change,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
return item;
|
|
66
|
+
}
|
|
67
|
+
}
|
package/src/test/domain.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { assert } from "chai";
|
|
2
2
|
import "mocha";
|
|
3
3
|
import _ from "lodash";
|
|
4
4
|
|
|
5
|
-
const assert = chai.assert;
|
|
6
|
-
|
|
7
5
|
import domain from "../domain";
|
|
8
6
|
import { CADComment, CADUnit } from "../types";
|
|
9
7
|
import { CADIncident } from "tabletcommand-backend-models";
|
|
@@ -63,10 +61,12 @@ it("domain.mergePersonnel resolves to correct unit personnel counts", function()
|
|
|
63
61
|
{
|
|
64
62
|
radioName: "Z1",
|
|
65
63
|
active: true,
|
|
64
|
+
source: ""
|
|
66
65
|
},
|
|
67
66
|
{
|
|
68
67
|
radioName: "BBBB123",
|
|
69
|
-
active: false
|
|
68
|
+
active: false,
|
|
69
|
+
source: ""
|
|
70
70
|
}
|
|
71
71
|
],
|
|
72
72
|
shiftStartTime: 1559446299,
|
|
@@ -80,6 +80,7 @@ it("domain.mergePersonnel resolves to correct unit personnel counts", function()
|
|
|
80
80
|
{
|
|
81
81
|
radioName: "Z1",
|
|
82
82
|
active: true,
|
|
83
|
+
source: ""
|
|
83
84
|
}
|
|
84
85
|
],
|
|
85
86
|
shiftStartTime: 1559446299,
|
|
@@ -94,10 +95,12 @@ it("domain.mergePersonnel resolves to correct unit personnel counts", function()
|
|
|
94
95
|
{
|
|
95
96
|
radioName: "Z0",
|
|
96
97
|
active: true,
|
|
98
|
+
source: ""
|
|
97
99
|
},
|
|
98
100
|
{
|
|
99
101
|
radioName: "Z1",
|
|
100
102
|
active: true,
|
|
103
|
+
source: ""
|
|
101
104
|
}
|
|
102
105
|
],
|
|
103
106
|
shiftStartTime: 1559446299,
|
|
@@ -160,6 +163,7 @@ describe("mergeIncidents", function() {
|
|
|
160
163
|
{
|
|
161
164
|
"name": "z5",
|
|
162
165
|
"channel": "z5",
|
|
166
|
+
"channelDescription": "d-z5",
|
|
163
167
|
"url": "u-z5",
|
|
164
168
|
}
|
|
165
169
|
]
|
|
@@ -171,6 +175,7 @@ describe("mergeIncidents", function() {
|
|
|
171
175
|
{
|
|
172
176
|
"name": "e1",
|
|
173
177
|
"channel": "e1",
|
|
178
|
+
"channelDescription": "d-e1",
|
|
174
179
|
"url": "u-e1",
|
|
175
180
|
}
|
|
176
181
|
]
|