@golemio/pid 2.14.3-dev.1365850939 → 2.14.3-dev.1366276343
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/redis/publicStopTimesMockWithWrongDelays.json +37 -0
- package/dist/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.d.ts +1 -0
- package/dist/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.js +27 -8
- package/dist/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"sequence": 1,
|
|
4
|
+
"arr_delay": 0,
|
|
5
|
+
"dep_delay": 0
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"sequence": 2,
|
|
9
|
+
"arr_delay": 130,
|
|
10
|
+
"dep_delay": 0
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"sequence": 3,
|
|
14
|
+
"arr_delay": 0,
|
|
15
|
+
"dep_delay": 0
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"sequence": 4,
|
|
19
|
+
"arr_delay": 120,
|
|
20
|
+
"dep_delay": 120
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"sequence": 5,
|
|
24
|
+
"arr_delay": 0,
|
|
25
|
+
"dep_delay": 0
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"sequence": 6,
|
|
29
|
+
"arr_delay": 80,
|
|
30
|
+
"dep_delay": 80
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"sequence": 7,
|
|
34
|
+
"arr_delay": 80,
|
|
35
|
+
"dep_delay": 0
|
|
36
|
+
}
|
|
37
|
+
]
|
|
@@ -10,4 +10,5 @@ export declare class StopTimesTripScopeHandler extends AbstractDetailedTripScope
|
|
|
10
10
|
constructor(delayComputationRepository: IDelayComputationRepository, stopTimeRepository: IStopTimeRepository);
|
|
11
11
|
handle(output: IPublicApiDetailedTrip, vehiclePosition: IPublicApiCacheDto): Promise<IPublicApiDetailedTrip>;
|
|
12
12
|
private filterNoStopWaypoints;
|
|
13
|
+
private checkStopTimesSequence;
|
|
13
14
|
}
|
package/dist/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.js
CHANGED
|
@@ -46,22 +46,28 @@ let StopTimesTripScopeHandler = exports.StopTimesTripScopeHandler = class StopTi
|
|
|
46
46
|
const stopTimes = this.tripStopTimesTransformation.transformArray(filteredStopTimes);
|
|
47
47
|
const stopTimesWithDelay = yield this.stopTimeRepository.getPublicStopTimeCache(vehiclePosition.vehicle_id, vehiclePosition.gtfs_trip_id);
|
|
48
48
|
if (stopTimesWithDelay.length > 0) {
|
|
49
|
+
let prevStopArrivalTime = null;
|
|
50
|
+
let prevStopDepartureTime = null;
|
|
49
51
|
for (const stopTimeWithDelay of stopTimesWithDelay) {
|
|
50
52
|
const stopTime = stopTimes[stopTimeWithDelay.sequence - 1];
|
|
51
53
|
if (stopTime) {
|
|
52
54
|
// note: optimization point here in case of worsening performance on output API (additional cache)
|
|
53
55
|
const rtArrivalTime = stopTimeWithDelay.arr_delay === null
|
|
54
56
|
? null
|
|
55
|
-
: luxon_1.DateTime.fromFormat(stopTime.properties.arrival_time, "HH:mm:ss")
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
: luxon_1.DateTime.fromFormat(stopTime.properties.arrival_time, "HH:mm:ss").plus({
|
|
58
|
+
seconds: stopTimeWithDelay.arr_delay,
|
|
59
|
+
});
|
|
58
60
|
const rtDepartureTime = stopTimeWithDelay.dep_delay === null
|
|
59
61
|
? null
|
|
60
|
-
: luxon_1.DateTime.fromFormat(stopTime.properties.departure_time, "HH:mm:ss")
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
: luxon_1.DateTime.fromFormat(stopTime.properties.departure_time, "HH:mm:ss").plus({
|
|
63
|
+
seconds: stopTimeWithDelay.dep_delay,
|
|
64
|
+
});
|
|
65
|
+
// note: for better performance, we should address this on the DB side in the future
|
|
66
|
+
const { currentArrival, currentDeparture } = this.checkStopTimesSequence(rtArrivalTime, prevStopArrivalTime, rtDepartureTime, prevStopDepartureTime);
|
|
67
|
+
prevStopArrivalTime = currentArrival;
|
|
68
|
+
prevStopDepartureTime = currentDeparture;
|
|
69
|
+
stopTime.properties.realtime_arrival_time = currentArrival ? currentArrival.toFormat("HH:mm:ss") : null;
|
|
70
|
+
stopTime.properties.realtime_departure_time = currentDeparture ? currentDeparture.toFormat("HH:mm:ss") : null;
|
|
65
71
|
}
|
|
66
72
|
}
|
|
67
73
|
}
|
|
@@ -72,6 +78,19 @@ let StopTimesTripScopeHandler = exports.StopTimesTripScopeHandler = class StopTi
|
|
|
72
78
|
filterNoStopWaypoints(stopTimes) {
|
|
73
79
|
return stopTimes.filter((stopTime) => !stopTime.is_no_stop_waypoint);
|
|
74
80
|
}
|
|
81
|
+
checkStopTimesSequence(rtArrival, prevArrival, rtDeparture, prevDeparture) {
|
|
82
|
+
const returnValue = {
|
|
83
|
+
currentArrival: rtArrival,
|
|
84
|
+
currentDeparture: rtDeparture,
|
|
85
|
+
};
|
|
86
|
+
if (rtArrival > rtDeparture || prevDeparture > rtDeparture || prevArrival > rtDeparture) {
|
|
87
|
+
returnValue.currentDeparture = null;
|
|
88
|
+
}
|
|
89
|
+
if (prevDeparture > rtArrival || prevArrival > rtArrival) {
|
|
90
|
+
returnValue.currentArrival = null;
|
|
91
|
+
}
|
|
92
|
+
return returnValue;
|
|
93
|
+
}
|
|
75
94
|
};
|
|
76
95
|
exports.StopTimesTripScopeHandler = StopTimesTripScopeHandler = __decorate([
|
|
77
96
|
(0, tsyringe_1.injectable)(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StopTimesTripScopeHandler.js","sourceRoot":"","sources":["../../../../../../../src/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMA,iEAA6D;AAC7D,6HAAoI;AAGpI,+DAAsF;AAEtF,6EAAwE;AACxE,2DAA2D;AAC3D,iEAAwE;AACxE,yFAAsF;AAG/E,IAAM,yBAAyB,uCAA/B,MAAM,yBAA0B,SAAQ,mEAAgC;IAG3E,YAC8D,0BAAuD,EACzD,kBAAuC;QAE/F,KAAK,EAAE,CAAC;QAHkD,+BAA0B,GAA1B,0BAA0B,CAA6B;QACzD,uBAAkB,GAAlB,kBAAkB,CAAqB;QAG/F,IAAI,CAAC,2BAA2B,GAAG,IAAI,yEAAmC,EAAE,CAAC;IACjF,CAAC;IAEY,MAAM,CAAC,MAA8B,EAAE,eAAmC;;YACnF,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,wBAAwB,CACxF,eAAe,CAAC,YAAY,CAC/B,CAAC;YAEF,IAAI,CAAC,qBAAqB,EAAE;gBACxB,MAAM,IAAI,6BAAY,CAAC,mCAAmC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;aACtG;YAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACvF,MAAM,SAAS,GAAG,IAAI,CAAC,2BAA2B,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAErF,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAC3E,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,YAAY,CAC/B,CAAC;YACF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE;oBAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,CAAC,QAAQ,GAAG,CAAC,CAGxD,CAAC;oBAEF,IAAI,QAAQ,EAAE;wBACV,kGAAkG;wBAClG,MAAM,aAAa,GACf,iBAAiB,CAAC,SAAS,KAAK,IAAI;4BAChC,CAAC,CAAC,IAAI;4BACN,CAAC,CAAC,gBAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC
|
|
1
|
+
{"version":3,"file":"StopTimesTripScopeHandler.js","sourceRoot":"","sources":["../../../../../../../src/output-gateway/public/service/helpers/trip-scope/strategy/StopTimesTripScopeHandler.ts"],"names":[],"mappings":"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"}
|