tabletcommand-backend-models 7.0.12 → 7.0.14
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 +14 -1
- package/build/constants.js.map +1 -1
- package/build/index.js +3 -1
- package/build/index.js.map +1 -1
- package/build/models/cad-incident-block.js +0 -6
- package/build/models/cad-incident-block.js.map +1 -1
- package/build/models/department.js +5 -0
- 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/schema/cad-incident.js +1 -0
- package/build/models/schema/cad-incident.js.map +1 -1
- package/build/models/user.js +6 -1
- package/build/models/user.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 +76 -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 +1280 -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 +11 -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/cad-incident-block.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/schema/cad-incident.d.ts.map +1 -1
- package/definitions/models/user.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 +1056 -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 -4
- 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/user.d.ts +39 -38
- package/definitions/types/user.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/constants.ts +13 -0
- package/src/index.ts +4 -0
- package/src/models/cad-incident-block.ts +0 -10
- package/src/models/department.ts +6 -0
- package/src/models/device-mapping.ts +4 -0
- package/src/models/schema/cad-incident.ts +2 -0
- package/src/models/user.ts +7 -1
- 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 +79 -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 +590 -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 +13 -3
- package/src/types/cad.ts +2 -4
- package/src/types/department.ts +1 -0
- package/src/types/user.ts +40 -39
- 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,16 @@ module.exports = function(dependencies) {
|
|
666
956
|
text: "#00AA00",
|
667
957
|
background: "#FFAAFF"
|
668
958
|
},
|
669
|
-
modified: new Date()
|
959
|
+
modified: new Date()
|
670
960
|
};
|
671
961
|
|
672
962
|
const managedIncident = {
|
673
|
-
_id: mongoose.Types.ObjectId(),
|
963
|
+
_id: new mongoose.Types.ObjectId(),
|
674
964
|
CallerNumber: "(720) 275-6765",
|
675
965
|
CommandChannel: "ACPRI",
|
676
966
|
TacticalAltChannel: "ACOPSB",
|
677
967
|
TacticalChannel: "ACOPSA",
|
678
|
-
active:
|
968
|
+
active: true,
|
679
969
|
address: "Interstate 76 Eb / Federal To I 76 Eb, UNINCORPORATED ADAMS COUNTY CO",
|
680
970
|
api_incident_number: "ACFR040719-0002506",
|
681
971
|
channel: "ADAMSCOUNTYFIRERESCUEN1C-MANAGED-ACFR040719-0002506",
|
@@ -693,15 +983,16 @@ module.exports = function(dependencies) {
|
|
693
983
|
history: [
|
694
984
|
//
|
695
985
|
{
|
696
|
-
entity_id: 9207,
|
986
|
+
entity_id: "9207",
|
697
987
|
entity_type: 14,
|
698
988
|
message: "(43) 2a72 start medical (Shared)",
|
699
|
-
time: 1554681941
|
989
|
+
time: 1554681941,
|
990
|
+
user: "",
|
700
991
|
}
|
701
992
|
],
|
702
|
-
is_closed:
|
993
|
+
is_closed: true,
|
703
994
|
location: "39.802526,-105.019773",
|
704
|
-
managed:
|
995
|
+
managed: 1,
|
705
996
|
modified_date: "2019-04-08T00:16:30.473", // Same as the modified_unix_date
|
706
997
|
modified_unix_date: 1554682590.47396,
|
707
998
|
name: "INJURED PARTY",
|
@@ -714,20 +1005,52 @@ module.exports = function(dependencies) {
|
|
714
1005
|
//
|
715
1006
|
{
|
716
1007
|
UnitID: "M12",
|
717
|
-
|
1008
|
+
assignment: {
|
1009
|
+
name: "",
|
1010
|
+
uuid: "",
|
1011
|
+
modified_date: new Date().toISOString(),
|
1012
|
+
modified_unix_date: 1,
|
1013
|
+
built_in: true,
|
1014
|
+
isMandatory: false,
|
1015
|
+
description: "",
|
1016
|
+
active: true,
|
1017
|
+
position: 1,
|
1018
|
+
},
|
1019
|
+
AlarmAtDispatch: 0,
|
1020
|
+
uuid: "",
|
1021
|
+
parent_uuid: "",
|
1022
|
+
local_id: "",
|
1023
|
+
active: true,
|
718
1024
|
air_time: "",
|
719
1025
|
api_unit_dispatch_number: "5163322",
|
720
|
-
checked:
|
1026
|
+
checked: false,
|
721
1027
|
column_position: 0,
|
722
1028
|
group_position: 0,
|
723
1029
|
incident_position: 0,
|
724
1030
|
isSupervisor: false,
|
725
1031
|
is_part_of_group: false,
|
1032
|
+
location_on_image: "",
|
726
1033
|
location_on_map: "",
|
727
1034
|
modified_date: "2019-04-08T00:16:30+0000",
|
728
1035
|
modified_unix_date: 1554682590.51667,
|
729
1036
|
note: "",
|
730
1037
|
personnelOnScene: 2,
|
1038
|
+
Personnel: [
|
1039
|
+
{
|
1040
|
+
"PersonnelID": "X14",
|
1041
|
+
"PersonnelName": "Mary Smith",
|
1042
|
+
"PersonnelNote": "X",
|
1043
|
+
"PersonnelRank": "Captain",
|
1044
|
+
"PersonnelWorkCode": "TRD"
|
1045
|
+
},
|
1046
|
+
{
|
1047
|
+
"PersonnelID": "Y21",
|
1048
|
+
"PersonnelName": "Nicholas Santos",
|
1049
|
+
"PersonnelNote": "Y",
|
1050
|
+
"PersonnelRank": "PM",
|
1051
|
+
"PersonnelWorkCode": "REG"
|
1052
|
+
}
|
1053
|
+
],
|
731
1054
|
status: "Arrived",
|
732
1055
|
status_unix_date: 1554682217,
|
733
1056
|
time: "",
|
@@ -735,20 +1058,78 @@ module.exports = function(dependencies) {
|
|
735
1058
|
}
|
736
1059
|
],
|
737
1060
|
userId: "5b3e78cc944e2a18d5222424",
|
738
|
-
uuid: "579E2F47-7F63-4351-B41F-4A345D680B8F"
|
1061
|
+
uuid: "579E2F47-7F63-4351-B41F-4A345D680B8F",
|
1062
|
+
// Share incident properties
|
1063
|
+
ReportNumber: [
|
1064
|
+
//
|
1065
|
+
{
|
1066
|
+
"name": "A",
|
1067
|
+
"number": "07-0351"
|
1068
|
+
},
|
1069
|
+
{
|
1070
|
+
"name": "B",
|
1071
|
+
"number": "UM-02210"
|
1072
|
+
}
|
1073
|
+
],
|
1074
|
+
radioChannels: [
|
1075
|
+
//
|
1076
|
+
{
|
1077
|
+
"name": "CMD",
|
1078
|
+
"channel": "LOCAL Tone: 3",
|
1079
|
+
"url": "http://example.com/stream1",
|
1080
|
+
"channelDescription": "",
|
1081
|
+
},
|
1082
|
+
{
|
1083
|
+
"name": "TAC",
|
1084
|
+
"channel": "CDF TAC 10",
|
1085
|
+
"url": "http://example.com/stream2",
|
1086
|
+
"channelDescription": "",
|
1087
|
+
}
|
1088
|
+
],
|
1089
|
+
record: {
|
1090
|
+
"name": "John",
|
1091
|
+
"value": "Smith",
|
1092
|
+
},
|
1093
|
+
sharedSource: {
|
1094
|
+
isExternal: true,
|
1095
|
+
name: "Demo RTS Fire Department",
|
1096
|
+
reasons: [
|
1097
|
+
{
|
1098
|
+
date: new Date("2024-05-03T00:00:00.000Z"),
|
1099
|
+
name: "Unit B10 assigned"
|
1100
|
+
}
|
1101
|
+
]
|
1102
|
+
},
|
1103
|
+
sharedTo: [
|
1104
|
+
//
|
1105
|
+
{
|
1106
|
+
active: true,
|
1107
|
+
departmentId: "5195426cc4e016a988000965",
|
1108
|
+
expireAt: new Date("2024-08-01T10:20:30.400Z"),
|
1109
|
+
name: "Test Fire Department",
|
1110
|
+
reasons: [
|
1111
|
+
{
|
1112
|
+
date: new Date("2024-05-03T01:01:01.010Z"),
|
1113
|
+
name: "Unit M10 assigned"
|
1114
|
+
}
|
1115
|
+
],
|
1116
|
+
startAt: new Date("2024-05-01T01:02:03.040Z"),
|
1117
|
+
}
|
1118
|
+
],
|
739
1119
|
};
|
740
1120
|
|
741
1121
|
const monitor = {
|
742
|
-
_id: mongoose.Types.ObjectId(),
|
1122
|
+
_id: new mongoose.Types.ObjectId(),
|
743
1123
|
departmentId: "546ace2b3cd8d60d1d00256a",
|
744
1124
|
agencyId: "123",
|
745
|
-
notificationType: "maps-
|
1125
|
+
notificationType: "maps-auth-error",
|
746
1126
|
status: "active",
|
1127
|
+
sentAt: new Date(1000.0 * 1603263604),
|
747
1128
|
sentUnixDate: 1603263604
|
748
1129
|
};
|
749
1130
|
|
750
1131
|
const rateLimit = {
|
751
|
-
_id: mongoose.Types.ObjectId(),
|
1132
|
+
_id: new mongoose.Types.ObjectId(),
|
752
1133
|
username: "test123",
|
753
1134
|
modified_unix_date: 1426983552.49945,
|
754
1135
|
count: 8
|
@@ -783,7 +1164,7 @@ module.exports = function(dependencies) {
|
|
783
1164
|
};
|
784
1165
|
|
785
1166
|
const user = {
|
786
|
-
_id: mongoose.Types.ObjectId(),
|
1167
|
+
_id: new mongoose.Types.ObjectId(),
|
787
1168
|
nick: "Test",
|
788
1169
|
email: "test@save.me",
|
789
1170
|
mapId: "TEST",
|
@@ -804,9 +1185,10 @@ module.exports = function(dependencies) {
|
|
804
1185
|
offDutyEnabled: true,
|
805
1186
|
webMapSettings: {
|
806
1187
|
defaultZoomLevel: 10,
|
807
|
-
defaultCenter: [1,1],
|
1188
|
+
defaultCenter: [1, 1],
|
808
1189
|
defaultMap: "Default"
|
809
|
-
}
|
1190
|
+
},
|
1191
|
+
restrictedCommentsEnabled: true
|
810
1192
|
};
|
811
1193
|
|
812
1194
|
const userRegistration = {
|
@@ -844,7 +1226,9 @@ module.exports = function(dependencies) {
|
|
844
1226
|
criticalAlertsEnabled: true,
|
845
1227
|
session: "1234321",
|
846
1228
|
active: true,
|
847
|
-
offDuty: false
|
1229
|
+
offDuty: false,
|
1230
|
+
t: new Date(),
|
1231
|
+
channelId: "",
|
848
1232
|
}
|
849
1233
|
],
|
850
1234
|
notificationCount: 12,
|
@@ -879,7 +1263,7 @@ module.exports = function(dependencies) {
|
|
879
1263
|
};
|
880
1264
|
|
881
1265
|
const personnelImport = {
|
882
|
-
_id: mongoose.Types.ObjectId(),
|
1266
|
+
_id: new mongoose.Types.ObjectId(),
|
883
1267
|
PersonnelID: "AM0111",
|
884
1268
|
PersonnelName: "Test User",
|
885
1269
|
PersonnelRank: "Eng",
|
@@ -888,11 +1272,11 @@ module.exports = function(dependencies) {
|
|
888
1272
|
departmentId: "123zzz",
|
889
1273
|
radioNames: ["M10", "Z1"],
|
890
1274
|
shiftStartTime: 1559446299,
|
891
|
-
shiftStart: "2019-06-02T03:31:39.000Z",
|
1275
|
+
shiftStart: new Date("2019-06-02T03:31:39.000Z"),
|
892
1276
|
shiftEndTime: 1569446299,
|
893
|
-
shiftEnd: "2019-09-25T21:18:19.000Z",
|
1277
|
+
shiftEnd: new Date("2019-09-25T21:18:19.000Z"),
|
894
1278
|
modified_unix_date: 1570446299,
|
895
|
-
modified: "2019-10-07T11:04:59.000Z",
|
1279
|
+
modified: new Date("2019-10-07T11:04:59.000Z"),
|
896
1280
|
active: true,
|
897
1281
|
agencyCode: "TC",
|
898
1282
|
agencyName: "Tablet Command",
|
@@ -900,38 +1284,77 @@ module.exports = function(dependencies) {
|
|
900
1284
|
};
|
901
1285
|
|
902
1286
|
const csvImport = {
|
903
|
-
_id: mongoose.Types.ObjectId(),
|
1287
|
+
_id: new mongoose.Types.ObjectId(),
|
904
1288
|
batchId: "AM0111",
|
905
1289
|
departmentId: "1234",
|
906
1290
|
agencyId: "abcd1234",
|
907
1291
|
importType: "users",
|
908
1292
|
fileType: "csv",
|
909
1293
|
fileName: "test file 123",
|
910
|
-
fileSize: 800,
|
1294
|
+
fileSize: "800",
|
911
1295
|
records: [],
|
912
1296
|
userId: "4321",
|
913
1297
|
status: "success",
|
914
1298
|
sendNotification: false
|
915
1299
|
};
|
916
1300
|
|
1301
|
+
const validationReport = {
|
1302
|
+
_id: new mongoose.Types.ObjectId(),
|
1303
|
+
departmentId: new mongoose.Types.ObjectId("56131f724143487a10000001"),
|
1304
|
+
modified: new Date("2022-11-13T22:02:01Z"),
|
1305
|
+
location: [],
|
1306
|
+
statusMap: [],
|
1307
|
+
status: [],
|
1308
|
+
vehicleStatus: [],
|
1309
|
+
vehicle: [],
|
1310
|
+
incident: [
|
1311
|
+
{
|
1312
|
+
message: "path: /ReportNumber msg: must be array",
|
1313
|
+
firstSeenAt: new Date("2022-11-14T09:23:48.866Z"),
|
1314
|
+
lastSeenAt: new Date("2022-11-14T09:23:48.866Z"),
|
1315
|
+
clearedAt: new Date("2022-11-14T09:23:48.866Z"),
|
1316
|
+
payload: {
|
1317
|
+
AgencyID: "99999",
|
1318
|
+
IncidentNumber: "ABCD-1234",
|
1319
|
+
ReportNumber: ""
|
1320
|
+
}
|
1321
|
+
}
|
1322
|
+
],
|
1323
|
+
personnel: [],
|
1324
|
+
};
|
1325
|
+
|
917
1326
|
async function cleanup() {
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
await
|
923
|
-
|
924
|
-
|
925
|
-
|
1327
|
+
if (!shouldRun()) {
|
1328
|
+
process.exit(1);
|
1329
|
+
}
|
1330
|
+
|
1331
|
+
const items = await _.first(mongoose.connections)?.db.collections();
|
1332
|
+
for (const coll of items ?? []) {
|
1333
|
+
// console.log(`Emptying ${coll.collectionName}.`);
|
1334
|
+
await coll.deleteMany({});
|
1335
|
+
}
|
1336
|
+
}
|
1337
|
+
|
1338
|
+
async function beforeEach() {
|
1339
|
+
if (!shouldRun()) {
|
1340
|
+
process.exit(1);
|
1341
|
+
}
|
1342
|
+
|
1343
|
+
await cleanup();
|
926
1344
|
}
|
927
1345
|
|
928
1346
|
return {
|
1347
|
+
beforeEach,
|
1348
|
+
cleanup,
|
1349
|
+
|
929
1350
|
actionLog,
|
1351
|
+
mark43IncidentRetry,
|
930
1352
|
agency,
|
931
|
-
assignment,
|
932
1353
|
arcGISGroup,
|
1354
|
+
assignment,
|
933
1355
|
battalion,
|
934
1356
|
cadIncident,
|
1357
|
+
cadIncidentBlock,
|
935
1358
|
cadStatus,
|
936
1359
|
cadStatusMap,
|
937
1360
|
cadVehicle,
|
@@ -939,18 +1362,22 @@ module.exports = function(dependencies) {
|
|
939
1362
|
cadVehicleStatusHistory,
|
940
1363
|
checklist,
|
941
1364
|
checklistItem,
|
942
|
-
|
1365
|
+
csvImport,
|
943
1366
|
department,
|
944
1367
|
deviceMapping,
|
1368
|
+
deviceMappingWithWhiteSpaces,
|
945
1369
|
esri,
|
946
1370
|
gstMapping,
|
947
1371
|
incidentEvent,
|
948
1372
|
incidentNotified,
|
949
1373
|
incidentTakeover,
|
1374
|
+
jobLog,
|
1375
|
+
releaseNote,
|
1376
|
+
cadSimulation,
|
950
1377
|
location,
|
951
1378
|
mailLog,
|
952
|
-
message,
|
953
1379
|
managedIncident,
|
1380
|
+
message,
|
954
1381
|
monitor,
|
955
1382
|
personnelImport,
|
956
1383
|
rateLimit,
|
@@ -959,7 +1386,7 @@ module.exports = function(dependencies) {
|
|
959
1386
|
user,
|
960
1387
|
userDevice,
|
961
1388
|
userRegistration,
|
962
|
-
|
1389
|
+
validationReport,
|
963
1390
|
};
|
964
|
-
}
|
965
|
-
|
1391
|
+
}
|
1392
|
+
|