tabletcommand-backend-models 7.0.13 → 7.0.15
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/build/constants.js +43 -1
- package/build/constants.js.map +1 -1
- package/build/index.js +2 -1
- package/build/index.js.map +1 -1
- package/build/models/cad-incident-stream.js +2 -2
- package/build/models/cad-incident-stream.js.map +1 -1
- package/build/models/chart-device-stats.js +2 -2
- package/build/models/chart-device-stats.js.map +1 -1
- package/build/models/chart-incident.js +2 -2
- package/build/models/chart-incident.js.map +1 -1
- package/build/models/chart-managed-incident.js +2 -2
- package/build/models/chart-managed-incident.js.map +1 -1
- package/build/models/chart-user.js +2 -2
- package/build/models/chart-user.js.map +1 -1
- package/build/models/department.js +7 -2
- package/build/models/department.js.map +1 -1
- package/build/models/device-mapping.js +4 -0
- package/build/models/device-mapping.js.map +1 -1
- package/build/models/incident-event.js +2 -2
- package/build/models/incident-event.js.map +1 -1
- package/build/models/job-log.js +2 -2
- package/build/models/job-log.js.map +1 -1
- package/build/models/location.js +37 -2
- package/build/models/location.js.map +1 -1
- package/build/models/managed-incident.js +2 -2
- package/build/models/managed-incident.js.map +1 -1
- package/build/models/monitor.js +2 -2
- package/build/models/monitor.js.map +1 -1
- package/build/models/schema/cad-incident.js +2 -3
- package/build/models/schema/cad-incident.js.map +1 -1
- package/build/models/smtp-unhandled.js +2 -2
- package/build/models/smtp-unhandled.js.map +1 -1
- package/build/test/0index.js +72 -0
- package/build/test/0index.js.map +1 -0
- package/build/test/action-log.js +40 -0
- package/build/test/action-log.js.map +1 -0
- package/build/test/agency.js +41 -0
- package/build/test/agency.js.map +1 -0
- package/build/test/arcgis-group.js +48 -85
- package/build/test/arcgis-group.js.map +1 -1
- package/build/test/assignment.js +39 -0
- package/build/test/assignment.js.map +1 -0
- package/build/test/battalion.js +45 -0
- package/build/test/battalion.js.map +1 -0
- package/build/test/cad-incident-block.js +43 -0
- package/build/test/cad-incident-block.js.map +1 -0
- package/build/test/cad-incident.js +159 -0
- package/build/test/cad-incident.js.map +1 -0
- package/build/test/cad-simulation.js +32 -0
- package/build/test/cad-simulation.js.map +1 -0
- package/build/test/cad-status-map.js +41 -0
- package/build/test/cad-status-map.js.map +1 -0
- package/build/test/cad-status.js +57 -0
- package/build/test/cad-status.js.map +1 -0
- package/build/test/cad-vehicle-status-history.js +36 -0
- package/build/test/cad-vehicle-status-history.js.map +1 -0
- package/build/test/cad-vehicle-status.js +42 -0
- package/build/test/cad-vehicle-status.js.map +1 -0
- package/build/test/cad-vehicle.js +38 -0
- package/build/test/cad-vehicle.js.map +1 -0
- package/build/test/checklist-item.js +42 -0
- package/build/test/checklist-item.js.map +1 -0
- package/build/test/checklist.js +43 -0
- package/build/test/checklist.js.map +1 -0
- package/build/test/config.js +2 -1
- package/build/test/config.js.map +1 -1
- package/build/test/csv-import.js +44 -0
- package/build/test/csv-import.js.map +1 -0
- package/build/test/department.js +99 -0
- package/build/test/department.js.map +1 -0
- package/build/test/device-mapping.js +51 -0
- package/build/test/device-mapping.js.map +1 -0
- package/build/test/esri.js +67 -0
- package/build/test/esri.js.map +1 -0
- package/build/test/gst-mapping.js +37 -0
- package/build/test/gst-mapping.js.map +1 -0
- package/build/test/helpers.js +14 -0
- package/build/test/helpers.js.map +1 -0
- package/build/test/incident-event.js +52 -0
- package/build/test/incident-event.js.map +1 -0
- package/build/test/incident-notified.js +42 -0
- package/build/test/incident-notified.js.map +1 -0
- package/build/test/incident-takeover.js +38 -0
- package/build/test/incident-takeover.js.map +1 -0
- package/build/test/job-log.js +36 -0
- package/build/test/job-log.js.map +1 -0
- package/build/test/location.js +87 -0
- package/build/test/location.js.map +1 -0
- package/build/test/mail-log.js +52 -0
- package/build/test/mail-log.js.map +1 -0
- package/build/test/managed-incident.js +107 -0
- package/build/test/managed-incident.js.map +1 -0
- package/build/test/mark43-incident-retry.js +33 -0
- package/build/test/mark43-incident-retry.js.map +1 -0
- package/build/test/message.js +38 -0
- package/build/test/message.js.map +1 -0
- package/build/test/mock.js +1289 -910
- package/build/test/mock.js.map +1 -1
- package/build/test/monitor.js +34 -0
- package/build/test/monitor.js.map +1 -0
- package/build/test/personnel-import.js +55 -0
- package/build/test/personnel-import.js.map +1 -0
- package/build/test/rate-limit.js +32 -0
- package/build/test/rate-limit.js.map +1 -0
- package/build/test/release-note.js +34 -0
- package/build/test/release-note.js.map +1 -0
- package/build/test/session.js +42 -0
- package/build/test/session.js.map +1 -0
- package/build/test/template.js +43 -0
- package/build/test/template.js.map +1 -0
- package/build/test/user-device.js +69 -0
- package/build/test/user-device.js.map +1 -0
- package/build/test/user-registration.js +44 -0
- package/build/test/user-registration.js.map +1 -0
- package/build/test/user.js +51 -0
- package/build/test/user.js.map +1 -0
- package/build/test/validation-report.js +33 -0
- package/build/test/validation-report.js.map +1 -0
- package/cspell.json +11 -8
- package/definitions/constants.d.ts +12 -0
- package/definitions/constants.d.ts.map +1 -1
- package/definitions/index.d.ts +2 -2
- package/definitions/index.d.ts.map +1 -1
- package/definitions/models/department.d.ts.map +1 -1
- package/definitions/models/device-mapping.d.ts.map +1 -1
- package/definitions/models/location.d.ts +2 -0
- package/definitions/models/location.d.ts.map +1 -1
- package/definitions/models/schema/cad-incident.d.ts.map +1 -1
- package/definitions/test/0index.d.ts +2 -0
- package/definitions/test/0index.d.ts.map +1 -0
- package/definitions/test/action-log.d.ts +2 -0
- package/definitions/test/action-log.d.ts.map +1 -0
- package/definitions/test/agency.d.ts +2 -0
- package/definitions/test/agency.d.ts.map +1 -0
- package/definitions/test/arcgis-group.d.ts.map +1 -1
- package/definitions/test/assignment.d.ts +2 -0
- package/definitions/test/assignment.d.ts.map +1 -0
- package/definitions/test/battalion.d.ts +2 -0
- package/definitions/test/battalion.d.ts.map +1 -0
- package/definitions/test/cad-incident-block.d.ts +2 -0
- package/definitions/test/cad-incident-block.d.ts.map +1 -0
- package/definitions/test/cad-incident.d.ts +2 -0
- package/definitions/test/cad-incident.d.ts.map +1 -0
- package/definitions/test/cad-simulation.d.ts +2 -0
- package/definitions/test/cad-simulation.d.ts.map +1 -0
- package/definitions/test/cad-status-map.d.ts +2 -0
- package/definitions/test/cad-status-map.d.ts.map +1 -0
- package/definitions/test/cad-status.d.ts +2 -0
- package/definitions/test/cad-status.d.ts.map +1 -0
- package/definitions/test/cad-vehicle-status-history.d.ts +2 -0
- package/definitions/test/cad-vehicle-status-history.d.ts.map +1 -0
- package/definitions/test/cad-vehicle-status.d.ts +2 -0
- package/definitions/test/cad-vehicle-status.d.ts.map +1 -0
- package/definitions/test/cad-vehicle.d.ts +2 -0
- package/definitions/test/cad-vehicle.d.ts.map +1 -0
- package/definitions/test/checklist-item.d.ts +2 -0
- package/definitions/test/checklist-item.d.ts.map +1 -0
- package/definitions/test/checklist.d.ts +2 -0
- package/definitions/test/checklist.d.ts.map +1 -0
- package/definitions/test/config.d.ts.map +1 -1
- package/definitions/test/csv-import.d.ts +2 -0
- package/definitions/test/csv-import.d.ts.map +1 -0
- package/definitions/test/department.d.ts +2 -0
- package/definitions/test/department.d.ts.map +1 -0
- package/definitions/test/device-mapping.d.ts +2 -0
- package/definitions/test/device-mapping.d.ts.map +1 -0
- package/definitions/test/esri.d.ts +2 -0
- package/definitions/test/esri.d.ts.map +1 -0
- package/definitions/test/gst-mapping.d.ts +2 -0
- package/definitions/test/gst-mapping.d.ts.map +1 -0
- package/definitions/test/helpers.d.ts +2 -0
- package/definitions/test/helpers.d.ts.map +1 -0
- package/definitions/test/incident-event.d.ts +2 -0
- package/definitions/test/incident-event.d.ts.map +1 -0
- package/definitions/test/incident-notified.d.ts +2 -0
- package/definitions/test/incident-notified.d.ts.map +1 -0
- package/definitions/test/incident-takeover.d.ts +2 -0
- package/definitions/test/incident-takeover.d.ts.map +1 -0
- package/definitions/test/job-log.d.ts +2 -0
- package/definitions/test/job-log.d.ts.map +1 -0
- package/definitions/test/location.d.ts +2 -0
- package/definitions/test/location.d.ts.map +1 -0
- package/definitions/test/mail-log.d.ts +2 -0
- package/definitions/test/mail-log.d.ts.map +1 -0
- package/definitions/test/managed-incident.d.ts +2 -0
- package/definitions/test/managed-incident.d.ts.map +1 -0
- package/definitions/test/mark43-incident-retry.d.ts +2 -0
- package/definitions/test/mark43-incident-retry.d.ts.map +1 -0
- package/definitions/test/message.d.ts +2 -0
- package/definitions/test/message.d.ts.map +1 -0
- package/definitions/test/mock.d.ts +1057 -3
- package/definitions/test/mock.d.ts.map +1 -1
- package/definitions/test/monitor.d.ts +2 -0
- package/definitions/test/monitor.d.ts.map +1 -0
- package/definitions/test/personnel-import.d.ts +2 -0
- package/definitions/test/personnel-import.d.ts.map +1 -0
- package/definitions/test/rate-limit.d.ts +2 -0
- package/definitions/test/rate-limit.d.ts.map +1 -0
- package/definitions/test/release-note.d.ts +2 -0
- package/definitions/test/release-note.d.ts.map +1 -0
- package/definitions/test/session.d.ts +2 -0
- package/definitions/test/session.d.ts.map +1 -0
- package/definitions/test/template.d.ts +2 -0
- package/definitions/test/template.d.ts.map +1 -0
- package/definitions/test/user-device.d.ts +2 -0
- package/definitions/test/user-device.d.ts.map +1 -0
- package/definitions/test/user-registration.d.ts +2 -0
- package/definitions/test/user-registration.d.ts.map +1 -0
- package/definitions/test/user.d.ts +2 -0
- package/definitions/test/user.d.ts.map +1 -0
- package/definitions/test/validation-report.d.ts +2 -0
- package/definitions/test/validation-report.d.ts.map +1 -0
- package/definitions/types/cad.d.ts +2 -2
- package/definitions/types/cad.d.ts.map +1 -1
- package/definitions/types/department.d.ts +1 -0
- package/definitions/types/department.d.ts.map +1 -1
- package/definitions/types/location.d.ts +24 -23
- package/definitions/types/location.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/constants.ts +43 -0
- package/src/index.ts +2 -0
- package/src/models/cad-incident-stream.ts +1 -1
- package/src/models/chart-device-stats.ts +1 -1
- package/src/models/chart-incident.ts +1 -1
- package/src/models/chart-managed-incident.ts +1 -1
- package/src/models/chart-user.ts +1 -1
- package/src/models/department.ts +7 -1
- package/src/models/device-mapping.ts +4 -0
- package/src/models/incident-event.ts +1 -1
- package/src/models/job-log.ts +1 -1
- package/src/models/location.ts +41 -2
- package/src/models/managed-incident.ts +1 -1
- package/src/models/monitor.ts +1 -1
- package/src/models/schema/cad-incident.ts +1 -3
- package/src/models/smtp-unhandled.ts +1 -1
- package/src/mongoose-lean-virtuals.d.ts +4 -2
- package/src/test/0index.ts +71 -0
- package/src/test/action-log.ts +41 -0
- package/src/test/agency.ts +41 -0
- package/src/test/arcgis-group.ts +25 -63
- package/src/test/assignment.ts +41 -0
- package/src/test/battalion.ts +45 -0
- package/src/test/cad-incident-block.ts +44 -0
- package/src/test/cad-incident.ts +168 -0
- package/src/test/cad-simulation.ts +33 -0
- package/src/test/cad-status-map.ts +41 -0
- package/src/test/cad-status.ts +57 -0
- package/src/test/cad-vehicle-status-history.ts +37 -0
- package/src/test/cad-vehicle-status.ts +43 -0
- package/src/test/cad-vehicle.ts +38 -0
- package/src/test/checklist-item.ts +43 -0
- package/src/test/checklist.ts +44 -0
- package/src/test/config.ts +3 -3
- package/src/test/csv-import.ts +44 -0
- package/src/test/department.ts +95 -0
- package/src/test/device-mapping.ts +53 -0
- package/src/test/esri.ts +69 -0
- package/src/test/gst-mapping.ts +38 -0
- package/src/test/helpers.ts +15 -0
- package/src/test/incident-event.ts +53 -0
- package/src/test/incident-notified.ts +41 -0
- package/src/test/incident-takeover.ts +39 -0
- package/src/test/job-log.ts +37 -0
- package/src/test/location.ts +93 -0
- package/src/test/mail-log.ts +51 -0
- package/src/test/managed-incident.ts +116 -0
- package/src/test/mark43-incident-retry.ts +34 -0
- package/src/test/message.ts +39 -0
- package/src/test/mock.ts +599 -163
- package/src/test/monitor.ts +35 -0
- package/src/test/personnel-import.ts +55 -0
- package/src/test/rate-limit.ts +33 -0
- package/src/test/release-note.ts +36 -0
- package/src/test/session.ts +43 -0
- package/src/test/template.ts +44 -0
- package/src/test/user-device.ts +66 -0
- package/src/test/user-registration.ts +45 -0
- package/src/test/user.ts +51 -0
- package/src/test/validation-report.ts +33 -0
- package/src/tsconfig.json +6 -3
- package/src/types/cad.ts +2 -2
- package/src/types/department.ts +1 -0
- package/src/types/location.ts +22 -24
- package/tslint.json +0 -28
- /package/{test → test-legacy}/0index.js +0 -0
- /package/{test → test-legacy}/action-log.js +0 -0
- /package/{test → test-legacy}/agency.js +0 -0
- /package/{test → test-legacy}/arcgis-group.js +0 -0
- /package/{test → test-legacy}/assignment.js +0 -0
- /package/{test → test-legacy}/battalion.js +0 -0
- /package/{test → test-legacy}/cad-incident-block.js +0 -0
- /package/{test → test-legacy}/cad-incident.js +0 -0
- /package/{test → test-legacy}/cad-simulation.js +0 -0
- /package/{test → test-legacy}/cad-status-map.js +0 -0
- /package/{test → test-legacy}/cad-status.js +0 -0
- /package/{test → test-legacy}/cad-vehicle-status-history.js +0 -0
- /package/{test → test-legacy}/cad-vehicle-status.js +0 -0
- /package/{test → test-legacy}/cad-vehicle.js +0 -0
- /package/{test → test-legacy}/checklist-item.js +0 -0
- /package/{test → test-legacy}/checklist.js +0 -0
- /package/{test → test-legacy}/config.js +0 -0
- /package/{test → test-legacy}/csv-import.js +0 -0
- /package/{test → test-legacy}/department.js +0 -0
- /package/{test → test-legacy}/device-mapping.js +0 -0
- /package/{test → test-legacy}/esri.js +0 -0
- /package/{test → test-legacy}/gst-mapping.js +0 -0
- /package/{test → test-legacy}/helpers.js +0 -0
- /package/{test → test-legacy}/incident-event.js +0 -0
- /package/{test → test-legacy}/incident-notified.js +0 -0
- /package/{test → test-legacy}/incident-takeover.js +0 -0
- /package/{test → test-legacy}/job-log.js +0 -0
- /package/{test → test-legacy}/location.js +0 -0
- /package/{test → test-legacy}/mail-log.js +0 -0
- /package/{test → test-legacy}/managed-incident.js +0 -0
- /package/{test → test-legacy}/mark43-incident-retry.js +0 -0
- /package/{test → test-legacy}/message.js +0 -0
- /package/{test → test-legacy}/mock.js +0 -0
- /package/{test → test-legacy}/monitor.js +0 -0
- /package/{test → test-legacy}/personnel-import.js +0 -0
- /package/{test → test-legacy}/rate-limit.js +0 -0
- /package/{test → test-legacy}/release-note.js +0 -0
- /package/{test → test-legacy}/session.js +0 -0
- /package/{test → test-legacy}/template.js +0 -0
- /package/{test → test-legacy}/user-device.js +0 -0
- /package/{test → test-legacy}/user-registration.js +0 -0
- /package/{test → test-legacy}/user.js +0 -0
- /package/{test → test-legacy}/validation-report.js +0 -0
package/src/test/mock.ts
CHANGED
@@ -1,79 +1,45 @@
|
|
1
|
+
import { Mongoose } from "mongoose";
|
2
|
+
import * as uuid from "uuid";
|
3
|
+
import * as _ from "lodash";
|
4
|
+
import { retrieveCurrentUnixTime } from "../helpers";
|
1
5
|
|
2
|
-
|
3
|
-
// import { Types } from "mongoose";
|
6
|
+
export default function mockModule(dependencies: { mongoose: Mongoose; }) {
|
4
7
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
) {
|
13
|
-
|
14
|
-
async function cleanup() {
|
15
|
-
return "";
|
8
|
+
function shouldRun() {
|
9
|
+
const mongoUrl = process.env.NODE_MONGO_URL || "";
|
10
|
+
if (!/massive-test/i.exec(mongoUrl)) {
|
11
|
+
console.log(`Not a test database: ${mongoUrl}? Expecting database: massive-test.`);
|
12
|
+
return false;
|
13
|
+
}
|
14
|
+
return true;
|
16
15
|
}
|
17
16
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
{
|
22
|
-
department: "Demo RTS Fire Department",
|
23
|
-
departmentId: "558365a198b2fa4278000053",
|
24
|
-
authUsername: "tabletcmd",
|
25
|
-
authError: null,
|
26
|
-
users: [
|
27
|
-
//
|
28
|
-
{
|
29
|
-
username: "tc_someone",
|
30
|
-
email: "hello@tc.com",
|
31
|
-
userId: "558365a198a2aa42780000aa",
|
32
|
-
}
|
33
|
-
]
|
34
|
-
}
|
35
|
-
],
|
36
|
-
externalOrgIds: [
|
37
|
-
"MyTOuXKXZoizaaa"
|
38
|
-
],
|
39
|
-
groupId: "c5d013e197244577a583c49984d319d9",
|
40
|
-
outsiders: [
|
41
|
-
{
|
42
|
-
fullName: "Michael Kallum",
|
43
|
-
memberType: "member",
|
44
|
-
orgId: "MyTOuXKXZoizaaa",
|
45
|
-
username: "Michael_Kallum"
|
46
|
-
}
|
47
|
-
],
|
48
|
-
owner: "jane_tabletcommand",
|
49
|
-
protected: true,
|
50
|
-
title: "TC - City of Fire Department",
|
51
|
-
users: [
|
52
|
-
{
|
53
|
-
fullName: "Jane Serrano",
|
54
|
-
memberType: "admin",
|
55
|
-
orgId: "zGXMcUaDlMGoAAAg",
|
56
|
-
username: "jane_tabletcommand"
|
57
|
-
},
|
58
|
-
]
|
59
|
-
};
|
60
|
-
|
61
|
-
return {
|
62
|
-
cleanup,
|
63
|
-
|
64
|
-
arcGISGroup,
|
65
|
-
};
|
66
|
-
}
|
67
|
-
|
68
|
-
/*
|
69
|
-
module.exports = function(dependencies) {
|
70
|
-
"use strict";
|
17
|
+
if (!shouldRun()) {
|
18
|
+
process.exit(1);
|
19
|
+
}
|
71
20
|
|
72
21
|
const {
|
73
|
-
models,
|
74
22
|
mongoose
|
75
23
|
} = dependencies;
|
76
24
|
|
25
|
+
const mark43IncidentRetry = {
|
26
|
+
departmentId: "123",
|
27
|
+
incidentNumber: "abc123",
|
28
|
+
active: true,
|
29
|
+
mark43IncidentId: 123,
|
30
|
+
attempts: 0,
|
31
|
+
created: new Date(),
|
32
|
+
modified: new Date(),
|
33
|
+
retryPayload: {
|
34
|
+
departmentId: 4321,
|
35
|
+
activityType: "EVENT_CREATED",
|
36
|
+
relatedEvent: {
|
37
|
+
mark43Id: 1234,
|
38
|
+
cadAgencyEventNumber: "1234"
|
39
|
+
}
|
40
|
+
}
|
41
|
+
};
|
42
|
+
|
77
43
|
const actionLog = {
|
78
44
|
departmentId: "d1234",
|
79
45
|
email: "hello@example.com",
|
@@ -94,8 +60,125 @@ module.exports = function(dependencies) {
|
|
94
60
|
}
|
95
61
|
};
|
96
62
|
|
63
|
+
const jobLog = {
|
64
|
+
host: "TestHost-01",
|
65
|
+
jobName: "Test Job 1",
|
66
|
+
state: "ready",
|
67
|
+
bidDate: new Date(),
|
68
|
+
startDate: new Date(),
|
69
|
+
completedDate: new Date(),
|
70
|
+
forceClosed: false
|
71
|
+
};
|
72
|
+
|
73
|
+
const releaseNote = {
|
74
|
+
title: "test note",
|
75
|
+
notes: "long form note...",
|
76
|
+
version: "1.94.0",
|
77
|
+
releaseDate: new Date(),
|
78
|
+
status: "draft"
|
79
|
+
};
|
80
|
+
|
81
|
+
const cadSimulation = {
|
82
|
+
"departmentId": "123",
|
83
|
+
"active": true,
|
84
|
+
"friendlyId": "test-1",
|
85
|
+
"modifiedDate": 1544771122.997,
|
86
|
+
"modified": new Date(),
|
87
|
+
"title": "Structure Fire with Confirming stills and Rescues",
|
88
|
+
"notes": "3 story apartment building ",
|
89
|
+
"simulation": true,
|
90
|
+
"notify": true,
|
91
|
+
"rts": true,
|
92
|
+
"tags":
|
93
|
+
[],
|
94
|
+
"incidentType": "Structure Fire ",
|
95
|
+
"streetName": "123 test Blvd.",
|
96
|
+
"locationComment": "3 Story Apartment building ",
|
97
|
+
"suite": "Apartment Building",
|
98
|
+
"CrossStreet1": "321 Ave",
|
99
|
+
"city": "Test",
|
100
|
+
"state": "Ca",
|
101
|
+
"lat": "55.784387",
|
102
|
+
"lon": "-122.228394",
|
103
|
+
"firemap": "",
|
104
|
+
"mapPages": "",
|
105
|
+
"tacticalChannel": "Test 2 ",
|
106
|
+
"commandChannel": "",
|
107
|
+
"radioChannels":
|
108
|
+
[],
|
109
|
+
"closeDelay": 1800,
|
110
|
+
"priorIncidents": [],
|
111
|
+
"randomPriorIncidents": false,
|
112
|
+
"randomStaffing": false,
|
113
|
+
"sequences":
|
114
|
+
[
|
115
|
+
{
|
116
|
+
"_id": new mongoose.Types.ObjectId(),
|
117
|
+
"title": "test Alarm ",
|
118
|
+
"alarm": "1",
|
119
|
+
"sequenceId": 0,
|
120
|
+
"unitsConfig": {
|
121
|
+
"alarmLevelAtDispatch": "1",
|
122
|
+
"units":
|
123
|
+
[
|
124
|
+
"E13",
|
125
|
+
"E4",
|
126
|
+
"E18",
|
127
|
+
"E16",
|
128
|
+
"T2",
|
129
|
+
"T6",
|
130
|
+
"B4",
|
131
|
+
"B2"
|
132
|
+
]
|
133
|
+
},
|
134
|
+
"comments":
|
135
|
+
[
|
136
|
+
{
|
137
|
+
"comment": "4-2-2 alarm assignment ",
|
138
|
+
"source": "DISP2"
|
139
|
+
}
|
140
|
+
]
|
141
|
+
},
|
142
|
+
{
|
143
|
+
"_id": new mongoose.Types.ObjectId(),
|
144
|
+
"title": "2nd Alarm ",
|
145
|
+
"alarm": "2",
|
146
|
+
"sequenceId": 1,
|
147
|
+
"unitsConfig": {
|
148
|
+
"alarmLevelAtDispatch": "2",
|
149
|
+
"units":
|
150
|
+
[
|
151
|
+
"E17",
|
152
|
+
"E12",
|
153
|
+
"E29",
|
154
|
+
"T1",
|
155
|
+
"B3"
|
156
|
+
],
|
157
|
+
},
|
158
|
+
"comments": [],
|
159
|
+
},
|
160
|
+
{
|
161
|
+
"_id": new mongoose.Types.ObjectId(),
|
162
|
+
"title": "3 Alarm ",
|
163
|
+
"alarm": "3",
|
164
|
+
"sequenceId": 2,
|
165
|
+
"unitsConfig": {
|
166
|
+
"alarmLevelAtDispatch": "3",
|
167
|
+
"units":
|
168
|
+
[
|
169
|
+
"E1",
|
170
|
+
"E2",
|
171
|
+
"E25",
|
172
|
+
"T4"
|
173
|
+
]
|
174
|
+
},
|
175
|
+
"comments": [],
|
176
|
+
}
|
177
|
+
]
|
178
|
+
};
|
179
|
+
|
97
180
|
const agency = {
|
98
|
-
_id: mongoose.Types.ObjectId(),
|
181
|
+
_id: new mongoose.Types.ObjectId(),
|
99
182
|
departmentId: new mongoose.Types.ObjectId("56131f724143487a10000001"),
|
100
183
|
code: "TC",
|
101
184
|
name: "Tablet Command",
|
@@ -121,7 +204,7 @@ module.exports = function(dependencies) {
|
|
121
204
|
department: "Demo RTS Fire Department",
|
122
205
|
departmentId: "558365a198b2fa4278000053",
|
123
206
|
authUsername: "tabletcmd",
|
124
|
-
authError:
|
207
|
+
authError: "",
|
125
208
|
users: [
|
126
209
|
//
|
127
210
|
{
|
@@ -168,6 +251,9 @@ module.exports = function(dependencies) {
|
|
168
251
|
};
|
169
252
|
|
170
253
|
const battalionUnit = {
|
254
|
+
_id: new mongoose.Types.ObjectId("56131f724143487a10009999"),
|
255
|
+
uuid: "",
|
256
|
+
agencyId: new mongoose.Types.ObjectId(),
|
171
257
|
name: "BattalionUnit Test",
|
172
258
|
friendly_id: "B1",
|
173
259
|
local_id: 321,
|
@@ -180,6 +266,9 @@ module.exports = function(dependencies) {
|
|
180
266
|
api_battalion_id: "123",
|
181
267
|
battalion_uuid: "",
|
182
268
|
battalion_name: "",
|
269
|
+
modified_date: "",
|
270
|
+
modified_unix_date: 1,
|
271
|
+
modified: new Date(),
|
183
272
|
};
|
184
273
|
|
185
274
|
const battalion = {
|
@@ -187,17 +276,17 @@ module.exports = function(dependencies) {
|
|
187
276
|
active: true,
|
188
277
|
isMandatory: false,
|
189
278
|
userId: "123",
|
190
|
-
departmentId: 123,
|
279
|
+
departmentId: "123",
|
191
280
|
AgencyId: new mongoose.Types.ObjectId(agency._id),
|
192
281
|
position: 1,
|
193
282
|
units: [battalionUnit]
|
194
283
|
};
|
195
284
|
|
196
|
-
const checklistId =
|
285
|
+
const checklistId = "56131f724143487a10123456";
|
197
286
|
const checklistUUID = "150cf1ca-ffbb-42c9-bd4c-fd64be45d888";
|
198
287
|
|
199
288
|
const checklistItem = {
|
200
|
-
_id: mongoose.Types.ObjectId(),
|
289
|
+
_id: new mongoose.Types.ObjectId(),
|
201
290
|
uuid: "150cf1ca-ffbb-42c9-bd4c-fd64be45d887",
|
202
291
|
checklist_uuid: checklistUUID,
|
203
292
|
position: 1,
|
@@ -209,12 +298,13 @@ module.exports = function(dependencies) {
|
|
209
298
|
departmentId: "4321",
|
210
299
|
local_id: 1,
|
211
300
|
isMandatory: true,
|
212
|
-
|
213
|
-
|
301
|
+
description: "Testing Description",
|
302
|
+
modified_date: "",
|
303
|
+
modified_unix_date: retrieveCurrentUnixTime(),
|
214
304
|
};
|
215
305
|
|
216
306
|
const checklist = {
|
217
|
-
_id: checklistId,
|
307
|
+
_id: new mongoose.Types.ObjectId(checklistId),
|
218
308
|
uuid: checklistUUID,
|
219
309
|
position: 1,
|
220
310
|
active: true,
|
@@ -224,7 +314,9 @@ module.exports = function(dependencies) {
|
|
224
314
|
local_id: 1,
|
225
315
|
isMandatory: true,
|
226
316
|
agencyId: new mongoose.Types.ObjectId(agency._id),
|
227
|
-
items: [checklistItem]
|
317
|
+
items: [checklistItem],
|
318
|
+
modified_date: "",
|
319
|
+
modified_unix_date: retrieveCurrentUnixTime(),
|
228
320
|
};
|
229
321
|
|
230
322
|
const mailLog = {
|
@@ -245,28 +337,28 @@ module.exports = function(dependencies) {
|
|
245
337
|
|
246
338
|
const message = {
|
247
339
|
departmentId: "d1234",
|
248
|
-
"active"
|
249
|
-
"title"
|
250
|
-
"body"
|
251
|
-
"actionTitle"
|
252
|
-
"color" :
|
253
|
-
"url"
|
254
|
-
"priority"
|
255
|
-
"type"
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
340
|
+
"active": false,
|
341
|
+
"title": "Upgrade App",
|
342
|
+
"body": "Application out of date.",
|
343
|
+
"actionTitle": "Upgrade App",
|
344
|
+
"color": { background: "", text: "" },
|
345
|
+
"url": "",
|
346
|
+
"priority": 4,
|
347
|
+
"type": {
|
348
|
+
"type": "upgradeApp",
|
349
|
+
"typeOpts": {
|
350
|
+
"major": 3,
|
351
|
+
"minor": 0,
|
352
|
+
"patch": 1
|
353
|
+
}
|
262
354
|
},
|
263
|
-
"created"
|
264
|
-
"uuid"
|
265
|
-
"requestId"
|
355
|
+
"created": new Date(),
|
356
|
+
"uuid": "138acffd-a94f-402d-87b3-ff6ed31a19dc",
|
357
|
+
"requestId": "138acffd-a94f-402d-87b3-ff6ed31a19db",
|
266
358
|
};
|
267
359
|
|
268
360
|
const cadIncident = {
|
269
|
-
_id: mongoose.Types.ObjectId(),
|
361
|
+
_id: new mongoose.Types.ObjectId(),
|
270
362
|
uuid: "150cf1ca-ffbb-42c9-bd4c-fd64be45d679",
|
271
363
|
departmentId: "56131f724143487a10000001",
|
272
364
|
AgencyID: "BDC",
|
@@ -305,27 +397,58 @@ module.exports = function(dependencies) {
|
|
305
397
|
{
|
306
398
|
Comment: "[1] Call Appended to Incident number 19-042593",
|
307
399
|
CommentSource: "G8724",
|
308
|
-
CommentDateTime: "2019-03-01T01:59:57-08:00"
|
400
|
+
CommentDateTime: "2019-03-01T01:59:57-08:00",
|
401
|
+
CommentConfidential: false,
|
402
|
+
CommentOpts: { type: "", item: "" },
|
309
403
|
}
|
310
404
|
]
|
311
405
|
}
|
312
406
|
],
|
313
|
-
Latitude:
|
314
|
-
Longitude:
|
407
|
+
Latitude: 34.788611,
|
408
|
+
Longitude: -114.549444,
|
315
409
|
Comment: [
|
316
410
|
//
|
317
411
|
{
|
318
412
|
Comment: "(1) VALLEY VIEW ICU TO SUNRISE ICU",
|
319
413
|
CommentSource: "H6577",
|
320
|
-
CommentDateTime: "2019-03-21T13:21:08-07:00"
|
414
|
+
CommentDateTime: "2019-03-21T13:21:08-07:00",
|
415
|
+
CommentConfidential: false,
|
416
|
+
CommentOpts: { type: "", item: "" },
|
321
417
|
}
|
322
418
|
],
|
323
419
|
units: [
|
324
420
|
//
|
325
421
|
{
|
326
|
-
UnitDispatchNumber: 4067677,
|
422
|
+
UnitDispatchNumber: "4067677",
|
327
423
|
UnitID: "MA31",
|
328
|
-
TimeDispatched: "2019-03-21T13:21:22-07:00"
|
424
|
+
TimeDispatched: "2019-03-21T13:21:22-07:00",
|
425
|
+
Personnel: [
|
426
|
+
{
|
427
|
+
"PersonnelID": "X14",
|
428
|
+
"PersonnelName": "Mary Smith",
|
429
|
+
"PersonnelNote": "X",
|
430
|
+
"PersonnelRank": "Captain",
|
431
|
+
"PersonnelWorkCode": "TRD",
|
432
|
+
},
|
433
|
+
{
|
434
|
+
"PersonnelID": "Y21",
|
435
|
+
"PersonnelName": "Nicholas Santos",
|
436
|
+
"PersonnelNote": "Y",
|
437
|
+
"PersonnelRank": "PM",
|
438
|
+
"PersonnelWorkCode": "REG",
|
439
|
+
}
|
440
|
+
],
|
441
|
+
"AlarmAtDispatch": "",
|
442
|
+
"TimeEnroute": "",
|
443
|
+
"TimeArrived": "",
|
444
|
+
"TimeStaged": "",
|
445
|
+
"TimeCleared": "",
|
446
|
+
"TimeAtHospital": "",
|
447
|
+
"TimePatient": "",
|
448
|
+
"TimeTransport": "",
|
449
|
+
"TimeTransporting": "",
|
450
|
+
"PersonnelCount": 2,
|
451
|
+
"uuid": "",
|
329
452
|
}
|
330
453
|
],
|
331
454
|
preference_location: "address",
|
@@ -333,11 +456,85 @@ module.exports = function(dependencies) {
|
|
333
456
|
ClosedDateTime: "",
|
334
457
|
closed_unix_date: 0,
|
335
458
|
start_unix_date: 1553199671,
|
336
|
-
modified_unix_date: 1553201071.636
|
459
|
+
modified_unix_date: 1553201071.636,
|
460
|
+
|
461
|
+
// Share incident properties
|
462
|
+
ReportNumber: [
|
463
|
+
//
|
464
|
+
{
|
465
|
+
"name": "A",
|
466
|
+
"number": "07-0351"
|
467
|
+
},
|
468
|
+
{
|
469
|
+
"name": "B",
|
470
|
+
"number": "UM-02210"
|
471
|
+
}
|
472
|
+
],
|
473
|
+
radioChannels: [
|
474
|
+
//
|
475
|
+
{
|
476
|
+
"name": "CMD",
|
477
|
+
"channel": "LOCAL Tone: 3",
|
478
|
+
"url": "http://example.com/stream1",
|
479
|
+
"channelDescription": ""
|
480
|
+
},
|
481
|
+
{
|
482
|
+
"name": "TAC",
|
483
|
+
"channel": "CDF TAC 10",
|
484
|
+
"url": "http://example.com/stream2",
|
485
|
+
"channelDescription": ""
|
486
|
+
}
|
487
|
+
],
|
488
|
+
record: {
|
489
|
+
"name": "John",
|
490
|
+
"value": "Smith",
|
491
|
+
},
|
492
|
+
sharedSource: {
|
493
|
+
isExternal: true,
|
494
|
+
name: "Demo RTS Fire Department",
|
495
|
+
reasons: [
|
496
|
+
{
|
497
|
+
date: new Date("2024-05-03T00:00:00.000Z"),
|
498
|
+
name: "Unit B10 assigned"
|
499
|
+
}
|
500
|
+
]
|
501
|
+
},
|
502
|
+
sharedTo: [
|
503
|
+
//
|
504
|
+
{
|
505
|
+
active: true,
|
506
|
+
departmentId: "5195426cc4e016a988000965",
|
507
|
+
expireAt: new Date("2024-08-01T10:20:30.400Z"),
|
508
|
+
name: "Test Fire Department",
|
509
|
+
reasons: [
|
510
|
+
{
|
511
|
+
date: new Date("2024-05-03T01:01:01.010Z"),
|
512
|
+
name: "Unit M10 assigned"
|
513
|
+
}
|
514
|
+
],
|
515
|
+
startAt: new Date("2024-05-01T01:02:03.040Z"),
|
516
|
+
}
|
517
|
+
],
|
518
|
+
};
|
519
|
+
|
520
|
+
const cadIncidentBlock = {
|
521
|
+
"EntryDateTime": "2023-09-20T09:14:37-07:00",
|
522
|
+
"ClosedDateTime": "2023-09-20T10:36:36-07:00",
|
523
|
+
"source": "callType",
|
524
|
+
"departmentId": "64948d8f051d17033f77d034",
|
525
|
+
"AgencyIncidentCallTypeDescription": "OTH, MISCELLANEOUS",
|
526
|
+
"IncidentNumber": "A23031",
|
527
|
+
"ReportNumber": [
|
528
|
+
{
|
529
|
+
"name": "Incident",
|
530
|
+
"number": "CA68"
|
531
|
+
}
|
532
|
+
],
|
533
|
+
"createdAt": "2023-09-20T16:14:30.000+0000"
|
337
534
|
};
|
338
535
|
|
339
536
|
const cadStatus = {
|
340
|
-
_id: mongoose.Types.ObjectId(),
|
537
|
+
_id: new mongoose.Types.ObjectId(),
|
341
538
|
code: "AV",
|
342
539
|
codeDisplay: "RS",
|
343
540
|
color: {
|
@@ -360,7 +557,11 @@ module.exports = function(dependencies) {
|
|
360
557
|
position: 20,
|
361
558
|
type: "string",
|
362
559
|
value: "ADM",
|
363
|
-
visible: true
|
560
|
+
visible: true,
|
561
|
+
isDefault: true,
|
562
|
+
latitude: 0,
|
563
|
+
longitude: 0,
|
564
|
+
time: 0,
|
364
565
|
}
|
365
566
|
],
|
366
567
|
name: "oosCode",
|
@@ -383,13 +584,14 @@ module.exports = function(dependencies) {
|
|
383
584
|
//
|
384
585
|
{
|
385
586
|
"statusId": 1,
|
386
|
-
"userEnabled": true
|
587
|
+
"userEnabled": true,
|
588
|
+
"position": 0,
|
387
589
|
}
|
388
590
|
]
|
389
591
|
};
|
390
592
|
|
391
593
|
const cadVehicle = {
|
392
|
-
_id: mongoose.Types.ObjectId(),
|
594
|
+
_id: new mongoose.Types.ObjectId(),
|
393
595
|
uuid: "30f8d7c7-20a3-4a12-b911-a424f5037003",
|
394
596
|
radioName: "T01",
|
395
597
|
vehicleId: "7705",
|
@@ -432,9 +634,15 @@ module.exports = function(dependencies) {
|
|
432
634
|
};
|
433
635
|
|
434
636
|
const department = {
|
435
|
-
_id: mongoose.Types.ObjectId(),
|
637
|
+
_id: new mongoose.Types.ObjectId(),
|
436
638
|
department: "Test Department",
|
437
|
-
|
639
|
+
addressDetails: {
|
640
|
+
city: "San Francisco",
|
641
|
+
address: "",
|
642
|
+
state: "",
|
643
|
+
zipCode: "",
|
644
|
+
country: "",
|
645
|
+
},
|
438
646
|
active: true,
|
439
647
|
apikey: "abcd",
|
440
648
|
partialApiKey: "ab",
|
@@ -443,8 +651,8 @@ module.exports = function(dependencies) {
|
|
443
651
|
rtsChannelPrefix: "CH_TEST",
|
444
652
|
pubNubV3: {
|
445
653
|
token: "CH_AUTH_TOKEN",
|
446
|
-
expireAt: "2021-09-10T23:25:02.196Z",
|
447
|
-
runAt: "2021-09-10T08:25:02.196Z",
|
654
|
+
expireAt: new Date("2021-09-10T23:25:02.196Z"),
|
655
|
+
runAt: new Date("2021-09-10T08:25:02.196Z"),
|
448
656
|
},
|
449
657
|
agencyIds: [
|
450
658
|
new mongoose.Types.ObjectId(agency._id)
|
@@ -452,7 +660,10 @@ module.exports = function(dependencies) {
|
|
452
660
|
signupKey: "A1B2",
|
453
661
|
incidentTypes: [{
|
454
662
|
name: "Type",
|
455
|
-
value: "type"
|
663
|
+
value: "type",
|
664
|
+
allowPartialMatch: true,
|
665
|
+
callTypeDescription: [],
|
666
|
+
callType: [],
|
456
667
|
}],
|
457
668
|
shareLocationPhones: false,
|
458
669
|
shareLocationTablets: true,
|
@@ -461,53 +672,108 @@ module.exports = function(dependencies) {
|
|
461
672
|
shareAVL: {
|
462
673
|
enabled: true,
|
463
674
|
opAreaCode: "DAL",
|
464
|
-
opAreaName: "Delta Operations"
|
675
|
+
opAreaName: "Delta Operations",
|
676
|
+
fadeZoomLevel: 1,
|
465
677
|
},
|
466
678
|
accountType: "production",
|
467
679
|
timeZone: "America/Los_Angeles",
|
468
680
|
firstArrivingEnabled: true,
|
681
|
+
firstArriving: {
|
682
|
+
token: "123",
|
683
|
+
apiUrl: "",
|
684
|
+
},
|
469
685
|
simpleSenseEnabled: true,
|
686
|
+
simpleSense: {
|
687
|
+
token: "123"
|
688
|
+
},
|
470
689
|
licensing: {
|
471
690
|
tcPro2Way: 0,
|
472
691
|
tcPro1Way: 0,
|
473
692
|
tcMobile: 0,
|
474
693
|
tcWeb: 0,
|
475
694
|
fireMapperPro: 0,
|
476
|
-
sendToCAD: 0
|
695
|
+
sendToCAD: 0,
|
696
|
+
tcStreams: 0,
|
477
697
|
},
|
478
698
|
webDisclaimer: {
|
479
699
|
message: "test",
|
480
700
|
enabled: true
|
481
701
|
},
|
482
702
|
notificationEmails: ["test@test.com"],
|
483
|
-
externalNotificationsEnabled: true
|
703
|
+
externalNotificationsEnabled: true,
|
704
|
+
restrictedComments: {
|
705
|
+
enabled: false,
|
706
|
+
callTypesAllowed: [],
|
707
|
+
statusesAllowed: [],
|
708
|
+
restrictedFields: [],
|
709
|
+
restrictedMessage: "Restricted Message"
|
710
|
+
},
|
711
|
+
customButtons: [
|
712
|
+
{
|
713
|
+
name: "Button Custom",
|
714
|
+
url: "",
|
715
|
+
order: 1,
|
716
|
+
allowExternal: false,
|
717
|
+
defaultExternal: false,
|
718
|
+
allowFloating: false,
|
719
|
+
color: {
|
720
|
+
"background": "#512e5f",
|
721
|
+
"text": "#F8F9F9"
|
722
|
+
}
|
723
|
+
}
|
724
|
+
],
|
725
|
+
reportNumberEnabled: true,
|
726
|
+
samsara: {
|
727
|
+
enabled: false,
|
728
|
+
token: "",
|
729
|
+
},
|
730
|
+
reportOdometer: "status",
|
484
731
|
};
|
485
732
|
|
486
733
|
const esriMap = {
|
734
|
+
offline: [],
|
735
|
+
size: 0,
|
736
|
+
modified: 1,
|
737
|
+
modifiedAt: new Date(),
|
487
738
|
mapLayers: [
|
488
739
|
//
|
489
740
|
{
|
490
741
|
"url": "https://services.arcgis.com/aA3snZwJfFkVyDuP/arcgis/rest/services/XBO_Branches_Updated/FeatureServer/0",
|
491
742
|
"itemId": "XBO_Branches_Updated_3067",
|
492
743
|
"layerType": "ArcGISFeatureLayer",
|
493
|
-
"title": "XBO Branches_Updated"
|
744
|
+
"title": "XBO Branches_Updated",
|
745
|
+
"layerId": "",
|
746
|
+
"visibility": true,
|
747
|
+
"opacity": 1,
|
748
|
+
"access": "",
|
749
|
+
"owner": "",
|
494
750
|
},
|
495
751
|
{
|
496
752
|
"itemId": "city_limits_092019_4185",
|
497
753
|
"layerType": "ArcGISFeatureLayer",
|
498
754
|
"title": "City Limits",
|
499
|
-
"url": "https://services.arcgis.com/aA3snZwJfFkVyDuP/arcgis/rest/services/city_limits_092019/FeatureServer/0"
|
755
|
+
"url": "https://services.arcgis.com/aA3snZwJfFkVyDuP/arcgis/rest/services/city_limits_092019/FeatureServer/0",
|
756
|
+
"layerId": "",
|
757
|
+
"visibility": true,
|
758
|
+
"opacity": 1,
|
759
|
+
"access": "",
|
760
|
+
"owner": "",
|
500
761
|
},
|
501
762
|
{
|
502
763
|
"itemId": "unvdpdod57lext9eck9nxipcov2dgjqs_8576",
|
503
764
|
"layerType": "ArcGISFeatureLayer",
|
504
765
|
"title": "Tablet Command",
|
505
|
-
"url": "https://api.tabletcommand.com/esri/tc-file/unvdpdod57lext9eck9nxipcov2dgjqs/FeatureServer/0"
|
766
|
+
"url": "https://api.tabletcommand.com/esri/tc-file/unvdpdod57lext9eck9nxipcov2dgjqs/FeatureServer/0",
|
767
|
+
"layerId": "",
|
768
|
+
"visibility": true,
|
769
|
+
"opacity": 1,
|
770
|
+
"access": "",
|
771
|
+
"owner": "",
|
506
772
|
}
|
507
773
|
],
|
508
774
|
"owner": "john_tabletcommand",
|
509
775
|
"title": "Location (MM Filters)",
|
510
|
-
"url":
|
776
|
+
"url": "",
|
511
777
|
"access": "shared",
|
512
778
|
"baseMap": {
|
513
779
|
"baseMapLayers": [
|
@@ -519,7 +785,12 @@ module.exports = function(dependencies) {
|
|
519
785
|
"layerType": "VectorTileLayer",
|
520
786
|
"title": "World Street Map (Night)",
|
521
787
|
"styleUrl": "https://cdn.arcgis.com/sharing/rest/content/items/86f556a2d1fd468181855a35e344567f/resources/styles/root.json",
|
522
|
-
"visibility": true
|
788
|
+
"visibility": true,
|
789
|
+
"layerId": "",
|
790
|
+
"itemId": "",
|
791
|
+
"url": "",
|
792
|
+
"access": "",
|
793
|
+
"owner": "",
|
523
794
|
}
|
524
795
|
],
|
525
796
|
"title": "Streets (Night)"
|
@@ -534,7 +805,7 @@ module.exports = function(dependencies) {
|
|
534
805
|
};
|
535
806
|
|
536
807
|
const deviceMapping = {
|
537
|
-
_id: mongoose.Types.ObjectId(),
|
808
|
+
_id: new mongoose.Types.ObjectId(),
|
538
809
|
nick: "Test",
|
539
810
|
departmentId: "d123",
|
540
811
|
deviceType: "hello",
|
@@ -547,8 +818,22 @@ module.exports = function(dependencies) {
|
|
547
818
|
mapHidden: false
|
548
819
|
};
|
549
820
|
|
821
|
+
const deviceMappingWithWhiteSpaces = {
|
822
|
+
_id: new mongoose.Types.ObjectId(),
|
823
|
+
nick: "Test Nick",
|
824
|
+
departmentId: "d123",
|
825
|
+
deviceType: "DeviceTypeTest",
|
826
|
+
mapId: " map123 ", // Should be trimmed by Schema
|
827
|
+
deviceId: " deviceType123 ", // Should be trimmed by Schema
|
828
|
+
modified_unix_date: 1432230780,
|
829
|
+
active: false,
|
830
|
+
remoteAddress: " 6.0.6.0 ", // Should be trimmed by Schema
|
831
|
+
note: " i will get trimmed ", // Should be trimmed by Schema
|
832
|
+
mapHidden: false
|
833
|
+
};
|
834
|
+
|
550
835
|
const esri = {
|
551
|
-
_id: mongoose.Types.ObjectId(),
|
836
|
+
_id: new mongoose.Types.ObjectId(),
|
552
837
|
departmentId: new mongoose.Types.ObjectId("56131f724143487a10000001"),
|
553
838
|
modified_unix_date: 1432230780,
|
554
839
|
auth: {
|
@@ -582,7 +867,7 @@ module.exports = function(dependencies) {
|
|
582
867
|
};
|
583
868
|
|
584
869
|
const gstMapping = {
|
585
|
-
_id: mongoose.Types.ObjectId(),
|
870
|
+
_id: new mongoose.Types.ObjectId(),
|
586
871
|
departmentId: "d123",
|
587
872
|
unitId: "E123",
|
588
873
|
modified_unix_date: 1432230780,
|
@@ -592,7 +877,6 @@ module.exports = function(dependencies) {
|
|
592
877
|
mapHidden: false,
|
593
878
|
gstAgency: "LAX",
|
594
879
|
deviceType: "gst",
|
595
|
-
note: ""
|
596
880
|
};
|
597
881
|
|
598
882
|
const incidentEvent = {
|
@@ -616,7 +900,7 @@ module.exports = function(dependencies) {
|
|
616
900
|
};
|
617
901
|
|
618
902
|
const incidentTakeover = {
|
619
|
-
_id: mongoose.Types.ObjectId(),
|
903
|
+
_id: new mongoose.Types.ObjectId(),
|
620
904
|
incident_id: "i1234",
|
621
905
|
incident_name: "Test Incident",
|
622
906
|
incident_number: "TC-12345",
|
@@ -629,7 +913,7 @@ module.exports = function(dependencies) {
|
|
629
913
|
};
|
630
914
|
|
631
915
|
const incidentNotified = {
|
632
|
-
_id: mongoose.Types.ObjectId(),
|
916
|
+
_id: new mongoose.Types.ObjectId(),
|
633
917
|
departmentId: "d123",
|
634
918
|
IncidentNumber: "T-1536603902",
|
635
919
|
incidentTypes: [
|
@@ -638,13 +922,19 @@ module.exports = function(dependencies) {
|
|
638
922
|
units: [
|
639
923
|
"E31"
|
640
924
|
],
|
925
|
+
unitsByDispatch: [
|
926
|
+
{
|
927
|
+
UnitID: "E31",
|
928
|
+
UnitDispatchNumber: "12345"
|
929
|
+
}
|
930
|
+
],
|
641
931
|
sent: [
|
642
932
|
],
|
643
|
-
updated: "2018-09-10T18:25:02.196Z"
|
933
|
+
updated: new Date("2018-09-10T18:25:02.196Z")
|
644
934
|
};
|
645
935
|
|
646
936
|
const location = {
|
647
|
-
_id: mongoose.Types.ObjectId(),
|
937
|
+
_id: new mongoose.Types.ObjectId(),
|
648
938
|
departmentId: "d123",
|
649
939
|
userId: "542a40db20783c000000153d",
|
650
940
|
uuid: "92c8f732-52b7-46cc-855a-d54fddfe3172",
|
@@ -666,16 +956,25 @@ module.exports = function(dependencies) {
|
|
666
956
|
text: "#00AA00",
|
667
957
|
background: "#FFAAFF"
|
668
958
|
},
|
669
|
-
modified: new Date()
|
959
|
+
modified: new Date(),
|
960
|
+
visibility: [
|
961
|
+
"hidden",
|
962
|
+
"visible",
|
963
|
+
"cad",
|
964
|
+
"shared",
|
965
|
+
// Does not exist
|
966
|
+
"none",
|
967
|
+
"",
|
968
|
+
]
|
670
969
|
};
|
671
970
|
|
672
971
|
const managedIncident = {
|
673
|
-
_id: mongoose.Types.ObjectId(),
|
972
|
+
_id: new mongoose.Types.ObjectId(),
|
674
973
|
CallerNumber: "(720) 275-6765",
|
675
974
|
CommandChannel: "ACPRI",
|
676
975
|
TacticalAltChannel: "ACOPSB",
|
677
976
|
TacticalChannel: "ACOPSA",
|
678
|
-
active:
|
977
|
+
active: true,
|
679
978
|
address: "Interstate 76 Eb / Federal To I 76 Eb, UNINCORPORATED ADAMS COUNTY CO",
|
680
979
|
api_incident_number: "ACFR040719-0002506",
|
681
980
|
channel: "ADAMSCOUNTYFIRERESCUEN1C-MANAGED-ACFR040719-0002506",
|
@@ -693,15 +992,16 @@ module.exports = function(dependencies) {
|
|
693
992
|
history: [
|
694
993
|
//
|
695
994
|
{
|
696
|
-
entity_id: 9207,
|
995
|
+
entity_id: "9207",
|
697
996
|
entity_type: 14,
|
698
997
|
message: "(43) 2a72 start medical (Shared)",
|
699
|
-
time: 1554681941
|
998
|
+
time: 1554681941,
|
999
|
+
user: "",
|
700
1000
|
}
|
701
1001
|
],
|
702
|
-
is_closed:
|
1002
|
+
is_closed: true,
|
703
1003
|
location: "39.802526,-105.019773",
|
704
|
-
managed:
|
1004
|
+
managed: 1,
|
705
1005
|
modified_date: "2019-04-08T00:16:30.473", // Same as the modified_unix_date
|
706
1006
|
modified_unix_date: 1554682590.47396,
|
707
1007
|
name: "INJURED PARTY",
|
@@ -714,20 +1014,52 @@ module.exports = function(dependencies) {
|
|
714
1014
|
//
|
715
1015
|
{
|
716
1016
|
UnitID: "M12",
|
717
|
-
|
1017
|
+
assignment: {
|
1018
|
+
name: "",
|
1019
|
+
uuid: "",
|
1020
|
+
modified_date: new Date().toISOString(),
|
1021
|
+
modified_unix_date: 1,
|
1022
|
+
built_in: true,
|
1023
|
+
isMandatory: false,
|
1024
|
+
description: "",
|
1025
|
+
active: true,
|
1026
|
+
position: 1,
|
1027
|
+
},
|
1028
|
+
AlarmAtDispatch: 0,
|
1029
|
+
uuid: "",
|
1030
|
+
parent_uuid: "",
|
1031
|
+
local_id: "",
|
1032
|
+
active: true,
|
718
1033
|
air_time: "",
|
719
1034
|
api_unit_dispatch_number: "5163322",
|
720
|
-
checked:
|
1035
|
+
checked: false,
|
721
1036
|
column_position: 0,
|
722
1037
|
group_position: 0,
|
723
1038
|
incident_position: 0,
|
724
1039
|
isSupervisor: false,
|
725
1040
|
is_part_of_group: false,
|
1041
|
+
location_on_image: "",
|
726
1042
|
location_on_map: "",
|
727
1043
|
modified_date: "2019-04-08T00:16:30+0000",
|
728
1044
|
modified_unix_date: 1554682590.51667,
|
729
1045
|
note: "",
|
730
1046
|
personnelOnScene: 2,
|
1047
|
+
Personnel: [
|
1048
|
+
{
|
1049
|
+
"PersonnelID": "X14",
|
1050
|
+
"PersonnelName": "Mary Smith",
|
1051
|
+
"PersonnelNote": "X",
|
1052
|
+
"PersonnelRank": "Captain",
|
1053
|
+
"PersonnelWorkCode": "TRD"
|
1054
|
+
},
|
1055
|
+
{
|
1056
|
+
"PersonnelID": "Y21",
|
1057
|
+
"PersonnelName": "Nicholas Santos",
|
1058
|
+
"PersonnelNote": "Y",
|
1059
|
+
"PersonnelRank": "PM",
|
1060
|
+
"PersonnelWorkCode": "REG"
|
1061
|
+
}
|
1062
|
+
],
|
731
1063
|
status: "Arrived",
|
732
1064
|
status_unix_date: 1554682217,
|
733
1065
|
time: "",
|
@@ -735,20 +1067,78 @@ module.exports = function(dependencies) {
|
|
735
1067
|
}
|
736
1068
|
],
|
737
1069
|
userId: "5b3e78cc944e2a18d5222424",
|
738
|
-
uuid: "579E2F47-7F63-4351-B41F-4A345D680B8F"
|
1070
|
+
uuid: "579E2F47-7F63-4351-B41F-4A345D680B8F",
|
1071
|
+
// Share incident properties
|
1072
|
+
ReportNumber: [
|
1073
|
+
//
|
1074
|
+
{
|
1075
|
+
"name": "A",
|
1076
|
+
"number": "07-0351"
|
1077
|
+
},
|
1078
|
+
{
|
1079
|
+
"name": "B",
|
1080
|
+
"number": "UM-02210"
|
1081
|
+
}
|
1082
|
+
],
|
1083
|
+
radioChannels: [
|
1084
|
+
//
|
1085
|
+
{
|
1086
|
+
"name": "CMD",
|
1087
|
+
"channel": "LOCAL Tone: 3",
|
1088
|
+
"url": "http://example.com/stream1",
|
1089
|
+
"channelDescription": "",
|
1090
|
+
},
|
1091
|
+
{
|
1092
|
+
"name": "TAC",
|
1093
|
+
"channel": "CDF TAC 10",
|
1094
|
+
"url": "http://example.com/stream2",
|
1095
|
+
"channelDescription": "",
|
1096
|
+
}
|
1097
|
+
],
|
1098
|
+
record: {
|
1099
|
+
"name": "John",
|
1100
|
+
"value": "Smith",
|
1101
|
+
},
|
1102
|
+
sharedSource: {
|
1103
|
+
isExternal: true,
|
1104
|
+
name: "Demo RTS Fire Department",
|
1105
|
+
reasons: [
|
1106
|
+
{
|
1107
|
+
date: new Date("2024-05-03T00:00:00.000Z"),
|
1108
|
+
name: "Unit B10 assigned"
|
1109
|
+
}
|
1110
|
+
]
|
1111
|
+
},
|
1112
|
+
sharedTo: [
|
1113
|
+
//
|
1114
|
+
{
|
1115
|
+
active: true,
|
1116
|
+
departmentId: "5195426cc4e016a988000965",
|
1117
|
+
expireAt: new Date("2024-08-01T10:20:30.400Z"),
|
1118
|
+
name: "Test Fire Department",
|
1119
|
+
reasons: [
|
1120
|
+
{
|
1121
|
+
date: new Date("2024-05-03T01:01:01.010Z"),
|
1122
|
+
name: "Unit M10 assigned"
|
1123
|
+
}
|
1124
|
+
],
|
1125
|
+
startAt: new Date("2024-05-01T01:02:03.040Z"),
|
1126
|
+
}
|
1127
|
+
],
|
739
1128
|
};
|
740
1129
|
|
741
1130
|
const monitor = {
|
742
|
-
_id: mongoose.Types.ObjectId(),
|
1131
|
+
_id: new mongoose.Types.ObjectId(),
|
743
1132
|
departmentId: "546ace2b3cd8d60d1d00256a",
|
744
1133
|
agencyId: "123",
|
745
|
-
notificationType: "maps-
|
1134
|
+
notificationType: "maps-auth-error",
|
746
1135
|
status: "active",
|
1136
|
+
sentAt: new Date(1000.0 * 1603263604),
|
747
1137
|
sentUnixDate: 1603263604
|
748
1138
|
};
|
749
1139
|
|
750
1140
|
const rateLimit = {
|
751
|
-
_id: mongoose.Types.ObjectId(),
|
1141
|
+
_id: new mongoose.Types.ObjectId(),
|
752
1142
|
username: "test123",
|
753
1143
|
modified_unix_date: 1426983552.49945,
|
754
1144
|
count: 8
|
@@ -783,7 +1173,7 @@ module.exports = function(dependencies) {
|
|
783
1173
|
};
|
784
1174
|
|
785
1175
|
const user = {
|
786
|
-
_id: mongoose.Types.ObjectId(),
|
1176
|
+
_id: new mongoose.Types.ObjectId(),
|
787
1177
|
nick: "Test",
|
788
1178
|
email: "test@save.me",
|
789
1179
|
mapId: "TEST",
|
@@ -804,9 +1194,10 @@ module.exports = function(dependencies) {
|
|
804
1194
|
offDutyEnabled: true,
|
805
1195
|
webMapSettings: {
|
806
1196
|
defaultZoomLevel: 10,
|
807
|
-
defaultCenter: [1,1],
|
1197
|
+
defaultCenter: [1, 1],
|
808
1198
|
defaultMap: "Default"
|
809
|
-
}
|
1199
|
+
},
|
1200
|
+
restrictedCommentsEnabled: true
|
810
1201
|
};
|
811
1202
|
|
812
1203
|
const userRegistration = {
|
@@ -844,7 +1235,9 @@ module.exports = function(dependencies) {
|
|
844
1235
|
criticalAlertsEnabled: true,
|
845
1236
|
session: "1234321",
|
846
1237
|
active: true,
|
847
|
-
offDuty: false
|
1238
|
+
offDuty: false,
|
1239
|
+
t: new Date(),
|
1240
|
+
channelId: "",
|
848
1241
|
}
|
849
1242
|
],
|
850
1243
|
notificationCount: 12,
|
@@ -879,7 +1272,7 @@ module.exports = function(dependencies) {
|
|
879
1272
|
};
|
880
1273
|
|
881
1274
|
const personnelImport = {
|
882
|
-
_id: mongoose.Types.ObjectId(),
|
1275
|
+
_id: new mongoose.Types.ObjectId(),
|
883
1276
|
PersonnelID: "AM0111",
|
884
1277
|
PersonnelName: "Test User",
|
885
1278
|
PersonnelRank: "Eng",
|
@@ -888,11 +1281,11 @@ module.exports = function(dependencies) {
|
|
888
1281
|
departmentId: "123zzz",
|
889
1282
|
radioNames: ["M10", "Z1"],
|
890
1283
|
shiftStartTime: 1559446299,
|
891
|
-
shiftStart: "2019-06-02T03:31:39.000Z",
|
1284
|
+
shiftStart: new Date("2019-06-02T03:31:39.000Z"),
|
892
1285
|
shiftEndTime: 1569446299,
|
893
|
-
shiftEnd: "2019-09-25T21:18:19.000Z",
|
1286
|
+
shiftEnd: new Date("2019-09-25T21:18:19.000Z"),
|
894
1287
|
modified_unix_date: 1570446299,
|
895
|
-
modified: "2019-10-07T11:04:59.000Z",
|
1288
|
+
modified: new Date("2019-10-07T11:04:59.000Z"),
|
896
1289
|
active: true,
|
897
1290
|
agencyCode: "TC",
|
898
1291
|
agencyName: "Tablet Command",
|
@@ -900,38 +1293,77 @@ module.exports = function(dependencies) {
|
|
900
1293
|
};
|
901
1294
|
|
902
1295
|
const csvImport = {
|
903
|
-
_id: mongoose.Types.ObjectId(),
|
1296
|
+
_id: new mongoose.Types.ObjectId(),
|
904
1297
|
batchId: "AM0111",
|
905
1298
|
departmentId: "1234",
|
906
1299
|
agencyId: "abcd1234",
|
907
1300
|
importType: "users",
|
908
1301
|
fileType: "csv",
|
909
1302
|
fileName: "test file 123",
|
910
|
-
fileSize: 800,
|
1303
|
+
fileSize: "800",
|
911
1304
|
records: [],
|
912
1305
|
userId: "4321",
|
913
1306
|
status: "success",
|
914
1307
|
sendNotification: false
|
915
1308
|
};
|
916
1309
|
|
1310
|
+
const validationReport = {
|
1311
|
+
_id: new mongoose.Types.ObjectId(),
|
1312
|
+
departmentId: new mongoose.Types.ObjectId("56131f724143487a10000001"),
|
1313
|
+
modified: new Date("2022-11-13T22:02:01Z"),
|
1314
|
+
location: [],
|
1315
|
+
statusMap: [],
|
1316
|
+
status: [],
|
1317
|
+
vehicleStatus: [],
|
1318
|
+
vehicle: [],
|
1319
|
+
incident: [
|
1320
|
+
{
|
1321
|
+
message: "path: /ReportNumber msg: must be array",
|
1322
|
+
firstSeenAt: new Date("2022-11-14T09:23:48.866Z"),
|
1323
|
+
lastSeenAt: new Date("2022-11-14T09:23:48.866Z"),
|
1324
|
+
clearedAt: new Date("2022-11-14T09:23:48.866Z"),
|
1325
|
+
payload: {
|
1326
|
+
AgencyID: "99999",
|
1327
|
+
IncidentNumber: "ABCD-1234",
|
1328
|
+
ReportNumber: ""
|
1329
|
+
}
|
1330
|
+
}
|
1331
|
+
],
|
1332
|
+
personnel: [],
|
1333
|
+
};
|
1334
|
+
|
917
1335
|
async function cleanup() {
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
await
|
923
|
-
|
924
|
-
|
925
|
-
|
1336
|
+
if (!shouldRun()) {
|
1337
|
+
process.exit(1);
|
1338
|
+
}
|
1339
|
+
|
1340
|
+
const items = await _.first(mongoose.connections)?.db.collections();
|
1341
|
+
for (const coll of items ?? []) {
|
1342
|
+
// console.log(`Emptying ${coll.collectionName}.`);
|
1343
|
+
await coll.deleteMany({});
|
1344
|
+
}
|
1345
|
+
}
|
1346
|
+
|
1347
|
+
async function beforeEach() {
|
1348
|
+
if (!shouldRun()) {
|
1349
|
+
process.exit(1);
|
1350
|
+
}
|
1351
|
+
|
1352
|
+
await cleanup();
|
926
1353
|
}
|
927
1354
|
|
928
1355
|
return {
|
1356
|
+
beforeEach,
|
1357
|
+
cleanup,
|
1358
|
+
|
929
1359
|
actionLog,
|
1360
|
+
mark43IncidentRetry,
|
930
1361
|
agency,
|
931
|
-
assignment,
|
932
1362
|
arcGISGroup,
|
1363
|
+
assignment,
|
933
1364
|
battalion,
|
934
1365
|
cadIncident,
|
1366
|
+
cadIncidentBlock,
|
935
1367
|
cadStatus,
|
936
1368
|
cadStatusMap,
|
937
1369
|
cadVehicle,
|
@@ -939,18 +1371,22 @@ module.exports = function(dependencies) {
|
|
939
1371
|
cadVehicleStatusHistory,
|
940
1372
|
checklist,
|
941
1373
|
checklistItem,
|
942
|
-
|
1374
|
+
csvImport,
|
943
1375
|
department,
|
944
1376
|
deviceMapping,
|
1377
|
+
deviceMappingWithWhiteSpaces,
|
945
1378
|
esri,
|
946
1379
|
gstMapping,
|
947
1380
|
incidentEvent,
|
948
1381
|
incidentNotified,
|
949
1382
|
incidentTakeover,
|
1383
|
+
jobLog,
|
1384
|
+
releaseNote,
|
1385
|
+
cadSimulation,
|
950
1386
|
location,
|
951
1387
|
mailLog,
|
952
|
-
message,
|
953
1388
|
managedIncident,
|
1389
|
+
message,
|
954
1390
|
monitor,
|
955
1391
|
personnelImport,
|
956
1392
|
rateLimit,
|
@@ -959,7 +1395,7 @@ module.exports = function(dependencies) {
|
|
959
1395
|
user,
|
960
1396
|
userDevice,
|
961
1397
|
userRegistration,
|
962
|
-
|
1398
|
+
validationReport,
|
963
1399
|
};
|
964
|
-
}
|
965
|
-
|
1400
|
+
}
|
1401
|
+
|