@golemio/pid 2.8.8-dev.976026821 → 2.8.8
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/db/example/12_metro_line_A_gtfs_trips.sql +5 -0
- package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/SaveMetroRailtrackDataToDBTask.js +0 -4
- package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/SaveMetroRailtrackDataToDBTask.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/data-access/MetroRailtrackGPSRepository.js +3 -16
- package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/data-access/MetroRailtrackGPSRepository.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/Di.js +0 -8
- package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.d.ts +0 -3
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +0 -9
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/MetroRouteHelper.d.ts +0 -3
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/MetroRouteHelper.js +0 -12
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/MetroRouteHelper.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.d.ts +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.d.ts +0 -3
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.js +117 -113
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/VPInterfaces.d.ts +2 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.d.ts +0 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.js +1 -8
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.js.map +1 -1
- package/package.json +2 -2
- package/db/example/17_metroRailtrack.sql +0 -357
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/metro/CachedMetroRailtrackLookup.d.ts +0 -9
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/metro/CachedMetroRailtrackLookup.js +0 -59
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/metro/CachedMetroRailtrackLookup.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/metro/MetroShapePointsFixer.d.ts +0 -10
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/metro/MetroShapePointsFixer.js +0 -77
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/metro/MetroShapePointsFixer.js.map +0 -1
|
@@ -100,6 +100,11 @@ INSERT INTO ropidgtfs_run_numbers_actual (route_id,run_number,service_id,trip_id
|
|
|
100
100
|
('L991',9,'1111111-1','991_294_220901',3,NULL,'2022-10-24 10:23:04.722+02',NULL,NULL,'2022-10-24 10:23:04.722+02',NULL),
|
|
101
101
|
('L991',17,'1111111-3','991_294_220901',3,NULL,'2022-10-24 10:23:04.722+02',NULL,NULL,'2022-10-24 10:23:04.722+02',NULL);
|
|
102
102
|
|
|
103
|
+
INSERT INTO ropidgtfs_metro_railtrack_gps (track_id, route_name, coordinates, gtfs_stop_id) VALUES
|
|
104
|
+
('1806', 'A', ST_PointFromText('POINT(14.36282 50.09837)', 4326), 'U157Z102P'),
|
|
105
|
+
('1209', 'A', ST_PointFromText('POINT(14.43101 50.079954)', 4326), NULL),
|
|
106
|
+
('1211', 'A', ST_PointFromText('POINT(14.429208 50.081053)', 4326), NULL);
|
|
107
|
+
|
|
103
108
|
WITH init_values AS (
|
|
104
109
|
SELECT CAST(current_date - INTERVAL '1 day' + INTERVAL '10 hour' AS TIMESTAMP WITH TIME ZONE) AT TIME ZONE 'Europe/Prague' AS origin_datetime
|
|
105
110
|
)
|
package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/SaveMetroRailtrackDataToDBTask.js
CHANGED
|
@@ -14,10 +14,6 @@ const workers_1 = require("@golemio/core/dist/integration-engine/workers");
|
|
|
14
14
|
const MetroRailtrackGPSRepository_1 = require("./data-access/MetroRailtrackGPSRepository");
|
|
15
15
|
const MetroRailtrackDataTransformation_1 = require("./transformations/MetroRailtrackDataTransformation");
|
|
16
16
|
const MetroRailtrackDataSchema_1 = require("./schema/MetroRailtrackDataSchema");
|
|
17
|
-
/*
|
|
18
|
-
* In case of update of the data for metro railtrack.
|
|
19
|
-
* It is necessary to restart the service to reload cache 'CacheMetroRailtrackLookup'.
|
|
20
|
-
*/
|
|
21
17
|
class SaveMetroRailtrackDataToDBTask extends workers_1.AbstractTask {
|
|
22
18
|
constructor(queuePrefix) {
|
|
23
19
|
super(queuePrefix);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveMetroRailtrackDataToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/railtrack/tasks/SaveMetroRailtrackDataToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2EAA6E;AAC7E,2FAAwF;AACxF,yGAAsG;AAEtG,gFAAuF;AAEvF
|
|
1
|
+
{"version":3,"file":"SaveMetroRailtrackDataToDBTask.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/ropid-gtfs/workers/railtrack/tasks/SaveMetroRailtrackDataToDBTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2EAA6E;AAC7E,2FAAwF;AACxF,yGAAsG;AAEtG,gFAAuF;AAEvF,MAAa,8BAA+B,SAAQ,sBAAsC;IAQtF,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QARP,cAAS,GAAG,4BAA4B,CAAC;QACzC,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;QACtC,WAAM,GAAG,6DAAkC,CAAC;QAOxD,IAAI,CAAC,2BAA2B,GAAG,IAAI,mEAAgC,EAAE,CAAC;QAC1E,IAAI,CAAC,sBAAsB,GAAG,IAAI,yDAA2B,EAAE,CAAC;IACpE,CAAC;IAEe,OAAO,CAAC,IAA8B;;YAClD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAChF,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACjE,CAAC;KAAA;CACJ;AAlBD,wEAkBC"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -29,8 +20,7 @@ const models_1 = require("@golemio/core/dist/integration-engine/models");
|
|
|
29
20
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
30
21
|
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
31
22
|
const sequelize_1 = __importDefault(require("@golemio/core/dist/shared/sequelize"));
|
|
32
|
-
|
|
33
|
-
let MetroRailtrackGPSRepository = exports.MetroRailtrackGPSRepository = class MetroRailtrackGPSRepository extends models_1.PostgresModel {
|
|
23
|
+
class MetroRailtrackGPSRepository extends models_1.PostgresModel {
|
|
34
24
|
constructor() {
|
|
35
25
|
super("MetroRailtrackGPSRepository", {
|
|
36
26
|
pgTableName: MetroRailtrackGPSModel_1.MetroRailtrackGPSModel.TABLE_NAME,
|
|
@@ -88,9 +78,6 @@ let MetroRailtrackGPSRepository = exports.MetroRailtrackGPSRepository = class Me
|
|
|
88
78
|
}
|
|
89
79
|
});
|
|
90
80
|
}
|
|
91
|
-
}
|
|
92
|
-
exports.MetroRailtrackGPSRepository = MetroRailtrackGPSRepository
|
|
93
|
-
(0, tsyringe_1.injectable)(),
|
|
94
|
-
__metadata("design:paramtypes", [])
|
|
95
|
-
], MetroRailtrackGPSRepository);
|
|
81
|
+
}
|
|
82
|
+
exports.MetroRailtrackGPSRepository = MetroRailtrackGPSRepository;
|
|
96
83
|
//# sourceMappingURL=MetroRailtrackGPSRepository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetroRailtrackGPSRepository.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/ropid-gtfs/workers/railtrack/tasks/data-access/MetroRailtrackGPSRepository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MetroRailtrackGPSRepository.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/ropid-gtfs/workers/railtrack/tasks/data-access/MetroRailtrackGPSRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,15 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VPContainer = void 0;
|
|
4
4
|
const Di_1 = require("../../ioc/Di");
|
|
5
|
-
const MetroRailtrackGPSRepository_1 = require("../../ropid-gtfs/workers/railtrack/tasks/data-access/MetroRailtrackGPSRepository");
|
|
6
5
|
const DescriptorRepository_1 = require("../workers/vehicle-descriptors/data-access/DescriptorRepository");
|
|
7
6
|
const DescriptorDataSourceFactory_1 = require("../workers/vehicle-descriptors/datasources/DescriptorDataSourceFactory");
|
|
8
7
|
const SeznamAutobusuDataSourceProvider_1 = require("../workers/vehicle-descriptors/datasources/seznam-autobusu/SeznamAutobusuDataSourceProvider");
|
|
9
8
|
const DeleteDataTask_1 = require("../workers/vehicle-descriptors/tasks/DeleteDataTask");
|
|
10
9
|
const RefreshDescriptorsTask_1 = require("../workers/vehicle-descriptors/tasks/RefreshDescriptorsTask");
|
|
11
10
|
const DescriptorTransformation_1 = require("../workers/vehicle-descriptors/transformations/DescriptorTransformation");
|
|
12
|
-
const CachedMetroRailtrackLookup_1 = require("../workers/vehicle-positions/data-access/metro/CachedMetroRailtrackLookup");
|
|
13
|
-
const MetroShapePointsFixer_1 = require("../workers/vehicle-positions/helpers/metro/MetroShapePointsFixer");
|
|
14
11
|
const VPContainerToken_1 = require("./VPContainerToken");
|
|
15
12
|
//#region Initialization
|
|
16
13
|
const VPContainer = Di_1.PidContainer.createChildContainer();
|
|
@@ -22,15 +19,10 @@ VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.DescriptorData
|
|
|
22
19
|
//#endregion
|
|
23
20
|
//#region Repositories
|
|
24
21
|
VPContainer.register(VPContainerToken_1.VPContainerToken.DescriptorRepository, DescriptorRepository_1.DescriptorRepository);
|
|
25
|
-
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.MetroRailtrackGPSRepository, MetroRailtrackGPSRepository_1.MetroRailtrackGPSRepository);
|
|
26
|
-
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.CachedMetroRailTrackLookup, CachedMetroRailtrackLookup_1.CachedMetroRailTrackLookup);
|
|
27
22
|
//#endregion
|
|
28
23
|
//#region Transformations
|
|
29
24
|
VPContainer.register(VPContainerToken_1.VPContainerToken.DescriptorTransformation, DescriptorTransformation_1.DescriptorTransformation);
|
|
30
25
|
//#endregion
|
|
31
|
-
//#region Helpers
|
|
32
|
-
VPContainer.register(VPContainerToken_1.VPContainerToken.MetroShapePointsFixer, MetroShapePointsFixer_1.MetroShapePointsFixer);
|
|
33
|
-
//#endregion
|
|
34
26
|
//#region Tasks
|
|
35
27
|
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RefreshDescriptorsTask, RefreshDescriptorsTask_1.RefreshDescriptorsTask);
|
|
36
28
|
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.DeleteDataTask, DeleteDataTask_1.DeleteDataTask);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAE1C,0GAAuG;AACvG,wHAAqH;AACrH,kJAA+I;AAC/I,wFAAqF;AACrF,wGAAqG;AACrG,sHAAmH;AACnH,yDAAsD;AAEtD,wBAAwB;AACxB,MAAM,WAAW,GAAwB,iBAAY,CAAC,oBAAoB,EAAE,CAAC;AAqBpE,kCAAW;AApBpB,YAAY;AAEZ,qBAAqB;AACrB,WAAW,CAAC,QAAQ,CAAC,mCAAgB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;AAC1G,WAAW,CAAC,iBAAiB,CAAC,mCAAgB,CAAC,2BAA2B,EAAE,yDAA2B,CAAC,CAAC;AACzG,YAAY;AAEZ,sBAAsB;AACtB,WAAW,CAAC,QAAQ,CAAC,mCAAgB,CAAC,oBAAoB,EAAE,2CAAoB,CAAC,CAAC;AAClF,YAAY;AAEZ,yBAAyB;AACzB,WAAW,CAAC,QAAQ,CAAC,mCAAgB,CAAC,wBAAwB,EAAE,mDAAwB,CAAC,CAAC;AAC1F,YAAY;AAEZ,eAAe;AACf,WAAW,CAAC,iBAAiB,CAAC,mCAAgB,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC;AAC/F,WAAW,CAAC,iBAAiB,CAAC,mCAAgB,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC"}
|
|
@@ -5,8 +5,5 @@ declare const VPContainerToken: {
|
|
|
5
5
|
DescriptorTransformation: symbol;
|
|
6
6
|
RefreshDescriptorsTask: symbol;
|
|
7
7
|
DeleteDataTask: symbol;
|
|
8
|
-
MetroRailtrackGPSRepository: symbol;
|
|
9
|
-
CachedMetroRailTrackLookup: symbol;
|
|
10
|
-
MetroShapePointsFixer: symbol;
|
|
11
8
|
};
|
|
12
9
|
export { VPContainerToken };
|
|
@@ -10,15 +10,6 @@ const VPContainerToken = {
|
|
|
10
10
|
RefreshDescriptorsTask: Symbol(),
|
|
11
11
|
DeleteDataTask: Symbol(),
|
|
12
12
|
//#endregion
|
|
13
|
-
//#region Vehicle Positions
|
|
14
|
-
//#region DataAccess
|
|
15
|
-
MetroRailtrackGPSRepository: Symbol(),
|
|
16
|
-
CachedMetroRailTrackLookup: Symbol(),
|
|
17
|
-
//#endregion
|
|
18
|
-
//#region Helpers
|
|
19
|
-
MetroShapePointsFixer: Symbol(),
|
|
20
|
-
//#endregion
|
|
21
|
-
//#endregion
|
|
22
13
|
};
|
|
23
14
|
exports.VPContainerToken = VPContainerToken;
|
|
24
15
|
//# sourceMappingURL=VPContainerToken.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VPContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/VPContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,gBAAgB,GAAG;IACrB,6BAA6B;IAC7B,gCAAgC,EAAE,MAAM,EAAE;IAC1C,2BAA2B,EAAE,MAAM,EAAE;IACrC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,wBAAwB,EAAE,MAAM,EAAE;IAClC,sBAAsB,EAAE,MAAM,EAAE;IAChC,cAAc,EAAE,MAAM,EAAE;IACxB,YAAY;
|
|
1
|
+
{"version":3,"file":"VPContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/ioc/VPContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,gBAAgB,GAAG;IACrB,6BAA6B;IAC7B,gCAAgC,EAAE,MAAM,EAAE;IAC1C,2BAA2B,EAAE,MAAM,EAAE;IACrC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,wBAAwB,EAAE,MAAM,EAAE;IAClC,sBAAsB,EAAE,MAAM,EAAE;IAChC,cAAc,EAAE,MAAM,EAAE;IACxB,YAAY;CACf,CAAC;AAEO,4CAAgB"}
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/MetroRouteHelper.d.ts
CHANGED
|
@@ -4,8 +4,5 @@ export declare enum MetroRouteName {
|
|
|
4
4
|
LINE_C = "C"
|
|
5
5
|
}
|
|
6
6
|
export declare class MetroRouteHelper {
|
|
7
|
-
private static tripToRouteMetroMap;
|
|
8
7
|
static getRouteId(routeName: MetroRouteName | string): string | undefined;
|
|
9
|
-
static getTripRouteMap(): Record<string, string>;
|
|
10
|
-
static getRouteName(tripId: string): string;
|
|
11
8
|
}
|
|
@@ -16,18 +16,6 @@ class MetroRouteHelper {
|
|
|
16
16
|
static getRouteId(routeName) {
|
|
17
17
|
return metroRouteId[routeName];
|
|
18
18
|
}
|
|
19
|
-
static getTripRouteMap() {
|
|
20
|
-
if (!this.tripToRouteMetroMap) {
|
|
21
|
-
this.tripToRouteMetroMap = {};
|
|
22
|
-
for (const routeName of Object.values(MetroRouteName)) {
|
|
23
|
-
this.tripToRouteMetroMap[`${MetroRouteHelper.getRouteId(routeName)}`] = routeName.toString();
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return this.tripToRouteMetroMap;
|
|
27
|
-
}
|
|
28
|
-
static getRouteName(tripId) {
|
|
29
|
-
return this.getTripRouteMap()[tripId.substring(0, 3)];
|
|
30
|
-
}
|
|
31
19
|
}
|
|
32
20
|
exports.MetroRouteHelper = MetroRouteHelper;
|
|
33
21
|
//# sourceMappingURL=MetroRouteHelper.js.map
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/MetroRouteHelper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetroRouteHelper.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/MetroRouteHelper.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,8BAAY,CAAA;IACZ,8BAAY,CAAA;IACZ,8BAAY,CAAA;AAChB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAED,MAAM,YAAY,GAAwD;IACtE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK;IAC9B,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK;IAC9B,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK;CACjC,CAAC;AAEF,MAAa,gBAAgB;
|
|
1
|
+
{"version":3,"file":"MetroRouteHelper.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/MetroRouteHelper.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,8BAAY,CAAA;IACZ,8BAAY,CAAA;IACZ,8BAAY,CAAA;AAChB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAED,MAAM,YAAY,GAAwD;IACtE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK;IAC9B,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK;IAC9B,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK;CACjC,CAAC;AAEF,MAAa,gBAAgB;IAClB,MAAM,CAAC,UAAU,CAAC,SAAkC;QACvD,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;CACJ;AAJD,4CAIC"}
|
|
@@ -34,7 +34,7 @@ export declare class PositionsRepository extends PostgresModel implements IModel
|
|
|
34
34
|
getPositionsForUpdateDelay: (tripIds: string[]) => Promise<ITripPositions[]>;
|
|
35
35
|
bulkUpdate: (data: any[]) => Promise<any>;
|
|
36
36
|
upsertCommonRunPosition: ({ run, run_message }: IUpdateRunsGtfsTripInput, gtfsTrip: IScheduleDto, isCurrent?: boolean) => Promise<any>;
|
|
37
|
-
upsertMetroRunPosition: (runInput: IMetroRunInputForProcessing, gtfsTrip: IScheduleDto, isCurrent?: boolean) => Promise<
|
|
37
|
+
upsertMetroRunPosition: (runInput: IMetroRunInputForProcessing, gtfsTrip: IScheduleDto, isCurrent?: boolean) => Promise<any>;
|
|
38
38
|
deleteNHoursOldData: (hours: number) => Promise<number>;
|
|
39
39
|
createNotPublic: (positionDto: Partial<IPositionDto>) => Promise<PositionDto>;
|
|
40
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PositionsRepository.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PositionsRepository.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,9 +71,6 @@ export default class PositionsManager {
|
|
|
71
71
|
* @returns {number} - Result delay in seconds, can be negative for trip ahead
|
|
72
72
|
*/
|
|
73
73
|
private static getCorrectedTimeDelay;
|
|
74
|
-
private static handleContext;
|
|
75
|
-
private static handleNotTracking;
|
|
76
|
-
private static handleTracking;
|
|
77
74
|
/**
|
|
78
75
|
* Get delay in seconds for positions before track to ensure correct delay propagation
|
|
79
76
|
*/
|
|
@@ -46,107 +46,6 @@ const PositionHandlerEnum_1 = require("./PositionHandlerEnum");
|
|
|
46
46
|
const ValidToCalculator_1 = __importDefault(require("./ValidToCalculator"));
|
|
47
47
|
const ComputeDelayHelper_1 = __importDefault(require("./compute-positions/ComputeDelayHelper"));
|
|
48
48
|
class PositionsManager {
|
|
49
|
-
static handleContext(context, positionToUpdate, position, gtfsRouteType) {
|
|
50
|
-
context.isLastPositionAfterTrack =
|
|
51
|
-
(positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) === const_1.StatePositionEnum.AFTER_TRACK ||
|
|
52
|
-
position.state_position === const_1.StatePositionEnum.AFTER_TRACK;
|
|
53
|
-
// set last known BEFORE_TRACK_DELAYED position
|
|
54
|
-
if (position.state_position === const_1.StatePositionEnum.BEFORE_TRACK_DELAYED) {
|
|
55
|
-
context.lastPositionBeforeTrackDelayed = {
|
|
56
|
-
delay: position.delay,
|
|
57
|
-
origin_timestamp: position.origin_timestamp.getTime(),
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
// set last position tracking (only for at_stop and on_track)
|
|
61
|
-
if ((positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) === const_1.StatePositionEnum.AT_STOP ||
|
|
62
|
-
(positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) === const_1.StatePositionEnum.ON_TRACK ||
|
|
63
|
-
position.state_position === const_1.StatePositionEnum.AT_STOP ||
|
|
64
|
-
position.state_position === const_1.StatePositionEnum.ON_TRACK) {
|
|
65
|
-
context.lastPositionTracking = turf.point([position.lng, position.lat], Object.assign(Object.assign({}, position), positionToUpdate));
|
|
66
|
-
}
|
|
67
|
-
// set new first position at stop streak if this stop seqence is set and it is not same as before
|
|
68
|
-
if (positionToUpdate
|
|
69
|
-
? positionToUpdate.this_stop_sequence &&
|
|
70
|
-
context.atStopStreak.stop_sequence !== positionToUpdate.this_stop_sequence
|
|
71
|
-
: position.this_stop_sequence && context.atStopStreak.stop_sequence !== position.this_stop_sequence) {
|
|
72
|
-
context.atStopStreak.stop_sequence = positionToUpdate
|
|
73
|
-
? positionToUpdate.this_stop_sequence
|
|
74
|
-
: position.this_stop_sequence;
|
|
75
|
-
context.atStopStreak.firstPositionTimestamp = position.origin_timestamp.getTime();
|
|
76
|
-
context.atStopStreak.firstPositionDelay = positionToUpdate ? positionToUpdate.delay : position.delay;
|
|
77
|
-
}
|
|
78
|
-
// IF currently valid updated position / position was processed before
|
|
79
|
-
// and it is NOT AT_STOP
|
|
80
|
-
// then disrupt atStopStreak
|
|
81
|
-
if (positionToUpdate &&
|
|
82
|
-
positionToUpdate.state_position !== const_1.StatePositionEnum.MISMATCHED &&
|
|
83
|
-
!positionToUpdate.this_stop_sequence) {
|
|
84
|
-
context.atStopStreak.stop_sequence = null;
|
|
85
|
-
}
|
|
86
|
-
else if (!positionToUpdate && !position.this_stop_sequence) {
|
|
87
|
-
context.atStopStreak.stop_sequence = null;
|
|
88
|
-
}
|
|
89
|
-
// duplicated or mismatched position should not be considered at all
|
|
90
|
-
if ((positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) !== const_1.StatePositionEnum.DUPLICATE &&
|
|
91
|
-
(positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) !== const_1.StatePositionEnum.INVISIBLE &&
|
|
92
|
-
(positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) !== const_1.StatePositionEnum.MISMATCHED) {
|
|
93
|
-
context.lastPositionId = position.id;
|
|
94
|
-
context.lastPositionCanceled = position.is_canceled;
|
|
95
|
-
context.lastPositionOriginTimestamp = position.origin_timestamp.getTime();
|
|
96
|
-
ComputeDelayHelper_1.default.updateContext(context, positionToUpdate, position, gtfsRouteType);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
static handleNotTracking(tripPositions, context, position, startTimestamp, schedule, positionToUpdate, startDayTimestamp, gtfsRouteType) {
|
|
100
|
-
const firstShapesAnchorPoint = tripPositions.gtfsData.shapes_anchor_points[0];
|
|
101
|
-
if (context.lastPositionTracking === null) {
|
|
102
|
-
const firstStopTime = tripPositions.gtfsData.stop_times[0];
|
|
103
|
-
// if there is propagated delay we can use it for new position
|
|
104
|
-
const lastPositionDelayed = context.lastPositionBeforeTrackDelayed;
|
|
105
|
-
// if there is no delay to duplicate and DPP trip is far from start then invisible
|
|
106
|
-
const setAsInvisible = !lastPositionDelayed &&
|
|
107
|
-
DPPUtils_1.default.isInvisible(tripPositions.agency_name_scheduled, position.origin_timestamp, startTimestamp, [position.lng, position.lat], firstShapesAnchorPoint.coordinates, schedule, tripPositions.gtfs_trip_id, context.lastPositionTracking, position.tracking);
|
|
108
|
-
positionToUpdate = Object.assign({ id: position.id, next_stop_arrival_time: new Date(startDayTimestamp + firstStopTime.arrival_time_seconds * 1000), next_stop_departure_time: new Date(startDayTimestamp + firstStopTime.departure_time_seconds * 1000), next_stop_id: firstStopTime.stop_id, next_stop_sequence: firstStopTime.stop_sequence, next_stop_name: firstStopTime.stop.stop_name, shape_dist_traveled: firstStopTime.shape_dist_traveled, state_position: setAsInvisible ? const_1.StatePositionEnum.INVISIBLE : const_1.StatePositionEnum.BEFORE_TRACK, state_process: const_1.StateProcessEnum.PROCESSED }, (firstStopTime.stop_headsign && {
|
|
109
|
-
last_stop_headsign: firstStopTime.stop_headsign,
|
|
110
|
-
}));
|
|
111
|
-
if (positionToUpdate.state_position === const_1.StatePositionEnum.BEFORE_TRACK) {
|
|
112
|
-
positionToUpdate.delay = this.getDelayBeforeTrack(lastPositionDelayed === null || lastPositionDelayed === void 0 ? void 0 : lastPositionDelayed.delay, firstStopTime.departure_time_seconds, position.origin_timestamp.getTime(), startDayTimestamp);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
// if there is tracking 2 position with same origin_timestamp then this position is duplicate
|
|
117
|
-
const statePosition = position.origin_timestamp.getTime() === context.lastPositionOriginTimestamp ||
|
|
118
|
-
tripPositions.positions.findIndex((positionItem) => positionItem.origin_timestamp.getTime() === position.origin_timestamp.getTime() &&
|
|
119
|
-
positionItem.tracking === const_1.PositionTrackingEnum.TRACKING) >= 0
|
|
120
|
-
? const_1.StatePositionEnum.DUPLICATE
|
|
121
|
-
: const_1.StatePositionEnum.AFTER_TRACK;
|
|
122
|
-
const lastShapesAnchorPoint = tripPositions.gtfsData.shapes_anchor_points[tripPositions.gtfsData.shapes_anchor_points.length - 1];
|
|
123
|
-
const lastStopTime = tripPositions.gtfsData.stop_times[tripPositions.gtfsData.stop_times.length - 1];
|
|
124
|
-
// set as invisible if there are some AFTER_TRACK before
|
|
125
|
-
const setAsInvisible = DPPUtils_1.default.isInvisible(tripPositions.agency_name_scheduled, position.origin_timestamp, startTimestamp, [position.lng, position.lat], firstShapesAnchorPoint.coordinates, schedule, tripPositions.gtfs_trip_id, context.lastPositionTracking, position.tracking) && statePosition === const_1.StatePositionEnum.AFTER_TRACK;
|
|
126
|
-
positionToUpdate = Object.assign({ id: position.id, last_stop_arrival_time: new Date(startDayTimestamp + lastShapesAnchorPoint.time_scheduled_seconds * 1000), last_stop_departure_time: new Date(startDayTimestamp + lastShapesAnchorPoint.time_scheduled_seconds * 1000), last_stop_id: lastStopTime.stop_id, last_stop_sequence: lastShapesAnchorPoint.last_stop_sequence, shape_dist_traveled: lastShapesAnchorPoint.shape_dist_traveled, state_position: setAsInvisible ? const_1.StatePositionEnum.INVISIBLE : statePosition, state_process: const_1.StateProcessEnum.PROCESSED }, (lastStopTime.stop_headsign && {
|
|
127
|
-
last_stop_headsign: lastStopTime.stop_headsign,
|
|
128
|
-
}));
|
|
129
|
-
positionToUpdate = ComputeDelayHelper_1.default.updatePositionToUpdate(context, positionToUpdate, position, gtfsRouteType);
|
|
130
|
-
}
|
|
131
|
-
return positionToUpdate;
|
|
132
|
-
}
|
|
133
|
-
static handleTracking(position, positionToUpdate, tripPositions, context, startDayTimestamp, endTimestamp, gtfsRouteType) {
|
|
134
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
135
|
-
const currentPosition = turf.point([position.lng, position.lat], {
|
|
136
|
-
id: position.id,
|
|
137
|
-
origin_time: position.origin_time,
|
|
138
|
-
origin_timestamp: position.origin_timestamp,
|
|
139
|
-
scheduled_timestamp: position.scheduled_timestamp,
|
|
140
|
-
this_stop_id: position.this_stop_id,
|
|
141
|
-
tcp_event: position.tcp_event,
|
|
142
|
-
});
|
|
143
|
-
positionToUpdate = yield this.getEstimatedPoint(tripPositions.gtfsData, currentPosition, context, startDayTimestamp, endTimestamp, tripPositions.gtfs_route_type);
|
|
144
|
-
if (positionToUpdate.state_position !== const_1.StatePositionEnum.MISMATCHED) {
|
|
145
|
-
positionToUpdate = ComputeDelayHelper_1.default.updatePositionToUpdate(context, positionToUpdate, position, gtfsRouteType);
|
|
146
|
-
}
|
|
147
|
-
return positionToUpdate;
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
49
|
/**
|
|
151
50
|
* Get delay in seconds for positions before track to ensure correct delay propagation
|
|
152
51
|
*/
|
|
@@ -159,17 +58,34 @@ class PositionsManager {
|
|
|
159
58
|
return Math.max(lastPositionDelay, positionOriginTimeInSeconds - departureTimeInSeconds);
|
|
160
59
|
}
|
|
161
60
|
static getStateAndStopSequences(gtfsRouteType, tripStopTimes, thisClosestPoint, positionProperties, context) {
|
|
162
|
-
var _b;
|
|
61
|
+
var _b, _c, _d;
|
|
163
62
|
let statePosition = thisClosestPoint.this_stop_sequence ? const_1.StatePositionEnum.AT_STOP : const_1.StatePositionEnum.ON_TRACK;
|
|
164
63
|
let thisStopSequence = thisClosestPoint.this_stop_sequence;
|
|
165
64
|
let lastStopSequence = thisClosestPoint.last_stop_sequence;
|
|
166
65
|
let nextStopSequence = thisClosestPoint.next_stop_sequence;
|
|
66
|
+
if (gtfsRouteType === RouteTypeEnums_1.GTFSRouteTypeEnum.METRO) {
|
|
67
|
+
thisStopSequence = null;
|
|
68
|
+
if (positionProperties.this_stop_id) {
|
|
69
|
+
const thisStopTime = tripStopTimes.find((stopTime) => stopTime.stop_id === positionProperties.this_stop_id);
|
|
70
|
+
if (thisStopTime) {
|
|
71
|
+
statePosition = const_1.StatePositionEnum.AT_STOP;
|
|
72
|
+
thisStopSequence = thisStopTime.stop_sequence;
|
|
73
|
+
lastStopSequence = thisStopSequence;
|
|
74
|
+
nextStopSequence = Math.min(tripStopTimes.length, thisStopSequence + 1);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (thisStopSequence === null) {
|
|
78
|
+
statePosition = const_1.StatePositionEnum.ON_TRACK;
|
|
79
|
+
if (context === null || context === void 0 ? void 0 : context.lastPositionTracking) {
|
|
80
|
+
lastStopSequence = (_b = context.lastPositionTracking.properties.last_stop_sequence) !== null && _b !== void 0 ? _b : lastStopSequence;
|
|
81
|
+
nextStopSequence = (_c = context.lastPositionTracking.properties.next_stop_sequence) !== null && _c !== void 0 ? _c : nextStopSequence;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
167
85
|
// if current positions's TCP event is 'T' and previous position is tracked
|
|
168
|
-
if (
|
|
169
|
-
positionProperties.tcp_event === const_1.TCPEventEnum.TIME &&
|
|
170
|
-
(context === null || context === void 0 ? void 0 : context.lastPositionTracking)) {
|
|
86
|
+
else if (positionProperties.tcp_event === const_1.TCPEventEnum.TIME && (context === null || context === void 0 ? void 0 : context.lastPositionTracking)) {
|
|
171
87
|
const previousPositionTcpEvent = context.lastPositionTracking.properties.tcp_event;
|
|
172
|
-
const previousLastStopSequence = (
|
|
88
|
+
const previousLastStopSequence = (_d = context.lastPositionTracking.properties.last_stop_sequence) !== null && _d !== void 0 ? _d : 0;
|
|
173
89
|
// if previous position was 'P' and current last stop sequence is lower than the previous last stop sequence
|
|
174
90
|
// or if previous position was 'O', current position is at stop
|
|
175
91
|
// and current last stop sequence is lower than the previous last stop sequence
|
|
@@ -229,8 +145,10 @@ PositionsManager.computePositions = (tripPositions, schedule) => __awaiter(void
|
|
|
229
145
|
const startTimestamp = tripPositions.start_timestamp.getTime();
|
|
230
146
|
const endTimestamp = (_c = (_b = tripPositions.end_timestamp) === null || _b === void 0 ? void 0 : _b.getTime()) !== null && _c !== void 0 ? _c : 0;
|
|
231
147
|
const startDayTimestamp = _a.getStartDayTimestamp(startTimestamp, tripPositions.gtfsData.shapes_anchor_points[0].time_scheduled_seconds);
|
|
148
|
+
const gtfsRouteType = tripPositions.gtfs_route_type;
|
|
232
149
|
const context = PositionsManager.getCurrentContext(tripPositions);
|
|
233
|
-
|
|
150
|
+
const computedPositions = [];
|
|
151
|
+
return PositionsManager.updatePositions({ tripPositions, startTimestamp, endTimestamp, startDayTimestamp, context, computedPositions, gtfsRouteType }, schedule);
|
|
234
152
|
});
|
|
235
153
|
/**
|
|
236
154
|
* Takes position one by one, set proper handler for type of position, and do the process of position
|
|
@@ -241,20 +159,59 @@ PositionsManager.computePositions = (tripPositions, schedule) => __awaiter(void
|
|
|
241
159
|
* @returns {void} - void
|
|
242
160
|
*/
|
|
243
161
|
PositionsManager.updatePositions = (options, schedule) => __awaiter(void 0, void 0, void 0, function* () {
|
|
244
|
-
const computedPositions =
|
|
245
|
-
const { tripPositions, startDayTimestamp, startTimestamp, endTimestamp, context } = options;
|
|
246
|
-
const gtfsRouteType = tripPositions.gtfs_route_type;
|
|
162
|
+
const { tripPositions, startDayTimestamp, startTimestamp, endTimestamp, context, computedPositions, gtfsRouteType } = options;
|
|
247
163
|
for (let i = 0; i < tripPositions.positions.length; i++) {
|
|
248
164
|
const position = tripPositions.positions[i];
|
|
249
165
|
let positionToUpdate = null;
|
|
250
166
|
// situations
|
|
251
167
|
switch (_a.setPositionUpdateHandler(position)) {
|
|
252
168
|
case PositionHandlerEnum_1.PositionHandlerEnum.TRACKING:
|
|
253
|
-
|
|
169
|
+
const currentPosition = turf.point([position.lng, position.lat], {
|
|
170
|
+
id: position.id,
|
|
171
|
+
origin_time: position.origin_time,
|
|
172
|
+
origin_timestamp: position.origin_timestamp,
|
|
173
|
+
scheduled_timestamp: position.scheduled_timestamp,
|
|
174
|
+
this_stop_id: position.this_stop_id,
|
|
175
|
+
tcp_event: position.tcp_event,
|
|
176
|
+
});
|
|
177
|
+
positionToUpdate = yield _a.getEstimatedPoint(tripPositions.gtfsData, currentPosition, context, startDayTimestamp, endTimestamp, tripPositions.gtfs_route_type);
|
|
178
|
+
if (positionToUpdate.state_position !== const_1.StatePositionEnum.MISMATCHED) {
|
|
179
|
+
positionToUpdate = ComputeDelayHelper_1.default.updatePositionToUpdate(context, positionToUpdate, position, gtfsRouteType);
|
|
180
|
+
}
|
|
254
181
|
break;
|
|
255
182
|
case PositionHandlerEnum_1.PositionHandlerEnum.NOT_TRACKING:
|
|
256
183
|
// if there is no previous positions with tracking status, set position as before_track
|
|
257
|
-
|
|
184
|
+
const firstShapesAnchorPoint = tripPositions.gtfsData.shapes_anchor_points[0];
|
|
185
|
+
if (context.lastPositionTracking === null) {
|
|
186
|
+
const firstStopTime = tripPositions.gtfsData.stop_times[0];
|
|
187
|
+
// if there is propagated delay we can use it for new position
|
|
188
|
+
const lastPositionDelayed = context.lastPositionBeforeTrackDelayed;
|
|
189
|
+
// if there is no delay to duplicate and DPP trip is far from start then invisible
|
|
190
|
+
const setAsInvisible = !lastPositionDelayed &&
|
|
191
|
+
DPPUtils_1.default.isInvisible(tripPositions.agency_name_scheduled, position.origin_timestamp, startTimestamp, [position.lng, position.lat], firstShapesAnchorPoint.coordinates, schedule, tripPositions.gtfs_trip_id, context.lastPositionTracking, position.tracking);
|
|
192
|
+
positionToUpdate = Object.assign({ id: position.id, next_stop_arrival_time: new Date(startDayTimestamp + firstStopTime.arrival_time_seconds * 1000), next_stop_departure_time: new Date(startDayTimestamp + firstStopTime.departure_time_seconds * 1000), next_stop_id: firstStopTime.stop_id, next_stop_sequence: firstStopTime.stop_sequence, next_stop_name: firstStopTime.stop.stop_name, shape_dist_traveled: firstStopTime.shape_dist_traveled, state_position: setAsInvisible ? const_1.StatePositionEnum.INVISIBLE : const_1.StatePositionEnum.BEFORE_TRACK, state_process: const_1.StateProcessEnum.PROCESSED }, (firstStopTime.stop_headsign && {
|
|
193
|
+
last_stop_headsign: firstStopTime.stop_headsign,
|
|
194
|
+
}));
|
|
195
|
+
if (positionToUpdate.state_position === const_1.StatePositionEnum.BEFORE_TRACK) {
|
|
196
|
+
positionToUpdate.delay = _a.getDelayBeforeTrack(lastPositionDelayed === null || lastPositionDelayed === void 0 ? void 0 : lastPositionDelayed.delay, firstStopTime.departure_time_seconds, position.origin_timestamp.getTime(), startDayTimestamp);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
// if there is tracking 2 position with same origin_timestamp then this position is duplicate
|
|
201
|
+
const statePosition = position.origin_timestamp.getTime() === context.lastPositionOriginTimestamp ||
|
|
202
|
+
tripPositions.positions.findIndex((positionItem) => positionItem.origin_timestamp.getTime() === position.origin_timestamp.getTime() &&
|
|
203
|
+
positionItem.tracking === const_1.PositionTrackingEnum.TRACKING) >= 0
|
|
204
|
+
? const_1.StatePositionEnum.DUPLICATE
|
|
205
|
+
: const_1.StatePositionEnum.AFTER_TRACK;
|
|
206
|
+
const lastShapesAnchorPoint = tripPositions.gtfsData.shapes_anchor_points[tripPositions.gtfsData.shapes_anchor_points.length - 1];
|
|
207
|
+
const lastStopTime = tripPositions.gtfsData.stop_times[tripPositions.gtfsData.stop_times.length - 1];
|
|
208
|
+
// set as invisible if there are some AFTER_TRACK before
|
|
209
|
+
const setAsInvisible = DPPUtils_1.default.isInvisible(tripPositions.agency_name_scheduled, position.origin_timestamp, startTimestamp, [position.lng, position.lat], firstShapesAnchorPoint.coordinates, schedule, tripPositions.gtfs_trip_id, context.lastPositionTracking, position.tracking) && statePosition === const_1.StatePositionEnum.AFTER_TRACK;
|
|
210
|
+
positionToUpdate = Object.assign({ id: position.id, last_stop_arrival_time: new Date(startDayTimestamp + lastShapesAnchorPoint.time_scheduled_seconds * 1000), last_stop_departure_time: new Date(startDayTimestamp + lastShapesAnchorPoint.time_scheduled_seconds * 1000), last_stop_id: lastStopTime.stop_id, last_stop_sequence: lastShapesAnchorPoint.last_stop_sequence, shape_dist_traveled: lastShapesAnchorPoint.shape_dist_traveled, state_position: setAsInvisible ? const_1.StatePositionEnum.INVISIBLE : statePosition, state_process: const_1.StateProcessEnum.PROCESSED }, (lastStopTime.stop_headsign && {
|
|
211
|
+
last_stop_headsign: lastStopTime.stop_headsign,
|
|
212
|
+
}));
|
|
213
|
+
positionToUpdate = ComputeDelayHelper_1.default.updatePositionToUpdate(context, positionToUpdate, position, gtfsRouteType);
|
|
214
|
+
}
|
|
258
215
|
break;
|
|
259
216
|
case PositionHandlerEnum_1.PositionHandlerEnum.CANCELED:
|
|
260
217
|
positionToUpdate = {
|
|
@@ -274,7 +231,54 @@ PositionsManager.updatePositions = (options, schedule) => __awaiter(void 0, void
|
|
|
274
231
|
computedPositions.push(positionToUpdate);
|
|
275
232
|
}
|
|
276
233
|
// set if last position is AFTER_TRACK
|
|
277
|
-
|
|
234
|
+
context.isLastPositionAfterTrack =
|
|
235
|
+
(positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) === const_1.StatePositionEnum.AFTER_TRACK ||
|
|
236
|
+
position.state_position === const_1.StatePositionEnum.AFTER_TRACK;
|
|
237
|
+
// set last known BEFORE_TRACK_DELAYED position
|
|
238
|
+
if (position.state_position === const_1.StatePositionEnum.BEFORE_TRACK_DELAYED) {
|
|
239
|
+
context.lastPositionBeforeTrackDelayed = {
|
|
240
|
+
delay: position.delay,
|
|
241
|
+
origin_timestamp: position.origin_timestamp.getTime(),
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
// set last position tracking (only for at_stop and on_track)
|
|
245
|
+
if ((positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) === const_1.StatePositionEnum.AT_STOP ||
|
|
246
|
+
(positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) === const_1.StatePositionEnum.ON_TRACK ||
|
|
247
|
+
position.state_position === const_1.StatePositionEnum.AT_STOP ||
|
|
248
|
+
position.state_position === const_1.StatePositionEnum.ON_TRACK) {
|
|
249
|
+
context.lastPositionTracking = turf.point([position.lng, position.lat], Object.assign(Object.assign({}, position), positionToUpdate));
|
|
250
|
+
}
|
|
251
|
+
// set new first position at stop streak if this stop seqence is set and it is not same as before
|
|
252
|
+
if (positionToUpdate
|
|
253
|
+
? positionToUpdate.this_stop_sequence &&
|
|
254
|
+
context.atStopStreak.stop_sequence !== positionToUpdate.this_stop_sequence
|
|
255
|
+
: position.this_stop_sequence && context.atStopStreak.stop_sequence !== position.this_stop_sequence) {
|
|
256
|
+
context.atStopStreak.stop_sequence = positionToUpdate
|
|
257
|
+
? positionToUpdate.this_stop_sequence
|
|
258
|
+
: position.this_stop_sequence;
|
|
259
|
+
context.atStopStreak.firstPositionTimestamp = position.origin_timestamp.getTime();
|
|
260
|
+
context.atStopStreak.firstPositionDelay = positionToUpdate ? positionToUpdate.delay : position.delay;
|
|
261
|
+
}
|
|
262
|
+
// IF currently valid updated position / position was processed before
|
|
263
|
+
// and it is NOT AT_STOP
|
|
264
|
+
// then disrupt atStopStreak
|
|
265
|
+
if (positionToUpdate &&
|
|
266
|
+
positionToUpdate.state_position !== const_1.StatePositionEnum.MISMATCHED &&
|
|
267
|
+
!positionToUpdate.this_stop_sequence) {
|
|
268
|
+
context.atStopStreak.stop_sequence = null;
|
|
269
|
+
}
|
|
270
|
+
else if (!positionToUpdate && !position.this_stop_sequence) {
|
|
271
|
+
context.atStopStreak.stop_sequence = null;
|
|
272
|
+
}
|
|
273
|
+
// duplicated or mismatched position should not be considered at all
|
|
274
|
+
if ((positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) !== const_1.StatePositionEnum.DUPLICATE &&
|
|
275
|
+
(positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) !== const_1.StatePositionEnum.INVISIBLE &&
|
|
276
|
+
(positionToUpdate === null || positionToUpdate === void 0 ? void 0 : positionToUpdate.state_position) !== const_1.StatePositionEnum.MISMATCHED) {
|
|
277
|
+
context.lastPositionId = position.id;
|
|
278
|
+
context.lastPositionCanceled = position.is_canceled;
|
|
279
|
+
context.lastPositionOriginTimestamp = position.origin_timestamp.getTime();
|
|
280
|
+
ComputeDelayHelper_1.default.updateContext(context, positionToUpdate, position, gtfsRouteType);
|
|
281
|
+
}
|
|
278
282
|
}
|
|
279
283
|
return {
|
|
280
284
|
context,
|