@golemio/pid 4.1.6-dev.2103093669 → 4.1.6-dev.2103951843
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/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.d.ts +5 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.js +288 -237
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.js.map +1 -1
- package/dist/output-gateway/pid/controllers/v3/V3InfotextsController.js +3 -2
- package/dist/output-gateway/pid/controllers/v3/V3InfotextsController.js.map +1 -1
- package/dist/output-gateway/pid/data-access/JISInfotextRepository.d.ts +4 -4
- package/dist/output-gateway/pid/data-access/JISInfotextRepository.js +12 -8
- package/dist/output-gateway/pid/data-access/JISInfotextRepository.js.map +1 -1
- package/dist/output-gateway/pid/routers/v3/V3PIDRouter.js +1 -1
- package/dist/output-gateway/pid/routers/v3/V3PIDRouter.js.map +1 -1
- package/dist/output-gateway/pid/service/facade/InfotextFacade.d.ts +1 -1
- package/dist/output-gateway/pid/service/facade/InfotextFacade.js +2 -2
- package/dist/output-gateway/pid/service/facade/InfotextFacade.js.map +1 -1
- package/docs/openapi-output.yaml +8 -0
- package/package.json +1 -1
|
@@ -12,7 +12,11 @@ export declare class DelayComputationManager {
|
|
|
12
12
|
* @param {string} tripId - Internal DB trip id
|
|
13
13
|
* @returns {IComputationTrip} - Result with shape anchor points
|
|
14
14
|
*/
|
|
15
|
-
getComputationObject
|
|
15
|
+
getComputationObject(tripId: string): Promise<IComputationTrip | null>;
|
|
16
|
+
private roundToDecimals;
|
|
17
|
+
private shouldReadCoordsFromPrevPrevPoint;
|
|
18
|
+
private setupBearingBetweenPoints;
|
|
19
|
+
private shapePointCompareDistance;
|
|
16
20
|
/**
|
|
17
21
|
* Return geometry of anchor points with distance from start along trip track shape
|
|
18
22
|
*
|
|
@@ -34,257 +34,308 @@ class DelayComputationManager {
|
|
|
34
34
|
constructor(gtfsTripsRepository) {
|
|
35
35
|
this.gtfsTripsRepository = gtfsTripsRepository;
|
|
36
36
|
this.METRO_TRIP_PREFIX_REGEX = /^(991|992|993)/;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
37
|
+
const simpleConfig = ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.SimpleConfig);
|
|
38
|
+
this.stepBetweenPoints = config_1.config.vehiclePositions.stepBetweenPoints;
|
|
39
|
+
this.stepBetweenPointsforMetro = Number(simpleConfig.getValue("module.pid.vehicle-positions.shapes.metro.stepBetweenPointsForMetro", "0.05"));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Return shape anchor points along trip track shape with stop times parameters
|
|
43
|
+
*
|
|
44
|
+
* @param {string} tripId - Internal DB trip id
|
|
45
|
+
* @returns {IComputationTrip} - Result with shape anchor points
|
|
46
|
+
*/
|
|
47
|
+
async getComputationObject(tripId) {
|
|
48
|
+
const gtfsTrip = await this.gtfsTripsRepository.findByIdForDelayComputation(tripId);
|
|
49
|
+
if (!gtfsTrip) {
|
|
50
|
+
helpers_1.log.info(`getComputationObject: GTFS trip ${tripId} was not found`);
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const { shape_id, shapes, stop_times } = gtfsTrip;
|
|
54
|
+
if (!shapes?.length) {
|
|
55
|
+
throw new golemio_errors_1.GeneralError(`getComputationObject: GTFS trip ${tripId} has no shapes`, this.constructor.name);
|
|
56
|
+
}
|
|
57
|
+
else if (!stop_times?.length) {
|
|
58
|
+
throw new golemio_errors_1.GeneralError(`getComputationObject: GTFS trip ${tripId} has no stop_times`, this.constructor.name);
|
|
59
|
+
}
|
|
60
|
+
const isMetro = this.METRO_TRIP_PREFIX_REGEX.test(tripId);
|
|
61
|
+
const shapesGeometryAnchorPoints = this.getShapesGeometryAnchorPoints(shape_id, shapes, stop_times, isMetro);
|
|
62
|
+
// MAKING COPY
|
|
63
|
+
const shapePoints = [];
|
|
64
|
+
const lastPointIndex = shapesGeometryAnchorPoints.length - 1;
|
|
65
|
+
// const to determine shape points of stops (in meters)
|
|
66
|
+
const distanceBefore = 0.1;
|
|
67
|
+
const distanceAfter = 0.05;
|
|
68
|
+
for (let i = 0; i < shapesGeometryAnchorPoints.length; i++) {
|
|
69
|
+
const isLastPoint = i === lastPointIndex;
|
|
70
|
+
const bearing = this.setupBearingBetweenPoints(i, shapePoints, shapesGeometryAnchorPoints, isLastPoint);
|
|
71
|
+
// init values
|
|
72
|
+
let thisStopSequence = null;
|
|
73
|
+
let lastStopSequence = shapesGeometryAnchorPoints[i].last_stop_sequence;
|
|
74
|
+
let nextStopSequence = shapesGeometryAnchorPoints[i].next_stop_sequence;
|
|
75
|
+
// these are origin stop_times shape point fron shapes table, clearly at stops points
|
|
76
|
+
if (shapesGeometryAnchorPoints[i].this_stop_sequence) {
|
|
77
|
+
thisStopSequence = shapesGeometryAnchorPoints[i].this_stop_sequence;
|
|
48
78
|
}
|
|
49
|
-
|
|
50
|
-
if (
|
|
51
|
-
|
|
79
|
+
// if is shape anchor point in close distance AFTER LAST stop, then set it also AT STOP
|
|
80
|
+
else if (i > 0 &&
|
|
81
|
+
shapesGeometryAnchorPoints[i].shape_dist_traveled -
|
|
82
|
+
stop_times[shapesGeometryAnchorPoints[i].last_stop_sequence - 1].shape_dist_traveled <=
|
|
83
|
+
distanceAfter) {
|
|
84
|
+
thisStopSequence = shapesGeometryAnchorPoints[i].last_stop_sequence;
|
|
52
85
|
}
|
|
53
|
-
|
|
54
|
-
|
|
86
|
+
// if is shape anchor point in close distance BEFORE NEXT stop, then set it also AT STOP
|
|
87
|
+
else if (i < shapesGeometryAnchorPoints.length - 1 &&
|
|
88
|
+
stop_times[shapesGeometryAnchorPoints[i].next_stop_sequence - 1].shape_dist_traveled -
|
|
89
|
+
shapesGeometryAnchorPoints[i].shape_dist_traveled <=
|
|
90
|
+
distanceBefore) {
|
|
91
|
+
thisStopSequence = shapesGeometryAnchorPoints[i].next_stop_sequence;
|
|
92
|
+
lastStopSequence = shapesGeometryAnchorPoints[i].next_stop_sequence;
|
|
93
|
+
nextStopSequence = Math.min(shapesGeometryAnchorPoints[i].next_stop_sequence + 1, stop_times.length);
|
|
55
94
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
//
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
for (let i = 0; i < shapesGeometryAnchorPoints.length; i++) {
|
|
64
|
-
let bearing = 0;
|
|
65
|
-
// add bearing from shape computed for previous shapePoint
|
|
66
|
-
if (i > 0) {
|
|
67
|
-
// compute bearing from two shape points
|
|
68
|
-
let shapePointBearing = Math.round(turf.bearing(turf.point(shapesGeometryAnchorPoints[i - 1].coordinates), turf.point(shapesGeometryAnchorPoints[i].coordinates)));
|
|
69
|
-
// turf.bearing returns -180 to 180, when 0 is north
|
|
70
|
-
// we need 0 to 359, for negative value we substract from 360
|
|
71
|
-
if (shapePointBearing < 0) {
|
|
72
|
-
shapePointBearing = 360 - Math.abs(shapePointBearing);
|
|
73
|
-
}
|
|
74
|
-
// save bearing
|
|
75
|
-
shapePoints[i - 1].bearing = shapePointBearing;
|
|
76
|
-
// for the last shapePoint copy the bearing from last one
|
|
77
|
-
if (shapesGeometryAnchorPoints.length - 1 === i) {
|
|
78
|
-
bearing = shapePoints[i - 1].bearing;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
// init values
|
|
82
|
-
let thisStopSequence = null;
|
|
83
|
-
let lastStopSequence = shapesGeometryAnchorPoints[i].last_stop_sequence;
|
|
84
|
-
let nextStopSequence = shapesGeometryAnchorPoints[i].next_stop_sequence;
|
|
85
|
-
// these are origin stop_times shape point fron shapes table, clearly at stops points
|
|
86
|
-
if (shapesGeometryAnchorPoints[i].this_stop_sequence) {
|
|
87
|
-
thisStopSequence = shapesGeometryAnchorPoints[i].this_stop_sequence;
|
|
88
|
-
}
|
|
89
|
-
// if is shape anchor point in close distance AFTER LAST stop, then set it also AT STOP
|
|
90
|
-
else if (i > 0 &&
|
|
91
|
-
shapesGeometryAnchorPoints[i].shape_dist_traveled -
|
|
92
|
-
stop_times[shapesGeometryAnchorPoints[i].last_stop_sequence - 1].shape_dist_traveled <=
|
|
93
|
-
distanceAfter) {
|
|
94
|
-
thisStopSequence = shapesGeometryAnchorPoints[i].last_stop_sequence;
|
|
95
|
-
}
|
|
96
|
-
// if is shape anchor point in close distance BEFORE NEXT stop, then set it also AT STOP
|
|
97
|
-
else if (i < shapesGeometryAnchorPoints.length - 1 &&
|
|
98
|
-
stop_times[shapesGeometryAnchorPoints[i].next_stop_sequence - 1].shape_dist_traveled -
|
|
99
|
-
shapesGeometryAnchorPoints[i].shape_dist_traveled <=
|
|
100
|
-
distanceBefore) {
|
|
101
|
-
thisStopSequence = shapesGeometryAnchorPoints[i].next_stop_sequence;
|
|
102
|
-
lastStopSequence = shapesGeometryAnchorPoints[i].next_stop_sequence;
|
|
103
|
-
nextStopSequence = Math.min(shapesGeometryAnchorPoints[i].next_stop_sequence + 1, stop_times.length);
|
|
104
|
-
}
|
|
105
|
-
let shapeDistTraveled = shapesGeometryAnchorPoints[i].shape_dist_traveled;
|
|
106
|
-
let distanceFromLastStop;
|
|
107
|
-
// fallback to shape_dist_traveled from GTFS stop_times, if the vehicle is at stop
|
|
108
|
-
// and set distance from last stop to 0 (the stop is literally at stop)
|
|
109
|
-
if (thisStopSequence !== null) {
|
|
110
|
-
shapeDistTraveled = stop_times[thisStopSequence - 1].shape_dist_traveled;
|
|
111
|
-
distanceFromLastStop = 0;
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
distanceFromLastStop =
|
|
115
|
-
Math.round((shapeDistTraveled - stop_times[lastStopSequence - 1].shape_dist_traveled) * 1000) / 1000;
|
|
116
|
-
}
|
|
117
|
-
// if is trip at stop than set departure by this stop
|
|
118
|
-
// between stops do linear interpolation from departure from last stop and arrival of next stop
|
|
119
|
-
const timeScheduledSeconds = thisStopSequence !== null
|
|
120
|
-
? stop_times[lastStopSequence - 1].arrival_time_seconds
|
|
121
|
-
: stop_times[lastStopSequence - 1].departure_time_seconds +
|
|
122
|
-
Math.round(((stop_times[nextStopSequence - 1].arrival_time_seconds -
|
|
123
|
-
stop_times[lastStopSequence - 1].departure_time_seconds) *
|
|
124
|
-
distanceFromLastStop) /
|
|
125
|
-
(stop_times[nextStopSequence - 1].shape_dist_traveled -
|
|
126
|
-
stop_times[lastStopSequence - 1].shape_dist_traveled));
|
|
127
|
-
shapePoints.push({
|
|
128
|
-
index: i,
|
|
129
|
-
at_stop: thisStopSequence !== null,
|
|
130
|
-
bearing,
|
|
131
|
-
coordinates: shapesGeometryAnchorPoints[i].coordinates,
|
|
132
|
-
distance_from_last_stop: distanceFromLastStop,
|
|
133
|
-
last_stop_sequence: lastStopSequence,
|
|
134
|
-
next_stop_sequence: nextStopSequence,
|
|
135
|
-
shape_dist_traveled: shapeDistTraveled,
|
|
136
|
-
this_stop_sequence: thisStopSequence,
|
|
137
|
-
time_scheduled_seconds: timeScheduledSeconds,
|
|
138
|
-
});
|
|
95
|
+
let shapeDistTraveled = shapesGeometryAnchorPoints[i].shape_dist_traveled;
|
|
96
|
+
let distanceFromLastStop;
|
|
97
|
+
// fallback to shape_dist_traveled from GTFS stop_times, if the vehicle is at stop
|
|
98
|
+
// and set distance from last stop to 0 (the stop is literally at stop)
|
|
99
|
+
if (thisStopSequence !== null) {
|
|
100
|
+
shapeDistTraveled = stop_times[thisStopSequence - 1].shape_dist_traveled;
|
|
101
|
+
distanceFromLastStop = 0;
|
|
139
102
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
103
|
+
else {
|
|
104
|
+
distanceFromLastStop = this.roundToDecimals(shapeDistTraveled - stop_times[lastStopSequence - 1].shape_dist_traveled, 1000);
|
|
105
|
+
}
|
|
106
|
+
// if is trip at stop than set departure by this stop
|
|
107
|
+
// between stops do linear interpolation from departure from last stop and arrival of next stop
|
|
108
|
+
const timeScheduledSeconds = thisStopSequence !== null
|
|
109
|
+
? stop_times[lastStopSequence - 1].arrival_time_seconds
|
|
110
|
+
: stop_times[lastStopSequence - 1].departure_time_seconds +
|
|
111
|
+
Math.round(((stop_times[nextStopSequence - 1].arrival_time_seconds -
|
|
112
|
+
stop_times[lastStopSequence - 1].departure_time_seconds) *
|
|
113
|
+
distanceFromLastStop) /
|
|
114
|
+
(stop_times[nextStopSequence - 1].shape_dist_traveled -
|
|
115
|
+
stop_times[lastStopSequence - 1].shape_dist_traveled));
|
|
116
|
+
shapePoints.push({
|
|
117
|
+
index: i,
|
|
118
|
+
at_stop: thisStopSequence !== null,
|
|
119
|
+
bearing,
|
|
120
|
+
coordinates: shapesGeometryAnchorPoints[i].coordinates,
|
|
121
|
+
distance_from_last_stop: distanceFromLastStop,
|
|
122
|
+
last_stop_sequence: lastStopSequence,
|
|
123
|
+
next_stop_sequence: nextStopSequence,
|
|
124
|
+
shape_dist_traveled: shapeDistTraveled,
|
|
125
|
+
this_stop_sequence: thisStopSequence,
|
|
126
|
+
time_scheduled_seconds: timeScheduledSeconds,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
trip_id: tripId,
|
|
131
|
+
stop_times: stop_times,
|
|
132
|
+
shapes_anchor_points: shapePoints,
|
|
133
|
+
shapes: this.mapGtfsShapesToTripShapes(shapes),
|
|
146
134
|
};
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
135
|
+
}
|
|
136
|
+
roundToDecimals(n, fraction = 100000) {
|
|
137
|
+
return Math.round(n * fraction) / fraction;
|
|
138
|
+
}
|
|
139
|
+
shouldReadCoordsFromPrevPrevPoint(points, i) {
|
|
140
|
+
if (i <= 1) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
return (points[i - 1].coordinates[0] === points[i].coordinates[0] && points[i - 1].coordinates[1] === points[i].coordinates[1]);
|
|
144
|
+
}
|
|
145
|
+
setupBearingBetweenPoints(index, target, source, isLast) {
|
|
146
|
+
// add bearing from shape computed for previous shapePoint
|
|
147
|
+
if (index === 0) {
|
|
148
|
+
return 0;
|
|
149
|
+
}
|
|
150
|
+
let bearing;
|
|
151
|
+
if (this.shouldReadCoordsFromPrevPrevPoint(source, index)) {
|
|
152
|
+
// take bearing of the pre-previous point (i - 2),
|
|
153
|
+
// ... to be saved into previous point (i - 1)
|
|
154
|
+
bearing = target[index - 2].bearing;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
// compute bearing from two shape points
|
|
158
|
+
bearing = Math.round(turf.bearing(turf.point(source[index - 1].coordinates), turf.point(source[index].coordinates)));
|
|
159
|
+
}
|
|
160
|
+
// turf.bearing returns -180 to 180, when 0 is north
|
|
161
|
+
// we need 0 to 359, for negative value we substract from 360
|
|
162
|
+
if (bearing < 0) {
|
|
163
|
+
bearing = 360 - Math.abs(bearing);
|
|
164
|
+
}
|
|
165
|
+
// save bearing
|
|
166
|
+
target[index - 1].bearing = bearing;
|
|
167
|
+
// for the last shapePoint copy the bearing from last one
|
|
168
|
+
if (isLast) {
|
|
169
|
+
bearing = target[index - 1].bearing;
|
|
170
|
+
}
|
|
171
|
+
return bearing;
|
|
172
|
+
}
|
|
173
|
+
shapePointCompareDistance(point, currentStop, nextStop) {
|
|
174
|
+
if (currentStop.shape_dist_traveled === point.shape_dist_traveled) {
|
|
175
|
+
point.shape_at_stop = true;
|
|
176
|
+
}
|
|
177
|
+
if (nextStop) {
|
|
178
|
+
if (point.shape_dist_traveled >= currentStop.shape_dist_traveled &&
|
|
179
|
+
point.shape_dist_traveled <= nextStop.shape_dist_traveled) {
|
|
180
|
+
// current segment
|
|
181
|
+
return 0;
|
|
182
|
+
}
|
|
183
|
+
else if (point.shape_dist_traveled > nextStop.shape_dist_traveled) {
|
|
184
|
+
// future segment
|
|
185
|
+
return 1;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// previous stop segment OR missing nextStop (currentStop is last stop)
|
|
189
|
+
return -1;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Return geometry of anchor points with distance from start along trip track shape
|
|
193
|
+
*
|
|
194
|
+
* @param {string} shapeId - GTFS shape id
|
|
195
|
+
* @param {ITransformedTripShape[]} shapes - GTFS shape points
|
|
196
|
+
* @param {IStopTime[]} stops
|
|
197
|
+
* @returns {IShapeGeometryAnchorPoint[]} - Result array of geometry points along trip track shape
|
|
198
|
+
*/
|
|
199
|
+
getShapesGeometryAnchorPoints(shapeId, shapes, stops, isMetro = false) {
|
|
200
|
+
try {
|
|
201
|
+
let segmentShapes = [];
|
|
202
|
+
// Splits shapes array to multiple arrays "delimited" by stops
|
|
203
|
+
let startShapeIndex = 0;
|
|
204
|
+
for (let st = 0; st < stops.length; st++) {
|
|
205
|
+
const currentSegment = [];
|
|
206
|
+
for (let sh = startShapeIndex; sh < shapes.length; sh++) {
|
|
207
|
+
const shapePoint = { ...shapes[sh], shape_at_stop: false };
|
|
208
|
+
const shapePointSituation = this.shapePointCompareDistance(shapePoint, stops[st], stops[st + 1]);
|
|
209
|
+
if (shapePointSituation === 0) {
|
|
210
|
+
// next stop iteration (outer for-cycle) can be shorter
|
|
211
|
+
startShapeIndex = sh;
|
|
212
|
+
// each segment starts with "at_stop=true" point
|
|
213
|
+
currentSegment.push(shapePoint);
|
|
171
214
|
}
|
|
172
|
-
if (
|
|
173
|
-
|
|
215
|
+
else if (shapePointSituation === 1) {
|
|
216
|
+
// no need to iterate over all future stops segments
|
|
217
|
+
break;
|
|
174
218
|
}
|
|
175
219
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
for (const segment of segmentShapes) {
|
|
179
|
-
segmentArr = [
|
|
180
|
-
...segmentArr,
|
|
181
|
-
...this.divideSegmentLine(segment, isMetro ? this.stepBetweenPointsforMetro : this.stepBetweenPoints),
|
|
182
|
-
];
|
|
220
|
+
if (currentSegment.length) {
|
|
221
|
+
segmentShapes.push(currentSegment);
|
|
183
222
|
}
|
|
184
|
-
// Make initial shapesGeometryAnchorPoints
|
|
185
|
-
let stopCounter = 0;
|
|
186
|
-
const resultArr = segmentArr.map((segment, index) => {
|
|
187
|
-
let this_stop_sequence;
|
|
188
|
-
let last_stop_sequence;
|
|
189
|
-
let next_stop_sequence;
|
|
190
|
-
if (segment.shape_at_stop) {
|
|
191
|
-
stopCounter++;
|
|
192
|
-
this_stop_sequence = stopCounter;
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
this_stop_sequence = null;
|
|
196
|
-
}
|
|
197
|
-
last_stop_sequence = stopCounter;
|
|
198
|
-
next_stop_sequence = stopCounter + 1;
|
|
199
|
-
return {
|
|
200
|
-
index,
|
|
201
|
-
coordinates: [
|
|
202
|
-
Math.round(segment.shape_pt_lon * 100000) / 100000,
|
|
203
|
-
Math.round(segment.shape_pt_lat * 100000) / 100000,
|
|
204
|
-
],
|
|
205
|
-
last_stop_sequence,
|
|
206
|
-
next_stop_sequence,
|
|
207
|
-
shape_dist_traveled: Math.round(segment.shape_dist_traveled * 1000) / 1000,
|
|
208
|
-
this_stop_sequence,
|
|
209
|
-
};
|
|
210
|
-
});
|
|
211
|
-
stopCounter++;
|
|
212
|
-
// and lastly shape point for last stop as there is no segment for last stop
|
|
213
|
-
resultArr.push({
|
|
214
|
-
index: resultArr.length,
|
|
215
|
-
coordinates: [
|
|
216
|
-
Math.round(shapes[shapes.length - 1].shape_pt_lon * 100000) / 100000,
|
|
217
|
-
Math.round(shapes[shapes.length - 1].shape_pt_lat * 100000) / 100000,
|
|
218
|
-
],
|
|
219
|
-
last_stop_sequence: stopCounter,
|
|
220
|
-
next_stop_sequence: stopCounter,
|
|
221
|
-
shape_dist_traveled: Math.round(shapes[shapes.length - 1].shape_dist_traveled * 1000) / 1000,
|
|
222
|
-
this_stop_sequence: stopCounter,
|
|
223
|
-
});
|
|
224
|
-
return resultArr;
|
|
225
|
-
}
|
|
226
|
-
catch (err) {
|
|
227
|
-
helpers_1.log.error(err);
|
|
228
|
-
helpers_1.log.error(shapeId);
|
|
229
|
-
return [];
|
|
230
223
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
*
|
|
237
|
-
* @param {ISegmentShape[]} segmentsArr - Original shape points segment between two stops
|
|
238
|
-
* @param {number} distance - Minimal distance for two consequent shape points
|
|
239
|
-
* @returns {ISegmentShape[]} - Result array of new shape points
|
|
240
|
-
*/
|
|
241
|
-
this.divideSegmentLine = (segmentArr, distance = config_1.config.vehiclePositions.stepBetweenPoints) => {
|
|
242
|
-
const shapeId = segmentArr[0].shape_id;
|
|
243
|
-
const shapeCount = segmentArr.length;
|
|
244
|
-
const startShapeDistTraveled = segmentArr[0].shape_dist_traveled;
|
|
245
|
-
const endShapeDistTraveled = segmentArr[shapeCount - 1].shape_dist_traveled;
|
|
246
|
-
const shapeDistLength = endShapeDistTraveled - startShapeDistTraveled;
|
|
247
|
-
const segmentLine = turf.lineString(segmentArr.map((s) => {
|
|
248
|
-
return [s.shape_pt_lon, s.shape_pt_lat];
|
|
249
|
-
}));
|
|
250
|
-
// because we dont believe source shape distances, rather compute length with turf.js
|
|
251
|
-
const segmentLength = turf.length(segmentLine);
|
|
252
|
-
const middlePointsCount = Math.floor(segmentLength / distance);
|
|
253
|
-
const distanceOffset = (segmentLength - distance * middlePointsCount) / 2;
|
|
254
|
-
// put first shape point
|
|
255
|
-
const resultSegmentPoints = [
|
|
256
|
-
{
|
|
257
|
-
...segmentArr[0],
|
|
258
|
-
shape_pt_sequence: 1,
|
|
259
|
-
},
|
|
260
|
-
];
|
|
261
|
-
// for each middle point create acording shape point with interpolated origin shape dist traveled
|
|
262
|
-
for (let i = 0; i < middlePointsCount; i++) {
|
|
263
|
-
const currentDistance = i * distance + distanceOffset;
|
|
264
|
-
const currentDistDistance = (shapeDistLength / segmentLength) * currentDistance;
|
|
265
|
-
const newPoint = turf.along(segmentLine, i * distance + distanceOffset);
|
|
266
|
-
resultSegmentPoints.push({
|
|
267
|
-
shape_id: shapeId,
|
|
268
|
-
shape_at_stop: false,
|
|
269
|
-
shape_pt_sequence: resultSegmentPoints.length + 1,
|
|
270
|
-
shape_pt_lat: newPoint.geometry.coordinates[1],
|
|
271
|
-
shape_pt_lon: newPoint.geometry.coordinates[0],
|
|
272
|
-
shape_dist_traveled: startShapeDistTraveled + currentDistDistance,
|
|
273
|
-
});
|
|
224
|
+
let segmentArr = [];
|
|
225
|
+
// concat arrays of stop divided segments with distributed shape points
|
|
226
|
+
for (const segment of segmentShapes) {
|
|
227
|
+
const line = this.divideSegmentLine(segment, isMetro ? this.stepBetweenPointsforMetro : this.stepBetweenPoints);
|
|
228
|
+
segmentArr.push(...line);
|
|
274
229
|
}
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
230
|
+
// Make initial shapesGeometryAnchorPoints
|
|
231
|
+
let stopCounter = 0;
|
|
232
|
+
const resultArr = segmentArr.map((segment, index) => {
|
|
233
|
+
let this_stop_sequence;
|
|
234
|
+
let last_stop_sequence;
|
|
235
|
+
let next_stop_sequence;
|
|
236
|
+
if (segment.shape_at_stop) {
|
|
237
|
+
stopCounter++;
|
|
238
|
+
this_stop_sequence = stopCounter;
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
this_stop_sequence = null;
|
|
242
|
+
}
|
|
243
|
+
last_stop_sequence = stopCounter;
|
|
244
|
+
next_stop_sequence = stopCounter + 1;
|
|
245
|
+
const coordinates = [
|
|
246
|
+
this.roundToDecimals(segment.shape_pt_lon),
|
|
247
|
+
this.roundToDecimals(segment.shape_pt_lat),
|
|
248
|
+
];
|
|
279
249
|
return {
|
|
280
|
-
|
|
281
|
-
|
|
250
|
+
index,
|
|
251
|
+
coordinates,
|
|
252
|
+
last_stop_sequence,
|
|
253
|
+
next_stop_sequence,
|
|
254
|
+
shape_dist_traveled: this.roundToDecimals(segment.shape_dist_traveled, 1000),
|
|
255
|
+
this_stop_sequence,
|
|
282
256
|
};
|
|
283
257
|
});
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
258
|
+
stopCounter++;
|
|
259
|
+
// and lastly shape point for last stop as there is no segment for last stop
|
|
260
|
+
resultArr.push({
|
|
261
|
+
index: resultArr.length,
|
|
262
|
+
coordinates: [
|
|
263
|
+
this.roundToDecimals(shapes[shapes.length - 1].shape_pt_lon),
|
|
264
|
+
this.roundToDecimals(shapes[shapes.length - 1].shape_pt_lat),
|
|
265
|
+
],
|
|
266
|
+
last_stop_sequence: stopCounter,
|
|
267
|
+
next_stop_sequence: stopCounter,
|
|
268
|
+
shape_dist_traveled: this.roundToDecimals(shapes[shapes.length - 1].shape_dist_traveled, 1000),
|
|
269
|
+
this_stop_sequence: stopCounter,
|
|
270
|
+
});
|
|
271
|
+
return resultArr;
|
|
272
|
+
}
|
|
273
|
+
catch (err) {
|
|
274
|
+
helpers_1.log.error(err);
|
|
275
|
+
helpers_1.log.error(shapeId);
|
|
276
|
+
return [];
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Generate new shape points from segment of trip shape along original one
|
|
281
|
+
* - preserving start and end shape points belonging to stops
|
|
282
|
+
* - creates new set of shape points between stops to get same point distance along original shape
|
|
283
|
+
*
|
|
284
|
+
* @param {ISegmentShape[]} segmentsArr - Original shape points segment between two stops
|
|
285
|
+
* @param {number} distance - Minimal distance for two consequent shape points
|
|
286
|
+
* @returns {ISegmentShape[]} - Result array of new shape points
|
|
287
|
+
*/
|
|
288
|
+
divideSegmentLine(segmentArr, distance = config_1.config.vehiclePositions.stepBetweenPoints) {
|
|
289
|
+
const shapeId = segmentArr[0].shape_id;
|
|
290
|
+
const shapeCount = segmentArr.length;
|
|
291
|
+
const minimalDistanceLimit = distance / 2;
|
|
292
|
+
const startShapeDistTraveled = segmentArr[0].shape_dist_traveled;
|
|
293
|
+
const endShapeDistTraveled = segmentArr[shapeCount - 1].shape_dist_traveled;
|
|
294
|
+
const shapeDistLength = endShapeDistTraveled - startShapeDistTraveled;
|
|
295
|
+
const segmentLine = turf.lineString(segmentArr.map((s) => {
|
|
296
|
+
return [s.shape_pt_lon, s.shape_pt_lat];
|
|
297
|
+
}));
|
|
298
|
+
// because we dont believe source shape distances, rather compute length with turf.js
|
|
299
|
+
const segmentLength = turf.length(segmentLine);
|
|
300
|
+
const middlePointsCount = Math.floor(segmentLength / distance);
|
|
301
|
+
const distanceOffset = (segmentLength - distance * middlePointsCount) / 2;
|
|
302
|
+
// put first shape point
|
|
303
|
+
const resultSegmentPoints = [
|
|
304
|
+
{
|
|
305
|
+
...segmentArr[0],
|
|
306
|
+
shape_pt_lat: this.roundToDecimals(segmentArr[0].shape_pt_lat),
|
|
307
|
+
shape_pt_lon: this.roundToDecimals(segmentArr[0].shape_pt_lon),
|
|
308
|
+
shape_dist_traveled: this.roundToDecimals(segmentArr[0].shape_dist_traveled, 1000),
|
|
309
|
+
shape_pt_sequence: 1,
|
|
310
|
+
},
|
|
311
|
+
];
|
|
312
|
+
// for each middle point create acording shape point with interpolated origin shape dist traveled
|
|
313
|
+
for (let i = 0; i < middlePointsCount; i++) {
|
|
314
|
+
const currentDistance = i * distance + distanceOffset;
|
|
315
|
+
const currentDistDistance = (shapeDistLength / segmentLength) * currentDistance;
|
|
316
|
+
if (currentDistDistance < minimalDistanceLimit) {
|
|
317
|
+
// point would be too close, skip it
|
|
318
|
+
continue;
|
|
319
|
+
}
|
|
320
|
+
const newPoint = turf.along(segmentLine, i * distance + distanceOffset);
|
|
321
|
+
resultSegmentPoints.push({
|
|
322
|
+
shape_id: shapeId,
|
|
323
|
+
shape_at_stop: false,
|
|
324
|
+
shape_pt_sequence: resultSegmentPoints.length + 1,
|
|
325
|
+
shape_pt_lat: this.roundToDecimals(newPoint.geometry.coordinates[1]),
|
|
326
|
+
shape_pt_lon: this.roundToDecimals(newPoint.geometry.coordinates[0]),
|
|
327
|
+
shape_dist_traveled: this.roundToDecimals(startShapeDistTraveled + currentDistDistance, 1000),
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
return resultSegmentPoints;
|
|
331
|
+
}
|
|
332
|
+
mapGtfsShapesToTripShapes(shapes) {
|
|
333
|
+
return shapes.map((shape) => {
|
|
334
|
+
return {
|
|
335
|
+
dist: shape.shape_dist_traveled,
|
|
336
|
+
coords: [shape.shape_pt_lon, shape.shape_pt_lat],
|
|
337
|
+
};
|
|
338
|
+
});
|
|
288
339
|
}
|
|
289
340
|
}
|
|
290
341
|
exports.DelayComputationManager = DelayComputationManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DelayComputationManager.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DelayComputationManager.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DelayComputationManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,14 +16,15 @@ exports.V3InfotextsController = void 0;
|
|
|
16
16
|
const OgPidToken_1 = require("../../ioc/OgPidToken");
|
|
17
17
|
const InfotextFacade_1 = require("../../service/facade/InfotextFacade");
|
|
18
18
|
const trace_provider_1 = require("@golemio/core/dist/monitoring/opentelemetry/trace-provider");
|
|
19
|
+
const output_gateway_1 = require("@golemio/core/dist/output-gateway");
|
|
19
20
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
20
21
|
let V3InfotextsController = exports.V3InfotextsController = class V3InfotextsController {
|
|
21
22
|
constructor(infotextFacade) {
|
|
22
23
|
this.infotextFacade = infotextFacade;
|
|
23
|
-
this.getJisInfotexts = async (
|
|
24
|
+
this.getJisInfotexts = async (req, res, next) => {
|
|
24
25
|
const span = (0, trace_provider_1.createChildSpan)("V3InfotextsController.getJisInfotexts");
|
|
25
26
|
try {
|
|
26
|
-
const outputDto = await this.infotextFacade.getInfotextsForOverview();
|
|
27
|
+
const outputDto = await this.infotextFacade.getInfotextsForOverview((0, output_gateway_1.parseBooleanQueryParam)(req.query.includeFuture));
|
|
27
28
|
return res.status(200).send(outputDto);
|
|
28
29
|
}
|
|
29
30
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"V3InfotextsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/controllers/v3/V3InfotextsController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qDAAoD;AACpD,wEAAuE;AACvE,+FAA6F;
|
|
1
|
+
{"version":3,"file":"V3InfotextsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/controllers/v3/V3InfotextsController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qDAAoD;AACpD,wEAAuE;AACvE,+FAA6F;AAC7F,sEAA2E;AAE3E,iEAAwE;AAGjE,IAAM,qBAAqB,mCAA3B,MAAM,qBAAqB;IAC9B,YAA+C,cAAsC;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAE9E,oBAAe,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC9D,MAAM,IAAI,GAAG,IAAA,gCAAe,EAAC,uCAAuC,CAAC,CAAC;YAEtE,IAAI;gBACA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAC/D,IAAA,uCAAsB,EAAC,GAAG,CAAC,KAAK,CAAC,aAAuB,CAAC,CAC5D,CAAC;gBACF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC1C;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;oBAAS;gBACN,IAAI,EAAE,GAAG,EAAE,CAAC;aACf;QACL,CAAC,CAAC;IAhBsF,CAAC;CAiB5F,CAAA;gCAlBY,qBAAqB;IADjC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,cAAc,CAAC,CAAA;qCAAyB,+BAAc;GAD5E,qBAAqB,CAkBjC"}
|
|
@@ -18,10 +18,10 @@ export declare class JISInfotextRepository extends AbstractBasicRepository {
|
|
|
18
18
|
*/
|
|
19
19
|
findAllForDepartureBoard(stopsIds: string[], timeFrom?: Date): Promise<JISInfotextsModel[]>;
|
|
20
20
|
/**
|
|
21
|
-
* Find all
|
|
21
|
+
* Find all infotexts for given time for PID infotexts API
|
|
22
22
|
*
|
|
23
|
-
* @param
|
|
24
|
-
* @returns
|
|
23
|
+
* @param includeFuture if false return just active infotexts
|
|
24
|
+
* @returns infotexts
|
|
25
25
|
*/
|
|
26
|
-
findAllForOverview(
|
|
26
|
+
findAllForOverview(includeFuture: boolean): Promise<JISInfotextsModel[]>;
|
|
27
27
|
}
|
|
@@ -100,13 +100,20 @@ let JISInfotextRepository = exports.JISInfotextRepository = class JISInfotextRep
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
/**
|
|
103
|
-
* Find all
|
|
103
|
+
* Find all infotexts for given time for PID infotexts API
|
|
104
104
|
*
|
|
105
|
-
* @param
|
|
106
|
-
* @returns
|
|
105
|
+
* @param includeFuture if false return just active infotexts
|
|
106
|
+
* @returns infotexts
|
|
107
107
|
*/
|
|
108
|
-
async findAllForOverview(
|
|
108
|
+
async findAllForOverview(includeFuture) {
|
|
109
109
|
try {
|
|
110
|
+
const now = new Date();
|
|
111
|
+
const where = {
|
|
112
|
+
active_period_end: { [sequelize_1.Op.or]: [{ [sequelize_1.Op.gte]: now }, { [sequelize_1.Op.is]: null }] },
|
|
113
|
+
};
|
|
114
|
+
if (!includeFuture) {
|
|
115
|
+
where.active_period_start = { [sequelize_1.Op.lte]: now };
|
|
116
|
+
}
|
|
110
117
|
return await this.sequelizeModel.findAll({
|
|
111
118
|
attributes: [
|
|
112
119
|
"id",
|
|
@@ -116,10 +123,7 @@ let JISInfotextRepository = exports.JISInfotextRepository = class JISInfotextRep
|
|
|
116
123
|
"description_text",
|
|
117
124
|
"severity_level",
|
|
118
125
|
],
|
|
119
|
-
where
|
|
120
|
-
active_period_start: { [sequelize_1.Op.lte]: timeFrom },
|
|
121
|
-
active_period_end: { [sequelize_1.Op.or]: [{ [sequelize_1.Op.gte]: timeFrom }, { [sequelize_1.Op.is]: null }] },
|
|
122
|
-
},
|
|
126
|
+
where,
|
|
123
127
|
include: [
|
|
124
128
|
{
|
|
125
129
|
model: this.gtfsStopRepository.sequelizeModel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JISInfotextRepository.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/data-access/JISInfotextRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yEAAoE;AACpE,6DAAuC;AACvC,gGAAsE;AAGtE,kIAA+H;AAC/H,wEAAqE;AACrE,6EAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"JISInfotextRepository.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/data-access/JISInfotextRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ class V3PIDRouter extends AbstractRouter_1.AbstractRouter {
|
|
|
26
26
|
], Validation_1.checkErrors,
|
|
27
27
|
// max-age 5 seconds, stale-while-revalidate 5 seconds
|
|
28
28
|
this.cacheHeaderMiddleware.getMiddleware(5, 5), this.transferBoardsController.getTransferDepartures);
|
|
29
|
-
this.router.get("/infotexts", Validation_1.checkErrors,
|
|
29
|
+
this.router.get("/infotexts", [(0, express_validator_1.query)("includeFuture").optional().isBoolean().not().isArray()], Validation_1.checkErrors,
|
|
30
30
|
// max-age 10 seconds, stale-while-revalidate 10 seconds
|
|
31
31
|
this.cacheHeaderMiddleware.getMiddleware(10, 10), this.infotextsController.getJisInfotexts);
|
|
32
32
|
this.router.get("/departurepresets", Validation_1.checkErrors,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"V3PIDRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/routers/v3/V3PIDRouter.ts"],"names":[],"mappings":";;;AAGA,+EAA8E;AAC9E,qCAAgD;AAChD,qDAAoD;AACpD,yDAAoD;AACpD,sFAAmF;AAEnF,6EAA2E;AAC3E,+DAAuE;AACvE,+DAA2D;AAC3D,mFAAoE;AACpE,6CAAmD;AAEnD,MAAa,WAAY,SAAQ,+BAAc;IAO3C;QACI,KAAK,CAAC,wBAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAPlB,WAAM,GAAW,IAAA,gBAAM,GAAE,CAAC;QAiBhC,eAAU,GAAG,GAAS,EAAE;YAC9B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACnC,CAAC,CAAC;QAEM,4BAAuB,GAAG,GAAG,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,iBAAiB,EACjB;gBACI,IAAA,yBAAK,EAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,kBAAU,EAAE,GAAG,EAAE,kBAAU,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;gBACnF,IAAA,yBAAK,EAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;gBAChE,IAAA,yBAAK,EAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,6CAAqB,CAAC,oBAAoB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;aAChH,EACD,wBAAW;YACX,sDAAsD;YACtD,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9C,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CACtD,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,YAAY,EACZ,wBAAW;YACX,wDAAwD;YACxD,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,EAChD,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAC3C,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,mBAAmB,EACnB,wBAAW;YACX,wDAAwD;YACxD,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,EAChD,IAAI,CAAC,+BAA+B,CAAC,oBAAoB,CAC5D,CAAC;QACN,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"V3PIDRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/routers/v3/V3PIDRouter.ts"],"names":[],"mappings":";;;AAGA,+EAA8E;AAC9E,qCAAgD;AAChD,qDAAoD;AACpD,yDAAoD;AACpD,sFAAmF;AAEnF,6EAA2E;AAC3E,+DAAuE;AACvE,+DAA2D;AAC3D,mFAAoE;AACpE,6CAAmD;AAEnD,MAAa,WAAY,SAAQ,+BAAc;IAO3C;QACI,KAAK,CAAC,wBAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAPlB,WAAM,GAAW,IAAA,gBAAM,GAAE,CAAC;QAiBhC,eAAU,GAAG,GAAS,EAAE;YAC9B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACnC,CAAC,CAAC;QAEM,4BAAuB,GAAG,GAAG,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,iBAAiB,EACjB;gBACI,IAAA,yBAAK,EAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,kBAAU,EAAE,GAAG,EAAE,kBAAU,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;gBACnF,IAAA,yBAAK,EAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;gBAChE,IAAA,yBAAK,EAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,6CAAqB,CAAC,oBAAoB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;aAChH,EACD,wBAAW;YACX,sDAAsD;YACtD,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9C,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CACtD,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,YAAY,EACZ,CAAC,IAAA,yBAAK,EAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,EAC/D,wBAAW;YACX,wDAAwD;YACxD,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,EAChD,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAC3C,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,mBAAmB,EACnB,wBAAW;YACX,wDAAwD;YACxD,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,EAChD,IAAI,CAAC,+BAA+B,CAAC,oBAAoB,CAC5D,CAAC;QACN,CAAC,CAAC;QA3CE,IAAI,CAAC,qBAAqB,GAAG,mBAAc,CAAC,OAAO,CAAwB,oBAAc,CAAC,qBAAqB,CAAC,CAAC;QACjH,IAAI,CAAC,wBAAwB,GAAG,mBAAc,CAAC,OAAO,CAA6B,uBAAU,CAAC,0BAA0B,CAAC,CAAC;QAC1H,IAAI,CAAC,mBAAmB,GAAG,mBAAc,CAAC,OAAO,CAAwB,uBAAU,CAAC,qBAAqB,CAAC,CAAC;QAC3G,IAAI,CAAC,+BAA+B,GAAG,mBAAc,CAAC,OAAO,CACzD,uBAAU,CAAC,iCAAiC,CAC/C,CAAC;QACF,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;CAqCJ;AArDD,kCAqDC;AAED,MAAM,WAAW,GAAmB,IAAI,WAAW,EAAE,CAAC;AAC7C,kCAAW"}
|
|
@@ -19,6 +19,6 @@ export declare class InfotextFacade {
|
|
|
19
19
|
constructor(infotextRepository: JISInfotextRepository, infotextDepartureTransformation: JISInfotextDepartureTransformation, infotextTransferTransformation: JISInfotextTransferTransformation, infotextOverviewTransformation: JISInfotextOverviewTransformation, infotextStopFilter: JISInfotextStopSuppressionFilter, infotextsRedisRepository: JISInfotextsRedisRepository, cacheTransferTransformation: JISInfotextCacheTransferTransformation);
|
|
20
20
|
getInfotextsForDepartureBoards(stopIds: string[], currentMoment: Moment, options: IGetDeparturesOptions): Promise<IInfotextDepartureOutputDto[]>;
|
|
21
21
|
getInfotextsForTransferBoards(stopIds: string[], currentMoment: Moment, timeFrom: Moment | null): Promise<IInfotextTransferOutputDto[]>;
|
|
22
|
-
getInfotextsForOverview(): Promise<IInfotextOverviewOutputDto[]>;
|
|
22
|
+
getInfotextsForOverview(includeFuture: boolean): Promise<IInfotextOverviewOutputDto[]>;
|
|
23
23
|
getInfotextsCache(stopIds: string[], currentMoment: Date, timeFrom: Date | null): Promise<IV4InfotextTransferOutputDto[]>;
|
|
24
24
|
}
|
|
@@ -78,9 +78,9 @@ let InfotextFacade = exports.InfotextFacade = class InfotextFacade {
|
|
|
78
78
|
throw new golemio_errors_1.GeneralError("Failed to retrieve infotexts for transfer boards", this.constructor.name, error, 500);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
-
async getInfotextsForOverview() {
|
|
81
|
+
async getInfotextsForOverview(includeFuture) {
|
|
82
82
|
try {
|
|
83
|
-
const infotexts = await this.infotextRepository.findAllForOverview();
|
|
83
|
+
const infotexts = await this.infotextRepository.findAllForOverview(includeFuture);
|
|
84
84
|
if (infotexts.length === 0) {
|
|
85
85
|
return [];
|
|
86
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfotextFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/service/facade/InfotextFacade.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"InfotextFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/service/facade/InfotextFacade.ts"],"names":[],"mappings":"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"}
|
package/docs/openapi-output.yaml
CHANGED
|
@@ -1196,6 +1196,14 @@ paths:
|
|
|
1196
1196
|
get:
|
|
1197
1197
|
summary: GET Infotexts (export from the VYMI (JIS) Infotexts system)
|
|
1198
1198
|
description: ""
|
|
1199
|
+
parameters:
|
|
1200
|
+
- name: includeFuture
|
|
1201
|
+
in: query
|
|
1202
|
+
description: "If set to true, the endpoint returns both active and future infotexts. If false or omitted, only active infotexts are returned."
|
|
1203
|
+
required: false
|
|
1204
|
+
schema:
|
|
1205
|
+
type: boolean
|
|
1206
|
+
example: false
|
|
1199
1207
|
tags:
|
|
1200
1208
|
- 🚏 PID Departure Boards (v3)
|
|
1201
1209
|
responses:
|