tabletcommand-location 2.1.1 → 2.2.1
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/index.js +20 -2
- package/build/index.js.map +1 -1
- package/build/location.js +51 -4
- package/build/location.js.map +1 -1
- package/build/store.js +11 -2
- package/build/store.js.map +1 -1
- package/build/test/location.js +1 -1
- package/build/test/location.js.map +1 -1
- package/cspell.json +1 -0
- package/definitions/index.d.ts +3 -2
- package/definitions/index.d.ts.map +1 -1
- package/definitions/location.d.ts +1 -0
- package/definitions/location.d.ts.map +1 -1
- package/definitions/store.d.ts +26 -2
- package/definitions/store.d.ts.map +1 -1
- package/definitions/types.d.ts +1 -0
- package/definitions/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +22 -2
- package/src/location.ts +54 -4
- package/src/store.ts +14 -2
- package/src/test/location.ts +2 -1
- package/src/types.ts +1 -0
package/build/index.js
CHANGED
|
@@ -12,8 +12,8 @@ const types_1 = require("./types");
|
|
|
12
12
|
Object.defineProperty(exports, "LocationKindType", { enumerable: true, get: function () { return types_1.LocationKindType; } });
|
|
13
13
|
Object.defineProperty(exports, "LocationSource", { enumerable: true, get: function () { return types_1.LocationSource; } });
|
|
14
14
|
Object.defineProperty(exports, "LocationVisibility", { enumerable: true, get: function () { return types_1.LocationVisibility; } });
|
|
15
|
-
function lib(departmentModel, locationModel, cadVehicleModel) {
|
|
16
|
-
const store = (0, store_1.default)(departmentModel, locationModel, cadVehicleModel);
|
|
15
|
+
function lib(departmentModel, locationModel, cadVehicleModel, deviceMappingModel) {
|
|
16
|
+
const store = (0, store_1.default)(departmentModel, locationModel, cadVehicleModel, deviceMappingModel);
|
|
17
17
|
const location = (0, location_1.default)(store);
|
|
18
18
|
// async function processVehicle(department: Partial<Department>, item: Partial<CADVehicle>) {
|
|
19
19
|
// // await location.processVehicle()
|
|
@@ -35,6 +35,23 @@ function lib(departmentModel, locationModel, cadVehicleModel) {
|
|
|
35
35
|
throw err;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
+
async function processLocationsDeviceMapping(department, items) {
|
|
39
|
+
const atDate = new Date();
|
|
40
|
+
try {
|
|
41
|
+
if (lodash_1.default.isUndefined(items) || lodash_1.default.isNull(items)) {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
if (lodash_1.default.isObject(items) && !lodash_1.default.isArray(items)) {
|
|
45
|
+
items = [items];
|
|
46
|
+
}
|
|
47
|
+
const result = await location.processItemsDeviceMappingGeotab(department, items, atDate);
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
console.log("err processLocations: ", err);
|
|
52
|
+
throw err;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
38
55
|
// async function processLocationsOnly(department: Partial<Department>, items: Partial<Location>[] | null | undefined, agency: Partial<Agency>) {
|
|
39
56
|
// try {
|
|
40
57
|
// if (_.isUndefined(items) || _.isNull(items)) {
|
|
@@ -52,6 +69,7 @@ function lib(departmentModel, locationModel, cadVehicleModel) {
|
|
|
52
69
|
return {
|
|
53
70
|
// processVehicle,
|
|
54
71
|
processLocations,
|
|
72
|
+
processLocationsDeviceMapping,
|
|
55
73
|
// processLocationsOnly,
|
|
56
74
|
};
|
|
57
75
|
}
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAyBA,kBAmEC;AA5FD,0DAAwC;AACxC,oDAAkC;AAQlC,oDAAuB;AACvB,mCAKiB;AAIf,iGARA,wBAAgB,OAQA;AAEhB,+FARA,sBAAc,OAQA;AACd,mGARA,0BAAkB,OAQA;AAGpB,SAAgB,GAAG,CACjB,eAAgC,EAChC,aAA4B,EAC5B,eAAgC,EAChC,kBAAsC;IAEtC,MAAM,KAAK,GAAG,IAAA,eAAW,EAAC,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAC/F,MAAM,QAAQ,GAAG,IAAA,kBAAc,EAAC,KAAK,CAAC,CAAC;IACvC,8FAA8F;IAC9F,uCAAuC;IACvC,IAAI;IAEJ,KAAK,UAAU,gBAAgB,CAAC,UAA+B,EAAE,KAA2C;QAC1G,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,gBAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,gBAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5C,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,IAAI,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACtE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;YAC3C,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,UAAU,6BAA6B,CAAC,UAA+B,EAAE,KAA2C;QACvH,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,gBAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,gBAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5C,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,IAAI,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,+BAA+B,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACzF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;YAC3C,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,iJAAiJ;IACjJ,UAAU;IACV,qDAAqD;IACrD,mBAAmB;IACnB,QAAQ;IACR,oDAAoD;IACpD,yBAAyB;IACzB,QAAQ;IACR,sFAAsF;IACtF,qBAAqB;IACrB,oBAAoB;IACpB,iBAAiB;IACjB,MAAM;IACN,IAAI;IAEJ,OAAO;QACL,kBAAkB;QAClB,gBAAgB;QAChB,6BAA6B;QAC7B,wBAAwB;KACzB,CAAC;AACJ,CAAC;AAED,kBAAe,GAAG,CAAC"}
|
package/build/location.js
CHANGED
|
@@ -9,7 +9,7 @@ const tabletcommand_backend_models_1 = require("tabletcommand-backend-models");
|
|
|
9
9
|
const debug_1 = __importDefault(require("debug"));
|
|
10
10
|
function location(store) {
|
|
11
11
|
const debug = (0, debug_1.default)("tabletcommand-location:location");
|
|
12
|
-
function
|
|
12
|
+
function decodeLocation(item, department, atDate) {
|
|
13
13
|
let latitude = 0;
|
|
14
14
|
let longitude = 0;
|
|
15
15
|
if (lodash_1.default.isFinite(parseFloat(item.latitude.toString()))) {
|
|
@@ -74,6 +74,7 @@ function location(store) {
|
|
|
74
74
|
session: userId,
|
|
75
75
|
version: 2,
|
|
76
76
|
shared: sharingEnabled,
|
|
77
|
+
sendToCAD: false,
|
|
77
78
|
opAreaName,
|
|
78
79
|
opAreaCode,
|
|
79
80
|
state: deptState,
|
|
@@ -123,7 +124,7 @@ function location(store) {
|
|
|
123
124
|
}
|
|
124
125
|
async function processItems(department, items, atDate) {
|
|
125
126
|
for (const item of items) {
|
|
126
|
-
const decoded =
|
|
127
|
+
const decoded = decodeLocation(item, department, atDate);
|
|
127
128
|
debug(`processCADVehicleLocation item: ${JSON.stringify(item)} d:${JSON.stringify(department)} at: ${atDate.toISOString()}.`);
|
|
128
129
|
if (!decoded.isValid) {
|
|
129
130
|
return;
|
|
@@ -133,8 +134,10 @@ function location(store) {
|
|
|
133
134
|
"627d718b8d6145748b30282b" // HMT (2 way comments, 1 way vehicles)
|
|
134
135
|
];
|
|
135
136
|
const cadItem = await processVehicle(cadBidirectionalExceptions, item, department, atDate);
|
|
136
|
-
if (lodash_1.default.isObject(cadItem)
|
|
137
|
-
|
|
137
|
+
if (lodash_1.default.isObject(cadItem)) {
|
|
138
|
+
if (lodash_1.default.isBoolean(cadItem.mapHidden)) {
|
|
139
|
+
active = !cadItem.mapHidden;
|
|
140
|
+
}
|
|
138
141
|
}
|
|
139
142
|
// TODO: add support for location .kindType
|
|
140
143
|
decoded.cadAVL.active = active;
|
|
@@ -148,9 +151,53 @@ function location(store) {
|
|
|
148
151
|
await store.updateLocation(decoded.cadAVL, atDate);
|
|
149
152
|
}
|
|
150
153
|
}
|
|
154
|
+
async function processItemsDeviceMappingGeotab(department, items, atDate) {
|
|
155
|
+
const departmentId = String(department._id);
|
|
156
|
+
for (const item of items) {
|
|
157
|
+
// TODO: may need to break decodeLocation out separately for device mapping, but works right now
|
|
158
|
+
const decoded = decodeLocation(item, department, atDate);
|
|
159
|
+
debug(`processItemsDeviceMappingGeotab item: ${JSON.stringify(item)} d:${JSON.stringify(department)} at: ${atDate.toISOString()}.`);
|
|
160
|
+
if (!decoded.isValid) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
let active = true;
|
|
164
|
+
let locationToCAD = false;
|
|
165
|
+
const deviceMapping = await store.getDeviceMappingGeotab(item, departmentId);
|
|
166
|
+
if (lodash_1.default.isObject(deviceMapping)) {
|
|
167
|
+
if (lodash_1.default.isBoolean(deviceMapping.mapHidden)) {
|
|
168
|
+
active = !deviceMapping.mapHidden;
|
|
169
|
+
}
|
|
170
|
+
if (lodash_1.default.isBoolean(deviceMapping.locationToCAD)) {
|
|
171
|
+
locationToCAD = true;
|
|
172
|
+
}
|
|
173
|
+
if (lodash_1.default.isString(deviceMapping.mapId) && deviceMapping.mapId.trim() !== "") {
|
|
174
|
+
const radioName = deviceMapping.mapId;
|
|
175
|
+
const userId = `${radioName}-${item.vehicleId}`; // Fake user id radioName - vehicleId
|
|
176
|
+
decoded.cadAVL.username = radioName;
|
|
177
|
+
decoded.cadAVL.userId = userId;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// TODO: add support for location .kindType
|
|
181
|
+
decoded.cadAVL.active = active;
|
|
182
|
+
// Calculate .visibility after .active is set
|
|
183
|
+
const visibility = [
|
|
184
|
+
active ? tabletcommand_backend_models_1.LocationVisibility.Visible : tabletcommand_backend_models_1.LocationVisibility.Hidden,
|
|
185
|
+
];
|
|
186
|
+
if (decoded.cadAVL.shared) {
|
|
187
|
+
visibility.push(tabletcommand_backend_models_1.LocationVisibility.Shared);
|
|
188
|
+
}
|
|
189
|
+
if (locationToCAD) {
|
|
190
|
+
decoded.cadAVL.sendToCAD = true;
|
|
191
|
+
visibility.push(tabletcommand_backend_models_1.LocationVisibility.CAD);
|
|
192
|
+
}
|
|
193
|
+
decoded.cadAVL.visibility = visibility;
|
|
194
|
+
await store.updateLocation(decoded.cadAVL, atDate);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
151
197
|
return {
|
|
152
198
|
processVehicle,
|
|
153
199
|
processItems,
|
|
200
|
+
processItemsDeviceMappingGeotab,
|
|
154
201
|
};
|
|
155
202
|
}
|
|
156
203
|
exports.default = location;
|
package/build/location.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"location.js","sourceRoot":"","sources":["../src/location.ts"],"names":[],"mappings":";;;;;AAcA,
|
|
1
|
+
{"version":3,"file":"location.js","sourceRoot":"","sources":["../src/location.ts"],"names":[],"mappings":"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"}
|
package/build/store.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.store = store;
|
|
7
7
|
const debug_1 = __importDefault(require("debug"));
|
|
8
8
|
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
-
function store(departmentModel, locationModel, cadVehicleModel) {
|
|
9
|
+
function store(departmentModel, locationModel, cadVehicleModel, deviceMappingModel) {
|
|
10
10
|
const debug = (0, debug_1.default)("tabletcommand-location:location:store");
|
|
11
11
|
async function getVehicle(item, departmentId) {
|
|
12
12
|
const query = {
|
|
@@ -15,6 +15,14 @@ function store(departmentModel, locationModel, cadVehicleModel) {
|
|
|
15
15
|
};
|
|
16
16
|
return cadVehicleModel.findOne(query).lean();
|
|
17
17
|
}
|
|
18
|
+
async function getDeviceMappingGeotab(item, departmentId) {
|
|
19
|
+
const query = {
|
|
20
|
+
deviceId: item.vehicleId,
|
|
21
|
+
departmentId,
|
|
22
|
+
deviceType: "geotab",
|
|
23
|
+
};
|
|
24
|
+
return deviceMappingModel.findOne(query).lean();
|
|
25
|
+
}
|
|
18
26
|
async function updateVehicle(item, departmentId) {
|
|
19
27
|
const query = {
|
|
20
28
|
departmentId,
|
|
@@ -31,7 +39,7 @@ function store(departmentModel, locationModel, cadVehicleModel) {
|
|
|
31
39
|
// eslint-disable-next-line new-cap
|
|
32
40
|
const modelItem = new locationModel(item);
|
|
33
41
|
const query = {
|
|
34
|
-
|
|
42
|
+
source: modelItem.source,
|
|
35
43
|
departmentId: modelItem.departmentId,
|
|
36
44
|
username: modelItem.username
|
|
37
45
|
};
|
|
@@ -115,6 +123,7 @@ function store(departmentModel, locationModel, cadVehicleModel) {
|
|
|
115
123
|
}
|
|
116
124
|
return {
|
|
117
125
|
getVehicle,
|
|
126
|
+
getDeviceMappingGeotab,
|
|
118
127
|
updateVehicle,
|
|
119
128
|
updateLocation,
|
|
120
129
|
};
|
package/build/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/build/test/location.js
CHANGED
|
@@ -55,7 +55,7 @@ describe("location", () => {
|
|
|
55
55
|
beforeEach(async () => {
|
|
56
56
|
await mock.beforeEach();
|
|
57
57
|
models = mock.getModels();
|
|
58
|
-
store = (0, store_1.default)(models.Department, models.Location, models.CADVehicle);
|
|
58
|
+
store = (0, store_1.default)(models.Department, models.Location, models.CADVehicle, models.DeviceMapping);
|
|
59
59
|
location = (0, location_1.default)(store);
|
|
60
60
|
});
|
|
61
61
|
afterEach(async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"location.js","sourceRoot":"","sources":["../../src/test/location.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,iBAAe;AACf,2EAA6D;AAC7D,qDAAoD;AACpD,kDAAgC;AAChC,2DAA6D;AAI7D,MAAM,MAAM,GAAG,cAAI,CAAC,MAAM,CAAC;AAC3B,IAAI,QAAwB,CAAC;AAC7B,IAAI,KAAkB,CAAC;AAEvB,MAAM,IAAI,GAAG,IAAA,cAAU,EAAC,YAAY,CAAC,CAAC;AACtC,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;AACvC,IAAI,MAAqB,CAAC;AAE1B,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,KAAK,GAAG,IAAA,eAAW,EACjB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"location.js","sourceRoot":"","sources":["../../src/test/location.ts"],"names":[],"mappings":"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"}
|
package/cspell.json
CHANGED
package/definitions/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { DepartmentModel, LocationModel, CADVehicleModel, Department } from "tabletcommand-backend-models";
|
|
1
|
+
import { DepartmentModel, LocationModel, CADVehicleModel, DeviceMappingModel, Department } from "tabletcommand-backend-models";
|
|
2
2
|
import { LocationKindType, LocationPayload, LocationSource, LocationVisibility } from "./types";
|
|
3
3
|
export { LocationKindType, LocationPayload, LocationSource, LocationVisibility, };
|
|
4
|
-
export declare function lib(departmentModel: DepartmentModel, locationModel: LocationModel, cadVehicleModel: CADVehicleModel): {
|
|
4
|
+
export declare function lib(departmentModel: DepartmentModel, locationModel: LocationModel, cadVehicleModel: CADVehicleModel, deviceMappingModel: DeviceMappingModel): {
|
|
5
5
|
processLocations: (department: Partial<Department>, items: LocationPayload[] | null | undefined) => Promise<void | never[]>;
|
|
6
|
+
processLocationsDeviceMapping: (department: Partial<Department>, items: LocationPayload[] | null | undefined) => Promise<void | never[]>;
|
|
6
7
|
};
|
|
7
8
|
export default lib;
|
|
8
9
|
export type LibModule = ReturnType<typeof lib>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,aAAa,EACb,eAAe,EACf,UAAU,EACX,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,kBAAkB,GACnB,CAAC;AAEF,wBAAgB,GAAG,CACjB,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,UAAU,EACX,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,kBAAkB,GACnB,CAAC;AAEF,wBAAgB,GAAG,CACjB,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,kBAAkB;mCAQM,OAAO,CAAC,UAAU,CAAC,SAAS,eAAe,EAAE,GAAG,IAAI,GAAG,SAAS;gDAiBnD,OAAO,CAAC,UAAU,CAAC,SAAS,eAAe,EAAE,GAAG,IAAI,GAAG,SAAS;EAsC1H;AAED,eAAe,GAAG,CAAC;AACnB,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC"}
|
|
@@ -23,6 +23,7 @@ export declare function location(store: StoreModule): {
|
|
|
23
23
|
__v: number;
|
|
24
24
|
}) | null>;
|
|
25
25
|
processItems: (department: Partial<Department>, items: LocationPayload[], atDate: Date) => Promise<void>;
|
|
26
|
+
processItemsDeviceMappingGeotab: (department: Partial<Department>, items: LocationPayload[], atDate: Date) => Promise<void>;
|
|
26
27
|
};
|
|
27
28
|
export default location;
|
|
28
29
|
export type LocationModule = ReturnType<typeof location>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../src/location.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EAIX,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,eAAe,EAEhB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../src/location.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EAIX,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,eAAe,EAEhB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW;2CAiHW,MAAM,EAAE,QAAQ,eAAe,cAAc,OAAO,CAAC,UAAU,CAAC,UAAU,IAAI;;;;;;;;;;;;;;;;;;;;+BAqB1F,OAAO,CAAC,UAAU,CAAC,SAAS,eAAe,EAAE,UAAU,IAAI;kDAkCxC,OAAO,CAAC,UAAU,CAAC,SAAS,eAAe,EAAE,UAAU,IAAI;EAmDvH;AAED,eAAe,QAAQ,CAAC;AACxB,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC"}
|
package/definitions/store.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DepartmentModel, Location, LocationModel, CADVehicleModel, CADVehicle } from "tabletcommand-backend-models";
|
|
1
|
+
import { DepartmentModel, Location, LocationModel, CADVehicleModel, CADVehicle, DeviceMappingModel } from "tabletcommand-backend-models";
|
|
2
2
|
import { LocationPayload } from "./types";
|
|
3
|
-
export declare function store(departmentModel: DepartmentModel, locationModel: LocationModel, cadVehicleModel: CADVehicleModel): {
|
|
3
|
+
export declare function store(departmentModel: DepartmentModel, locationModel: LocationModel, cadVehicleModel: CADVehicleModel, deviceMappingModel: DeviceMappingModel): {
|
|
4
4
|
getVehicle: (item: LocationPayload, departmentId: string) => Promise<(import("mongoose").FlattenMaps<{
|
|
5
5
|
uuid: string;
|
|
6
6
|
departmentId: string;
|
|
@@ -21,6 +21,30 @@ export declare function store(departmentModel: DepartmentModel, locationModel: L
|
|
|
21
21
|
} & {
|
|
22
22
|
__v: number;
|
|
23
23
|
}) | null>;
|
|
24
|
+
getDeviceMappingGeotab: (item: LocationPayload, departmentId: string) => Promise<(import("mongoose").FlattenMaps<{
|
|
25
|
+
_id: import("mongoose").Types.ObjectId;
|
|
26
|
+
departmentId: string;
|
|
27
|
+
userId: string;
|
|
28
|
+
deviceType: string;
|
|
29
|
+
mapId: string;
|
|
30
|
+
deviceId: string;
|
|
31
|
+
location: {
|
|
32
|
+
longitude: number;
|
|
33
|
+
latitude: number;
|
|
34
|
+
};
|
|
35
|
+
modified_unix_date: number;
|
|
36
|
+
modified: Date;
|
|
37
|
+
active: boolean;
|
|
38
|
+
remoteAddress: string;
|
|
39
|
+
uuid: string;
|
|
40
|
+
note: string;
|
|
41
|
+
mapHidden: boolean;
|
|
42
|
+
locationToCAD: boolean;
|
|
43
|
+
}> & Required<{
|
|
44
|
+
_id: import("mongoose").Types.ObjectId;
|
|
45
|
+
}> & {
|
|
46
|
+
__v: number;
|
|
47
|
+
}) | null>;
|
|
24
48
|
updateVehicle: (item: Partial<CADVehicle>, departmentId: string) => Promise<(import("mongoose").Document<unknown, {}, CADVehicle, {}, {}> & CADVehicle & {
|
|
25
49
|
_id: import("mongoose").Types.ObjectId;
|
|
26
50
|
} & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,QAAQ,EACR,aAAa,EACb,eAAe,EACf,UAAU,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,QAAQ,EACR,aAAa,EACb,eAAe,EACf,UAAU,EACV,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAkB,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1D,wBAAgB,KAAK,CACnB,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,kBAAkB;uBAIN,eAAe,gBAAgB,MAAM;;;;;;;;;;;;;;;;;;;;mCAQzB,eAAe,gBAAgB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;0BAS9C,OAAO,CAAC,UAAU,CAAC,gBAAgB,MAAM;;;;;2BAaxC,OAAO,CAAC,QAAQ,CAAC,UAAU,IAAI;EAoGpE;AACD,eAAe,KAAK,CAAC;AACrB,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC"}
|
package/definitions/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,kBAAkB,GACnB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,kBAAkB,GACnB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,kBAAkB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GAAG;KAC1B,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;CACnC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tabletcommand-location",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "Tablet Command Location",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"debug": "^4.4.1",
|
|
16
16
|
"lodash": "~4.17.21",
|
|
17
|
-
"tabletcommand-backend-models": "~7.4.
|
|
17
|
+
"tabletcommand-backend-models": "~7.4.7"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"@eslint/eslintrc": "^3.3.1",
|
package/src/index.ts
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
DepartmentModel,
|
|
5
5
|
LocationModel,
|
|
6
6
|
CADVehicleModel,
|
|
7
|
+
DeviceMappingModel,
|
|
7
8
|
Department,
|
|
8
9
|
} from "tabletcommand-backend-models";
|
|
9
10
|
import _ from "lodash";
|
|
@@ -25,9 +26,10 @@ export {
|
|
|
25
26
|
export function lib(
|
|
26
27
|
departmentModel: DepartmentModel,
|
|
27
28
|
locationModel: LocationModel,
|
|
28
|
-
cadVehicleModel: CADVehicleModel
|
|
29
|
+
cadVehicleModel: CADVehicleModel,
|
|
30
|
+
deviceMappingModel: DeviceMappingModel
|
|
29
31
|
) {
|
|
30
|
-
const store = storeModule(departmentModel, locationModel, cadVehicleModel);
|
|
32
|
+
const store = storeModule(departmentModel, locationModel, cadVehicleModel, deviceMappingModel);
|
|
31
33
|
const location = locationModule(store);
|
|
32
34
|
// async function processVehicle(department: Partial<Department>, item: Partial<CADVehicle>) {
|
|
33
35
|
// // await location.processVehicle()
|
|
@@ -50,6 +52,23 @@ export function lib(
|
|
|
50
52
|
}
|
|
51
53
|
}
|
|
52
54
|
|
|
55
|
+
async function processLocationsDeviceMapping(department: Partial<Department>, items: LocationPayload[] | null | undefined) {
|
|
56
|
+
const atDate = new Date();
|
|
57
|
+
try {
|
|
58
|
+
if (_.isUndefined(items) || _.isNull(items)) {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
if (_.isObject(items) && !_.isArray(items)) {
|
|
62
|
+
items = [items];
|
|
63
|
+
}
|
|
64
|
+
const result = await location.processItemsDeviceMappingGeotab(department, items, atDate);
|
|
65
|
+
return result;
|
|
66
|
+
} catch (err) {
|
|
67
|
+
console.log("err processLocations: ", err);
|
|
68
|
+
throw err;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
53
72
|
// async function processLocationsOnly(department: Partial<Department>, items: Partial<Location>[] | null | undefined, agency: Partial<Agency>) {
|
|
54
73
|
// try {
|
|
55
74
|
// if (_.isUndefined(items) || _.isNull(items)) {
|
|
@@ -68,6 +87,7 @@ export function lib(
|
|
|
68
87
|
return {
|
|
69
88
|
// processVehicle,
|
|
70
89
|
processLocations,
|
|
90
|
+
processLocationsDeviceMapping,
|
|
71
91
|
// processLocationsOnly,
|
|
72
92
|
};
|
|
73
93
|
}
|
package/src/location.ts
CHANGED
|
@@ -15,7 +15,7 @@ import { StoreModule } from "./store";
|
|
|
15
15
|
export function location(store: StoreModule) {
|
|
16
16
|
const debug = debugModule("tabletcommand-location:location");
|
|
17
17
|
|
|
18
|
-
function
|
|
18
|
+
function decodeLocation(item: LocationPayload, department: Partial<Department>, atDate: Date): DecodedLocation {
|
|
19
19
|
let latitude = 0;
|
|
20
20
|
let longitude = 0;
|
|
21
21
|
|
|
@@ -91,6 +91,7 @@ export function location(store: StoreModule) {
|
|
|
91
91
|
session: userId,
|
|
92
92
|
version: 2,
|
|
93
93
|
shared: sharingEnabled,
|
|
94
|
+
sendToCAD: false,
|
|
94
95
|
opAreaName,
|
|
95
96
|
opAreaCode,
|
|
96
97
|
state: deptState,
|
|
@@ -147,7 +148,7 @@ export function location(store: StoreModule) {
|
|
|
147
148
|
|
|
148
149
|
async function processItems(department: Partial<Department>, items: LocationPayload[], atDate: Date) {
|
|
149
150
|
for (const item of items) {
|
|
150
|
-
const decoded =
|
|
151
|
+
const decoded = decodeLocation(item, department, atDate);
|
|
151
152
|
debug(`processCADVehicleLocation item: ${JSON.stringify(item)} d:${JSON.stringify(department)} at: ${atDate.toISOString()}.`);
|
|
152
153
|
if (!decoded.isValid) {
|
|
153
154
|
return;
|
|
@@ -160,8 +161,10 @@ export function location(store: StoreModule) {
|
|
|
160
161
|
|
|
161
162
|
const cadItem = await processVehicle(cadBidirectionalExceptions, item, department, atDate);
|
|
162
163
|
|
|
163
|
-
if (_.isObject(cadItem)
|
|
164
|
-
|
|
164
|
+
if (_.isObject(cadItem)) {
|
|
165
|
+
if (_.isBoolean(cadItem.mapHidden)) {
|
|
166
|
+
active = !cadItem.mapHidden;
|
|
167
|
+
}
|
|
165
168
|
}
|
|
166
169
|
// TODO: add support for location .kindType
|
|
167
170
|
|
|
@@ -177,9 +180,56 @@ export function location(store: StoreModule) {
|
|
|
177
180
|
}
|
|
178
181
|
}
|
|
179
182
|
|
|
183
|
+
async function processItemsDeviceMappingGeotab(department: Partial<Department>, items: LocationPayload[], atDate: Date) {
|
|
184
|
+
const departmentId = String(department._id);
|
|
185
|
+
for (const item of items) {
|
|
186
|
+
// TODO: may need to break decodeLocation out separately for device mapping, but works right now
|
|
187
|
+
const decoded = decodeLocation(item, department, atDate);
|
|
188
|
+
debug(`processItemsDeviceMappingGeotab item: ${JSON.stringify(item)} d:${JSON.stringify(department)} at: ${atDate.toISOString()}.`);
|
|
189
|
+
if (!decoded.isValid) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
let active = true;
|
|
194
|
+
let locationToCAD = false;
|
|
195
|
+
const deviceMapping = await store.getDeviceMappingGeotab(item, departmentId);
|
|
196
|
+
|
|
197
|
+
if (_.isObject(deviceMapping)) {
|
|
198
|
+
if (_.isBoolean(deviceMapping.mapHidden)) {
|
|
199
|
+
active = !deviceMapping.mapHidden;
|
|
200
|
+
}
|
|
201
|
+
if (_.isBoolean(deviceMapping.locationToCAD)) {
|
|
202
|
+
locationToCAD = true;
|
|
203
|
+
}
|
|
204
|
+
if (_.isString(deviceMapping.mapId) && deviceMapping.mapId.trim() !== "") {
|
|
205
|
+
const radioName = deviceMapping.mapId;
|
|
206
|
+
const userId = `${radioName}-${item.vehicleId}`; // Fake user id radioName - vehicleId
|
|
207
|
+
decoded.cadAVL.username = radioName;
|
|
208
|
+
decoded.cadAVL.userId = userId;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// TODO: add support for location .kindType
|
|
212
|
+
decoded.cadAVL.active = active;
|
|
213
|
+
// Calculate .visibility after .active is set
|
|
214
|
+
const visibility: LocationVisibility[] = [
|
|
215
|
+
active ? LocationVisibility.Visible : LocationVisibility.Hidden,
|
|
216
|
+
];
|
|
217
|
+
if (decoded.cadAVL.shared) {
|
|
218
|
+
visibility.push(LocationVisibility.Shared);
|
|
219
|
+
}
|
|
220
|
+
if (locationToCAD) {
|
|
221
|
+
decoded.cadAVL.sendToCAD = true;
|
|
222
|
+
visibility.push(LocationVisibility.CAD);
|
|
223
|
+
}
|
|
224
|
+
decoded.cadAVL.visibility = visibility;
|
|
225
|
+
await store.updateLocation(decoded.cadAVL, atDate);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
180
229
|
return {
|
|
181
230
|
processVehicle,
|
|
182
231
|
processItems,
|
|
232
|
+
processItemsDeviceMappingGeotab,
|
|
183
233
|
};
|
|
184
234
|
}
|
|
185
235
|
|
package/src/store.ts
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
LocationModel,
|
|
6
6
|
CADVehicleModel,
|
|
7
7
|
CADVehicle,
|
|
8
|
+
DeviceMappingModel,
|
|
8
9
|
} from "tabletcommand-backend-models";
|
|
9
10
|
import _ from "lodash";
|
|
10
11
|
import { LocationObject, LocationPayload } from "./types";
|
|
@@ -12,7 +13,8 @@ import { LocationObject, LocationPayload } from "./types";
|
|
|
12
13
|
export function store(
|
|
13
14
|
departmentModel: DepartmentModel,
|
|
14
15
|
locationModel: LocationModel,
|
|
15
|
-
cadVehicleModel: CADVehicleModel
|
|
16
|
+
cadVehicleModel: CADVehicleModel,
|
|
17
|
+
deviceMappingModel: DeviceMappingModel
|
|
16
18
|
) {
|
|
17
19
|
const debug = debugModule("tabletcommand-location:location:store");
|
|
18
20
|
|
|
@@ -24,6 +26,15 @@ export function store(
|
|
|
24
26
|
return cadVehicleModel.findOne(query).lean();
|
|
25
27
|
}
|
|
26
28
|
|
|
29
|
+
async function getDeviceMappingGeotab(item: LocationPayload, departmentId: string) {
|
|
30
|
+
const query = {
|
|
31
|
+
deviceId: item.vehicleId,
|
|
32
|
+
departmentId,
|
|
33
|
+
deviceType: "geotab",
|
|
34
|
+
};
|
|
35
|
+
return deviceMappingModel.findOne(query).lean();
|
|
36
|
+
}
|
|
37
|
+
|
|
27
38
|
async function updateVehicle(item: Partial<CADVehicle>, departmentId: string) {
|
|
28
39
|
const query = {
|
|
29
40
|
departmentId,
|
|
@@ -41,7 +52,7 @@ export function store(
|
|
|
41
52
|
// eslint-disable-next-line new-cap
|
|
42
53
|
const modelItem = new locationModel(item);
|
|
43
54
|
const query = {
|
|
44
|
-
|
|
55
|
+
source: modelItem.source,
|
|
45
56
|
departmentId: modelItem.departmentId,
|
|
46
57
|
username: modelItem.username
|
|
47
58
|
};
|
|
@@ -133,6 +144,7 @@ export function store(
|
|
|
133
144
|
|
|
134
145
|
return {
|
|
135
146
|
getVehicle,
|
|
147
|
+
getDeviceMappingGeotab,
|
|
136
148
|
updateVehicle,
|
|
137
149
|
updateLocation,
|
|
138
150
|
};
|
package/src/test/location.ts
CHANGED