@golemio/pid 6.2.1-dev.3021445713 → 6.3.0-rc.3026394339
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/runs/helpers/TramMessageFilter.d.ts +0 -2
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js +0 -16
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js.map +1 -1
- package/dist/output-gateway/index.js +1 -2
- package/dist/output-gateway/index.js.map +1 -1
- package/dist/output-gateway/public/controllers/v2/V2PublicDepartureBoardsController.d.ts +2 -0
- package/dist/output-gateway/public/controllers/v2/V2PublicDepartureBoardsController.js +28 -3
- package/dist/output-gateway/public/controllers/v2/V2PublicDepartureBoardsController.js.map +1 -1
- package/dist/output-gateway/public/domain/PublicApiDepartureInterfaces.d.ts +1 -14
- package/dist/output-gateway/public/ioc/Di.js +0 -2
- package/dist/output-gateway/public/ioc/Di.js.map +1 -1
- package/dist/output-gateway/public/ioc/OgModuleToken.d.ts +0 -1
- package/dist/output-gateway/public/ioc/OgModuleToken.js +0 -1
- package/dist/output-gateway/public/ioc/OgModuleToken.js.map +1 -1
- package/dist/output-gateway/public/routers/index.d.ts +0 -1
- package/dist/output-gateway/public/routers/index.js +0 -1
- package/dist/output-gateway/public/routers/index.js.map +1 -1
- package/dist/output-gateway/public/service/facade/DepartureBoardFacade.d.ts +2 -2
- package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js +10 -6
- package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js.map +1 -1
- package/docs/openapi-output.yaml +51 -209
- package/package.json +2 -2
- package/dist/output-gateway/public/controllers/helpers/DepartureBoardsParamsParser.d.ts +0 -6
- package/dist/output-gateway/public/controllers/helpers/DepartureBoardsParamsParser.js +0 -29
- package/dist/output-gateway/public/controllers/helpers/DepartureBoardsParamsParser.js.map +0 -1
- package/dist/output-gateway/public/controllers/v3/V3PublicDepartureBoardsController.d.ts +0 -7
- package/dist/output-gateway/public/controllers/v3/V3PublicDepartureBoardsController.js +0 -58
- package/dist/output-gateway/public/controllers/v3/V3PublicDepartureBoardsController.js.map +0 -1
- package/dist/output-gateway/public/routers/v3/V3PublicDeparturesRouter.d.ts +0 -12
- package/dist/output-gateway/public/routers/v3/V3PublicDeparturesRouter.js +0 -37
- package/dist/output-gateway/public/routers/v3/V3PublicDeparturesRouter.js.map +0 -1
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.d.ts
CHANGED
|
@@ -14,12 +14,10 @@ export declare class TramMessageFilter implements ICommonMessageFilter {
|
|
|
14
14
|
* - run number is less than 80
|
|
15
15
|
* - OR registration number is in not-public vehicles whitelist (e.g., mazačka maintenance trams)
|
|
16
16
|
* - timestamp is in acceptable range
|
|
17
|
-
* - scheduled timestamp 'tjr' is not more than 120 minutes ahead of 'tm' (negative delay over 120 minutes)
|
|
18
17
|
*
|
|
19
18
|
* Sets isNotPublic flag on messages to avoid duplicate whitelist checks in processor
|
|
20
19
|
*/
|
|
21
20
|
yieldFilteredMessages(messages: ICommonRunWithMessageDto[], timestamp: number): AsyncGenerator<ICommonRunWithMessageDto>;
|
|
22
|
-
private isNegativeDelayExceeded;
|
|
23
21
|
private isRouteIdValid;
|
|
24
22
|
private isRunNumberValid;
|
|
25
23
|
}
|
|
@@ -20,7 +20,6 @@ const { GeneralError } = GolemioErrorsCore;
|
|
|
20
20
|
const TRAM_SERVICING_ROUTE_ID_MIN = 50;
|
|
21
21
|
const TRAM_SERVICING_ROUTE_ID_MAX = 89;
|
|
22
22
|
const TRAM_UNUSUAL_RUN_NUMBER_MIN = 80;
|
|
23
|
-
const MAX_NEGATIVE_DELAY_IN_MS = 120 * 60 * 1000;
|
|
24
23
|
let TramMessageFilter = class TramMessageFilter {
|
|
25
24
|
constructor(logger, timestampValidator, notPublicVehiclesRepository) {
|
|
26
25
|
this.logger = logger;
|
|
@@ -33,7 +32,6 @@ let TramMessageFilter = class TramMessageFilter {
|
|
|
33
32
|
* - run number is less than 80
|
|
34
33
|
* - OR registration number is in not-public vehicles whitelist (e.g., mazačka maintenance trams)
|
|
35
34
|
* - timestamp is in acceptable range
|
|
36
|
-
* - scheduled timestamp 'tjr' is not more than 120 minutes ahead of 'tm' (negative delay over 120 minutes)
|
|
37
35
|
*
|
|
38
36
|
* Sets isNotPublic flag on messages to avoid duplicate whitelist checks in processor
|
|
39
37
|
*/
|
|
@@ -50,13 +48,6 @@ let TramMessageFilter = class TramMessageFilter {
|
|
|
50
48
|
` is not valid for line ${message.run.line_short_name}, run ${message.run.run_number}`, this.constructor.name, undefined, undefined, "pid"));
|
|
51
49
|
continue;
|
|
52
50
|
}
|
|
53
|
-
if (this.isNegativeDelayExceeded(message)) {
|
|
54
|
-
this.logger.warn(`${this.constructor.name}: message timestamp 'tjr' of value` +
|
|
55
|
-
` '${message.run_message.actual_stop_timestamp_scheduled?.toISOString()}' is more than 120 minutes` +
|
|
56
|
-
` ahead of 'tm' of value '${message.run_message.actual_stop_timestamp_real.toISOString()}'` +
|
|
57
|
-
` (line ${line_short_name}, run ${run_number}, vehicle ${registration_number}), message is skipped.`);
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
51
|
// Check if this is a not-public vehicle
|
|
61
52
|
// - Whitelisted registration number (e.g., mazačka maintenance tram)
|
|
62
53
|
// - Whitelisted route name (e.g., ad-hoc routes like X1, X2, NAD)
|
|
@@ -76,13 +67,6 @@ let TramMessageFilter = class TramMessageFilter {
|
|
|
76
67
|
}
|
|
77
68
|
}
|
|
78
69
|
}
|
|
79
|
-
isNegativeDelayExceeded(message) {
|
|
80
|
-
const { actual_stop_timestamp_scheduled: scheduledTimestamp, actual_stop_timestamp_real: realTimestamp } = message.run_message;
|
|
81
|
-
if (!scheduledTimestamp) {
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
return scheduledTimestamp.getTime() - realTimestamp.getTime() > MAX_NEGATIVE_DELAY_IN_MS;
|
|
85
|
-
}
|
|
86
70
|
isRouteIdValid(routeId) {
|
|
87
71
|
const parsedRouteId = Number.parseInt(routeId);
|
|
88
72
|
return (!Number.isNaN(parsedRouteId) &&
|
package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TramMessageFilter.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,mEAAmE,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AAExE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,iBAAiB,MAAM,6CAA6C,CAAC;AAC5E,MAAM,EAAE,YAAY,EAAE,GAAG,iBAAiB,CAAC;AAE3C,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,2BAA2B,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"TramMessageFilter.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { v2PidRouter, v3PidRouter, v4PidRouter } from "#og/pid/index";
|
|
2
|
-
import { v2PublicDeparturesRouter, v2PublicGtfsRouter, v2PublicVPRouter
|
|
2
|
+
import { v2PublicDeparturesRouter, v2PublicGtfsRouter, v2PublicVPRouter } from "#og/public/index";
|
|
3
3
|
import { v2GtfsRouter } from "#og/ropid-gtfs/index";
|
|
4
4
|
import { v2VehiclepositionsRouter } from "#og/vehicle-positions/index";
|
|
5
5
|
import { v1JisRouter } from "./jis/routers/v1/index.js";
|
|
@@ -19,7 +19,6 @@ export const routers = [
|
|
|
19
19
|
//#endregion
|
|
20
20
|
//#region Public Endpoints
|
|
21
21
|
v2PublicDeparturesRouter,
|
|
22
|
-
v3PublicDeparturesRouter,
|
|
23
22
|
v2PublicGtfsRouter,
|
|
24
23
|
v2PublicVPRouter,
|
|
25
24
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/output-gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/output-gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,gBAAgB,MAAM,8BAA8B,CAAC;AAEjE,MAAM,CAAC,MAAM,OAAO,GAAG;IACnB,oBAAoB;IACpB,YAAY;IACZ,YAAY;IAEZ,2BAA2B;IAC3B,wBAAwB;IAExB,8BAA8B;IAC9B,WAAW;IACX,WAAW;IACX,WAAW;IACX,YAAY;IAEZ,0BAA0B;IAC1B,wBAAwB;IACxB,kBAAkB;IAClB,gBAAgB;IAChB,YAAY;IAEZ,uBAAuB;IACvB,WAAW;IACX,YAAY;CACf,CAAC"}
|
|
@@ -3,7 +3,6 @@ import { OgModuleToken } from "#og/public/ioc/OgModuleToken";
|
|
|
3
3
|
import { createChildSpan } from "@golemio/core/dist/monitoring/opentelemetry/trace-provider.js";
|
|
4
4
|
import ExpressValidatorCore from "@golemio/core/dist/shared/express-validator.js";
|
|
5
5
|
const { matchedData } = ExpressValidatorCore;
|
|
6
|
-
import { DepartureBoardsParamsParser } from "../helpers/DepartureBoardsParamsParser.js";
|
|
7
6
|
export class V2PublicDepartureBoardsController {
|
|
8
7
|
constructor() {
|
|
9
8
|
this.getAll = async (req, res, next) => {
|
|
@@ -11,13 +10,13 @@ export class V2PublicDepartureBoardsController {
|
|
|
11
10
|
const queryData = matchedData(req);
|
|
12
11
|
try {
|
|
13
12
|
const facade = OgPublicContainer.resolve(OgModuleToken.DepartureBoardFacade);
|
|
14
|
-
const params =
|
|
13
|
+
const params = this.parseDepartureParams(queryData);
|
|
15
14
|
const result = await facade.getAll(params.stopIds, params.limit, params.routeShortNames, params.minutesAfter, params.minutesBefore);
|
|
16
15
|
if (result === null) {
|
|
17
16
|
res.status(404).json([]);
|
|
18
17
|
return;
|
|
19
18
|
}
|
|
20
|
-
res.json(result
|
|
19
|
+
res.json(result);
|
|
21
20
|
}
|
|
22
21
|
catch (err) {
|
|
23
22
|
next(err);
|
|
@@ -27,5 +26,31 @@ export class V2PublicDepartureBoardsController {
|
|
|
27
26
|
}
|
|
28
27
|
};
|
|
29
28
|
}
|
|
29
|
+
parseDepartureParams(query) {
|
|
30
|
+
return {
|
|
31
|
+
stopIds: this.parseStopIds(query.stopIds instanceof Array ? query.stopIds : [query.stopIds]),
|
|
32
|
+
routeShortNames: query.routeShortNames
|
|
33
|
+
? query.routeShortNames instanceof Array
|
|
34
|
+
? query.routeShortNames
|
|
35
|
+
: [query.routeShortNames]
|
|
36
|
+
: null,
|
|
37
|
+
limit: query.limit ? parseInt(query.limit) : 5,
|
|
38
|
+
minutesAfter: query.minutesAfter ? parseInt(query.minutesAfter) : 60,
|
|
39
|
+
minutesBefore: query.minutesBefore ? parseInt(query.minutesBefore) : 0,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
parseStopIds(stopIdsFromInput) {
|
|
43
|
+
let output = new Set();
|
|
44
|
+
for (const stopId of stopIdsFromInput) {
|
|
45
|
+
const parsed = JSON.parse(stopId);
|
|
46
|
+
const priority = Object.keys(parsed)[0];
|
|
47
|
+
const stopIds = parsed[priority];
|
|
48
|
+
output.add({
|
|
49
|
+
priority: Number.parseInt(priority),
|
|
50
|
+
stopIds: [...new Set(stopIds)],
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return output;
|
|
54
|
+
}
|
|
30
55
|
}
|
|
31
56
|
//# sourceMappingURL=V2PublicDepartureBoardsController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"V2PublicDepartureBoardsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/controllers/v2/V2PublicDepartureBoardsController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"V2PublicDepartureBoardsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/controllers/v2/V2PublicDepartureBoardsController.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ export interface IPublicApiDepartureRoute {
|
|
|
16
16
|
export interface IPublicApiDepartureTrip {
|
|
17
17
|
id: string;
|
|
18
18
|
headsign: string;
|
|
19
|
-
is_canceled: boolean;
|
|
19
|
+
is_canceled: boolean | null;
|
|
20
20
|
}
|
|
21
21
|
export interface IPublicApiDepartureVehicle {
|
|
22
22
|
id: string | null;
|
|
@@ -32,16 +32,3 @@ export interface IPublicApiDeparture {
|
|
|
32
32
|
vehicle: IPublicApiDepartureVehicle;
|
|
33
33
|
}
|
|
34
34
|
export type PublicApiDepartureBoardGroup = IPublicApiDeparture[];
|
|
35
|
-
export interface IPublicDepartureStopGroupResult {
|
|
36
|
-
priority: number;
|
|
37
|
-
stopIds: string[];
|
|
38
|
-
departures: PublicApiDepartureBoardGroup | null;
|
|
39
|
-
}
|
|
40
|
-
export interface IV3PublicApiDepartureStopGroup {
|
|
41
|
-
priority: number;
|
|
42
|
-
stop_ids: string[];
|
|
43
|
-
departures: PublicApiDepartureBoardGroup;
|
|
44
|
-
}
|
|
45
|
-
export interface IV3PublicApiDepartureBoardResponse {
|
|
46
|
-
stop_groups: IV3PublicApiDepartureStopGroup[];
|
|
47
|
-
}
|
|
@@ -5,7 +5,6 @@ import { CoreToken } from "@golemio/core/dist/helpers/ioc/CoreToken.js";
|
|
|
5
5
|
import { OutputGatewayContainer } from "@golemio/core/dist/output-gateway/ioc/Di.js";
|
|
6
6
|
import { instanceCachingFactory } from "@golemio/core/dist/shared/tsyringe.js";
|
|
7
7
|
import { VehicleDescriptorCachedRepository } from "#og/public/data-access/VehicleDescriptorCachedRepository";
|
|
8
|
-
import { V3PublicDepartureBoardsController } from "../controllers/v3/V3PublicDepartureBoardsController.js";
|
|
9
8
|
import { DelayComputationRepository } from "../data-access/redis/DelayComputationRepository.js";
|
|
10
9
|
import { PublicGtfsDepartureRepository } from "../data-access/redis/PublicGtfsDepartureRepository.js";
|
|
11
10
|
import { PublicStopTimeRepository } from "../data-access/redis/PublicStopTimeRepository.js";
|
|
@@ -77,7 +76,6 @@ ogPublicContainer.register(OgModuleToken.DepartureBoardFacade, {
|
|
|
77
76
|
return new DepartureBoardFacade(c.resolve(OgModuleToken.PublicGtfsDepartureRepository), c.resolve(OgModuleToken.PublicVehiclePositionsRepository), c.resolve(OgModuleToken.PublicStopTimeRepository), c.resolve(OgModuleToken.VehicleDescriptorCachedRepository), c.resolve(OgModuleToken.GtfsStopsRedisRepository));
|
|
78
77
|
}),
|
|
79
78
|
});
|
|
80
|
-
ogPublicContainer.registerSingleton(OgModuleToken.V3PublicDepartureBoardsController, V3PublicDepartureBoardsController);
|
|
81
79
|
ogPublicContainer.register(OgModuleToken.VPSubscriber, {
|
|
82
80
|
useFactory: instanceCachingFactory((c) => {
|
|
83
81
|
const config = c.resolve(CoreToken.SimpleConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/output-gateway/public/ioc/Di.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,iCAAiC,EAAE,MAAM,0DAA0D,CAAC;AAC7G,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/output-gateway/public/ioc/Di.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,iCAAiC,EAAE,MAAM,0DAA0D,CAAC;AAC7G,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAChG,OAAO,EAAE,6BAA6B,EAAE,MAAM,uDAAuD,CAAC;AACtG,OAAO,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,EAAE,gCAAgC,EAAE,MAAM,0DAA0D,CAAC;AAG5G,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mEAAmE,CAAC;AAChH,OAAO,EAAE,wBAAwB,EAAE,MAAM,qEAAqE,CAAC;AAC/G,OAAO,EAAE,0BAA0B,EAAE,MAAM,uEAAuE,CAAC;AACnH,OAAO,EAAE,6BAA6B,EAAE,MAAM,0EAA0E,CAAC;AACzH,OAAO,EAAE,qCAAqC,EAAE,MAAM,kFAAkF,CAAC;AAEzI,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,gEAAgE,CAAC;AACtG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAC;AAC1G,OAAO,EAAE,yBAAyB,EAAE,MAAM,qEAAqE,CAAC;AAChH,OAAO,EAAE,iCAAiC,EAAE,MAAM,6EAA6E,CAAC;AAChI,OAAO,EAAE,gCAAgC,EAAE,MAAM,iFAAiF,CAAC;AACnI,OAAO,EAAE,kCAAkC,EAAE,MAAM,mFAAmF,CAAC;AACvI,OAAO,EAAE,yCAAyC,EAAE,MAAM,0FAA0F,CAAC;AACrJ,OAAO,EAAE,qCAAqC,EAAE,MAAM,kFAAkF,CAAC;AACzI,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,oBAAoB,EAAE,CAAC;AAExE,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;AAC9F,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;AAExF,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,iCAAiC,EAAE,iCAAiC,CAAC,CAAC;AACxH,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,gCAAgC,EAAE,gCAAgC,CAAC,CAAC;AACtH,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,CAAC;AAC1G,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;AACtG,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,6BAA6B,EAAE,6BAA6B,CAAC,CAAC;AAChH,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;AAEtG,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;AAC9F,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;AACxG,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,CAAC;AAClG,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,iCAAiC,EAAE,iCAAiC,CAAC,CAAC;AACxH,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,uBAAuB,EAAE,uBAAuB,CAAC,CAAC;AAEpG,uCAAuC;AACvC,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,gCAAgC,EAAE,gCAAgC,CAAC,CAAC;AACtH,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,kCAAkC,EAAE,kCAAkC,CAAC,CAAC;AAC1H,iBAAiB,CAAC,iBAAiB,CAC/B,aAAa,CAAC,yCAAyC,EACvD,yCAAyC,CAC5C,CAAC;AACF,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,qCAAqC,EAAE,qCAAqC,CAAC,CAAC;AAChI,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;AACtG,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,6BAA6B,EAAE,6BAA6B,CAAC,CAAC;AAChH,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,CAAC;AAC1G,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,qCAAqC,EAAE,qCAAqC,CAAC,CAAC;AAChI,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,2BAA2B,EAAE,2BAA2B,CAAC,CAAC;AAC5G,YAAY;AAEZ,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,EAAE;IAC3D,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE;QACrC,OAAO,IAAI,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAA8B,aAAa,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACvH,CAAC,CAAC;CACL,CAAC,CAAC;AAEH,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,4BAA4B,EAAE;IACnE,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE;QACrC,OAAO,IAAI,4BAA4B,CACnC,CAAC,CAAC,OAAO,CAA8B,aAAa,CAAC,gCAAgC,CAAC,EACtF,CAAC,CAAC,OAAO,CAAqB,aAAa,CAAC,iBAAiB,CAAC,EAC9D,CAAC,CAAC,OAAO,CAAU,SAAS,CAAC,MAAM,CAAC,CACvC,CAAC;IACN,CAAC,CAAC;CACL,CAAC,CAAC;AAEH,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,kBAAkB,EAAE;IACzD,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE;QACrC,OAAO,IAAI,kBAAkB,CACzB,CAAC,CAAC,OAAO,CAA0B,aAAa,CAAC,uBAAuB,CAAC,EACzE,CAAC,CAAC,OAAO,CAA8B,aAAa,CAAC,gCAAgC,CAAC,CACzF,CAAC;IACN,CAAC,CAAC;CACL,CAAC,CAAC;AAEH,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,EAAE;IAC3D,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE;QACrC,OAAO,IAAI,oBAAoB,CAC3B,CAAC,CAAC,OAAO,CAAgC,aAAa,CAAC,6BAA6B,CAAC,EACrF,CAAC,CAAC,OAAO,CAA8B,aAAa,CAAC,gCAAgC,CAAC,EACtF,CAAC,CAAC,OAAO,CAAsB,aAAa,CAAC,wBAAwB,CAAC,EACtE,CAAC,CAAC,OAAO,CAAoC,aAAa,CAAC,iCAAiC,CAAC,EAC7F,CAAC,CAAC,OAAO,CAA2B,aAAa,CAAC,wBAAwB,CAAC,CAC9E,CAAC;IACN,CAAC,CAAC;CACL,CAAC,CAAC;AAEH,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,EAAE;IACnD,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAgB,SAAS,CAAC,YAAY,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAU,SAAS,CAAC,MAAM,CAAC,CAAC;QAEpD,OAAO,IAAI,YAAY,CACnB;YACI,WAAW,EAAE,6BAA6B;YAC1C,qBAAqB,EAAE,MAAM,CAAC,QAAQ,CAAS,gBAAgB,CAAC;YAChE,MAAM,EAAE,MAAM;SACjB,EACD,CAAC,CAAC,OAAO,CAA8B,aAAa,CAAC,gCAAgC,CAAC,CACzF,CAAC;IACN,CAAC,CAAC;CACL,CAAC,CAAC;AAEH,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,EAAE;IAC1D,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAgB,SAAS,CAAC,YAAY,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAU,SAAS,CAAC,MAAM,CAAC,CAAC;QAEpD,OAAO,IAAI,YAAY,CACnB;YACI,WAAW,EAAE,2BAA2B;YACxC,qBAAqB,EAAE,MAAM,CAAC,QAAQ,CAAS,gBAAgB,CAAC;YAChE,MAAM,EAAE,MAAM;SACjB,EACD,CAAC,CAAC,OAAO,CAA2B,aAAa,CAAC,wBAAwB,CAAC,CAC9E,CAAC;IACN,CAAC,CAAC;CACL,CAAC,CAAC;AAEH,OAAO,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,CAAC"}
|
|
@@ -29,7 +29,6 @@ export const OgModuleToken = {
|
|
|
29
29
|
PublicVehiclePositionsFacade: Symbol("PublicVehiclePositionsFacade"),
|
|
30
30
|
DetailedTripFacade: Symbol("DetailedTripFacade"),
|
|
31
31
|
DepartureBoardFacade: Symbol("DepartureBoardFacade"),
|
|
32
|
-
V3PublicDepartureBoardsController: Symbol("V3PublicDepartureBoardsController"),
|
|
33
32
|
VPSubscriber: Symbol("VPSubscriber"),
|
|
34
33
|
GtfsStopsSubscriber: Symbol("GtfsStopsSubscriber"),
|
|
35
34
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OgModuleToken.js","sourceRoot":"","sources":["../../../../src/output-gateway/public/ioc/OgModuleToken.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,CAAC;IAC9C,iCAAiC,EAAE,MAAM,CAAC,mCAAmC,CAAC;IAC9E,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,qCAAqC;IACrC,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,yBAAyB,EAAE,MAAM,CAAC,2BAA2B,CAAC;IAC9D,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;IACxD,iCAAiC,EAAE,MAAM,CAAC,mCAAmC,CAAC;IAC9E,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,YAAY;IACZ,uCAAuC;IACvC,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,kCAAkC,EAAE,MAAM,CAAC,oCAAoC,CAAC;IAChF,yCAAyC,EAAE,MAAM,CAAC,2CAA2C,CAAC;IAC9F,qCAAqC,EAAE,MAAM,CAAC,uCAAuC,CAAC;IACtF,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,qCAAqC,EAAE,MAAM,CAAC,uCAAuC,CAAC;IACtF,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,YAAY;IACZ,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,4BAA4B,EAAE,MAAM,CAAC,8BAA8B,CAAC;IACpE,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAChD,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,
|
|
1
|
+
{"version":3,"file":"OgModuleToken.js","sourceRoot":"","sources":["../../../../src/output-gateway/public/ioc/OgModuleToken.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,CAAC;IAC9C,iCAAiC,EAAE,MAAM,CAAC,mCAAmC,CAAC;IAC9E,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,qCAAqC;IACrC,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,yBAAyB,EAAE,MAAM,CAAC,2BAA2B,CAAC;IAC9D,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;IACxD,iCAAiC,EAAE,MAAM,CAAC,mCAAmC,CAAC;IAC9E,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,YAAY;IACZ,uCAAuC;IACvC,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,kCAAkC,EAAE,MAAM,CAAC,oCAAoC,CAAC;IAChF,yCAAyC,EAAE,MAAM,CAAC,2CAA2C,CAAC;IAC9F,qCAAqC,EAAE,MAAM,CAAC,uCAAuC,CAAC;IACtF,wBAAwB,EAAE,MAAM,CAAC,0BAA0B,CAAC;IAC5D,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,qCAAqC,EAAE,MAAM,CAAC,uCAAuC,CAAC;IACtF,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,YAAY;IACZ,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,4BAA4B,EAAE,MAAM,CAAC,8BAA8B,CAAC;IACpE,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAChD,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC;IACpC,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;CACrD,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export { v2PublicDeparturesRouter } from "./v2/V2PublicDeparturesRouter.js";
|
|
2
|
-
export { v3PublicDeparturesRouter } from "./v3/V3PublicDeparturesRouter.js";
|
|
3
2
|
export { v2PublicGtfsRouter } from "./v2/V2PublicGtfsRouter.js";
|
|
4
3
|
export { v2PublicVPRouter } from "./v2/V2PublicVehiclePositionsRouter.js";
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export { v2PublicDeparturesRouter } from "./v2/V2PublicDeparturesRouter.js";
|
|
2
|
-
export { v3PublicDeparturesRouter } from "./v3/V3PublicDeparturesRouter.js";
|
|
3
2
|
export { v2PublicGtfsRouter } from "./v2/V2PublicGtfsRouter.js";
|
|
4
3
|
export { v2PublicVPRouter } from "./v2/V2PublicVehiclePositionsRouter.js";
|
|
5
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/output-gateway/public/routers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/output-gateway/public/routers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type IDepartureBoardsStopIdGroups } from "#og/public/controllers/v2/interfaces/PublicParamsInterfaces";
|
|
2
2
|
import { VehicleDescriptorCachedRepository } from "#og/public/data-access/VehicleDescriptorCachedRepository";
|
|
3
3
|
import { GtfsStopsRedisRepository } from "#og/ropid-gtfs/data-access/redis/GtfsStopsRedisRepository";
|
|
4
|
-
import { type
|
|
4
|
+
import { type PublicApiDepartureBoardGroup } from "#og/public/domain/PublicApiDepartureInterfaces";
|
|
5
5
|
import { type IGtfsDepartureRepository } from "#og/public/domain/repository/IGtfsDepartureRepository";
|
|
6
6
|
import { type IStopTimeRepository } from "#og/public/domain/repository/IStopTimeRepository";
|
|
7
7
|
import { type IVehiclePositionsRepository } from "#og/public/domain/repository/IVehiclePositionsRepository";
|
|
@@ -15,7 +15,7 @@ export declare class DepartureBoardFacade {
|
|
|
15
15
|
private static readonly OPEN_MINUTES_IN_PAST;
|
|
16
16
|
private static readonly OPEN_MINUTES_IN_PAST_MS;
|
|
17
17
|
constructor(departureRepository: IGtfsDepartureRepository, tripRepository: IVehiclePositionsRepository, stopTimeRepository: IStopTimeRepository, descriptorRepository: VehicleDescriptorCachedRepository, gtfsStopsRepository: GtfsStopsRedisRepository);
|
|
18
|
-
getAll(stopIds: Set<IDepartureBoardsStopIdGroups>, limit: number, routeShortNames: string[] | null, minutesAfter: number, minutesBefore: number): Promise<
|
|
18
|
+
getAll(stopIds: Set<IDepartureBoardsStopIdGroups>, limit: number, routeShortNames: string[] | null, minutesAfter: number, minutesBefore: number): Promise<PublicApiDepartureBoardGroup[] | null>;
|
|
19
19
|
private handleStopGroupDepartures;
|
|
20
20
|
private duplicateDeparturesWithDifferentVehicleIds;
|
|
21
21
|
private filterForExistingStopIds;
|
|
@@ -31,11 +31,16 @@ export class DepartureBoardFacade {
|
|
|
31
31
|
if (output.every((value) => value === null)) {
|
|
32
32
|
return null;
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
else {
|
|
35
|
+
return output.map((value) => {
|
|
36
|
+
if (value === null) {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
39
44
|
}
|
|
40
45
|
async handleStopGroupDepartures(stopGroup, limit, routeShortNames, minutesAfter, minutesBefore) {
|
|
41
46
|
let outputGroup = [];
|
|
@@ -141,7 +146,6 @@ export class DepartureBoardFacade {
|
|
|
141
146
|
for (const group of groups) {
|
|
142
147
|
filteredGroups.push({
|
|
143
148
|
priority: group.priority,
|
|
144
|
-
requestedStopIds: group.stopIds,
|
|
145
149
|
stopIds: group.stopIds.filter((s) => foundStopIds.has(s)),
|
|
146
150
|
});
|
|
147
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DepartureBoardFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/service/facade/DepartureBoardFacade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"DepartureBoardFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/service/facade/DepartureBoardFacade.ts"],"names":[],"mappings":"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"}
|
package/docs/openapi-output.yaml
CHANGED
|
@@ -49,9 +49,6 @@ tags:
|
|
|
49
49
|
|
|
50
50
|
- name: 🕒 Public Departures (v2)
|
|
51
51
|
description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" />
|
|
52
|
-
|
|
53
|
-
- name: 🕒 Public Departures (v3)
|
|
54
|
-
description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" />
|
|
55
52
|
- name: ⚠ JIS (v1) - internal
|
|
56
53
|
description: Endpoints for internal use
|
|
57
54
|
|
|
@@ -2101,7 +2098,6 @@ paths:
|
|
|
2101
2098
|
summary: Get Departure Boards
|
|
2102
2099
|
description: |
|
|
2103
2100
|
ℹ️ Note: This endpoint is optimized for client applications serving many users simultaneously. It provides streamlined data structures and caching strategies suitable for client-side consumption. Rate limits can be adjusted upon request - contact us if you need higher limits. Note: Despite the 'public' prefix, this endpoint requires an API key for access control and usage monitoring.
|
|
2104
|
-
New integrations should use `/v3/public/departureboards`.
|
|
2105
2101
|
parameters:
|
|
2106
2102
|
- in: query
|
|
2107
2103
|
name: stopIds
|
|
@@ -2135,7 +2131,7 @@ paths:
|
|
|
2135
2131
|
required: false
|
|
2136
2132
|
schema:
|
|
2137
2133
|
type: integer
|
|
2138
|
-
minimum:
|
|
2134
|
+
minimum: 0
|
|
2139
2135
|
maximum: 360
|
|
2140
2136
|
description: Default is 60. Maximum is 360 (6 hours)
|
|
2141
2137
|
example: 60
|
|
@@ -2167,7 +2163,7 @@ paths:
|
|
|
2167
2163
|
description: Cache control directive for caching proxies
|
|
2168
2164
|
schema:
|
|
2169
2165
|
type: string
|
|
2170
|
-
example: public, s-maxage=
|
|
2166
|
+
example: public, s-maxage=5, stale-while-revalidate=5
|
|
2171
2167
|
content:
|
|
2172
2168
|
application/json:
|
|
2173
2169
|
schema:
|
|
@@ -2190,94 +2186,6 @@ paths:
|
|
|
2190
2186
|
maxItems: 0
|
|
2191
2187
|
items:
|
|
2192
2188
|
type: object
|
|
2193
|
-
/v3/public/departureboards:
|
|
2194
|
-
get:
|
|
2195
|
-
tags:
|
|
2196
|
-
- 🕒 Public Departures (v3)
|
|
2197
|
-
summary: Get Departure Boards
|
|
2198
|
-
description: |
|
|
2199
|
-
ℹ️ Note: This endpoint is optimized for client applications serving many users simultaneously. It provides streamlined data structures and caching strategies suitable for client-side consumption. Rate limits can be adjusted upon request - contact us if you need higher limits. Note: Despite the 'public' prefix, this endpoint requires an API key for access control and usage monitoring.
|
|
2200
|
-
Departures are returned grouped by the requested priority groups, each with the requested stop IDs.
|
|
2201
|
-
parameters:
|
|
2202
|
-
- in: query
|
|
2203
|
-
name: stopIds
|
|
2204
|
-
required: true
|
|
2205
|
-
schema:
|
|
2206
|
-
type: array
|
|
2207
|
-
items:
|
|
2208
|
-
type: string
|
|
2209
|
-
example: ["{\"0\": [\"U717Z5P\"]}", "{\"1\": [\"U718Z5P\", \"U719Z5P\"]}"]
|
|
2210
|
-
description: |
|
|
2211
|
-
Groups of stop IDs formatted as JSON (index/priority -> stop IDs). For example ?stopIds[]={\"0\": [\"U717Z5P\"]}&stopIds[]={\"1\": [\"U718Z5P\", \"U719Z5P\"]}.
|
|
2212
|
-
The maximum number of groups is 50. The maximum number of stops in one group is 50. The maximum number of stops combined is 50.
|
|
2213
|
-
- in: query
|
|
2214
|
-
name: limit
|
|
2215
|
-
required: false
|
|
2216
|
-
schema:
|
|
2217
|
-
type: integer
|
|
2218
|
-
description: Limit for each group of departures. Default is 5. Maximum is 30.
|
|
2219
|
-
example: 5
|
|
2220
|
-
- in: query
|
|
2221
|
-
name: routeShortNames
|
|
2222
|
-
required: false
|
|
2223
|
-
schema:
|
|
2224
|
-
type: array
|
|
2225
|
-
items:
|
|
2226
|
-
type: string
|
|
2227
|
-
example: ["27"]
|
|
2228
|
-
description: Default is null
|
|
2229
|
-
- in: query
|
|
2230
|
-
name: minutesAfter
|
|
2231
|
-
required: false
|
|
2232
|
-
schema:
|
|
2233
|
-
type: integer
|
|
2234
|
-
minimum: 1
|
|
2235
|
-
maximum: 360
|
|
2236
|
-
description: Default is 60. Maximum is 360 (6 hours)
|
|
2237
|
-
example: 60
|
|
2238
|
-
- in: query
|
|
2239
|
-
name: minutesBefore
|
|
2240
|
-
required: false
|
|
2241
|
-
schema:
|
|
2242
|
-
type: integer
|
|
2243
|
-
minimum: -359
|
|
2244
|
-
maximum: 30
|
|
2245
|
-
description: "Set the starting point of the departure retrieval window, in minutes, relative to now (or to timeFrom, if used). Positive values will return departures starting earlier in the past. Negative values will return departures starting later in the future. This setting helps account for walking time to the stop. Example: 2 returns departures that left 2 minutes ago. -10 returns departures no earlier than 10 minutes from now. Default is set to 0. Maximum value is 30. Minimum value is -359."
|
|
2246
|
-
example: 0
|
|
2247
|
-
- in: header
|
|
2248
|
-
name: Accept-Encoding
|
|
2249
|
-
description: Indicate the content encoding (usually a compression algorithm) that the client can understand. See [mdn](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding) for more details. Note that for this endpoint, if no value is given, gzip compression will be used by default (the `identity` value can be used to opt out of the default compression).
|
|
2250
|
-
required: false
|
|
2251
|
-
schema:
|
|
2252
|
-
oneOf:
|
|
2253
|
-
- type: string
|
|
2254
|
-
enum:
|
|
2255
|
-
- gzip
|
|
2256
|
-
- identity
|
|
2257
|
-
|
|
2258
|
-
responses:
|
|
2259
|
-
200:
|
|
2260
|
-
description: OK
|
|
2261
|
-
headers:
|
|
2262
|
-
Cache-Control:
|
|
2263
|
-
description: Cache control directive for caching proxies
|
|
2264
|
-
schema:
|
|
2265
|
-
type: string
|
|
2266
|
-
example: public, s-maxage=3, stale-while-revalidate=2
|
|
2267
|
-
content:
|
|
2268
|
-
application/json:
|
|
2269
|
-
schema:
|
|
2270
|
-
$ref: "#/components/schemas/PublicDepartureBoardsResponse"
|
|
2271
|
-
400:
|
|
2272
|
-
$ref: "#/components/responses/BadRequestError"
|
|
2273
|
-
401:
|
|
2274
|
-
$ref: "#/components/responses/UnauthorizedError"
|
|
2275
|
-
404:
|
|
2276
|
-
description: Not found - no stops found for the given query parameters
|
|
2277
|
-
content:
|
|
2278
|
-
application/json:
|
|
2279
|
-
schema:
|
|
2280
|
-
$ref: "#/components/schemas/NotFoundErrorObject"
|
|
2281
2189
|
/v1/jis/events/custom-format:
|
|
2282
2190
|
get:
|
|
2283
2191
|
tags:
|
|
@@ -2354,7 +2262,23 @@ components:
|
|
|
2354
2262
|
content:
|
|
2355
2263
|
application/json:
|
|
2356
2264
|
schema:
|
|
2357
|
-
|
|
2265
|
+
type: object
|
|
2266
|
+
properties:
|
|
2267
|
+
error_message:
|
|
2268
|
+
type: string
|
|
2269
|
+
example: "Bad request"
|
|
2270
|
+
nullable: false
|
|
2271
|
+
error_status:
|
|
2272
|
+
type: integer
|
|
2273
|
+
example: 400
|
|
2274
|
+
nullable: false
|
|
2275
|
+
error_info:
|
|
2276
|
+
type: string
|
|
2277
|
+
example: "{...}"
|
|
2278
|
+
nullable: true
|
|
2279
|
+
required:
|
|
2280
|
+
- error_message
|
|
2281
|
+
- error_status
|
|
2358
2282
|
|
|
2359
2283
|
UnauthorizedError:
|
|
2360
2284
|
description: API key is missing or invalid
|
|
@@ -2365,7 +2289,19 @@ components:
|
|
|
2365
2289
|
content:
|
|
2366
2290
|
application/json:
|
|
2367
2291
|
schema:
|
|
2368
|
-
|
|
2292
|
+
type: object
|
|
2293
|
+
properties:
|
|
2294
|
+
error_message:
|
|
2295
|
+
type: string
|
|
2296
|
+
example: "Unauthorized. Failed to authenticate user."
|
|
2297
|
+
nullable: false
|
|
2298
|
+
error_status:
|
|
2299
|
+
type: integer
|
|
2300
|
+
example: 401
|
|
2301
|
+
nullable: false
|
|
2302
|
+
required:
|
|
2303
|
+
- error_message
|
|
2304
|
+
- error_status
|
|
2369
2305
|
|
|
2370
2306
|
|
|
2371
2307
|
parameters:
|
|
@@ -4157,113 +4093,27 @@ components:
|
|
|
4157
4093
|
enum:
|
|
4158
4094
|
- Point
|
|
4159
4095
|
|
|
4160
|
-
BadRequestErrorObject:
|
|
4161
|
-
type: object
|
|
4162
|
-
properties:
|
|
4163
|
-
error_message:
|
|
4164
|
-
type: string
|
|
4165
|
-
example: "Bad request"
|
|
4166
|
-
nullable: false
|
|
4167
|
-
error_status:
|
|
4168
|
-
type: integer
|
|
4169
|
-
example: 400
|
|
4170
|
-
nullable: false
|
|
4171
|
-
error_info:
|
|
4172
|
-
type: string
|
|
4173
|
-
example: "{...}"
|
|
4174
|
-
nullable: true
|
|
4175
|
-
required:
|
|
4176
|
-
- error_message
|
|
4177
|
-
- error_status
|
|
4178
|
-
|
|
4179
|
-
UnauthorizedErrorObject:
|
|
4180
|
-
type: object
|
|
4181
|
-
properties:
|
|
4182
|
-
error_message:
|
|
4183
|
-
type: string
|
|
4184
|
-
example: "Unauthorized. Failed to authenticate user."
|
|
4185
|
-
nullable: false
|
|
4186
|
-
error_status:
|
|
4187
|
-
type: integer
|
|
4188
|
-
example: 401
|
|
4189
|
-
nullable: false
|
|
4190
|
-
required:
|
|
4191
|
-
- error_message
|
|
4192
|
-
- error_status
|
|
4193
|
-
|
|
4194
|
-
NotFoundErrorObject:
|
|
4195
|
-
type: object
|
|
4196
|
-
properties:
|
|
4197
|
-
error_message:
|
|
4198
|
-
type: string
|
|
4199
|
-
example: "Not Found"
|
|
4200
|
-
nullable: false
|
|
4201
|
-
error_status:
|
|
4202
|
-
type: integer
|
|
4203
|
-
example: 404
|
|
4204
|
-
nullable: false
|
|
4205
|
-
required:
|
|
4206
|
-
- error_message
|
|
4207
|
-
- error_status
|
|
4208
|
-
|
|
4209
|
-
PublicDepartureBoardsResponse:
|
|
4210
|
-
type: object
|
|
4211
|
-
properties:
|
|
4212
|
-
stop_groups:
|
|
4213
|
-
type: array
|
|
4214
|
-
items:
|
|
4215
|
-
$ref: "#/components/schemas/PublicDepartureStopGroup"
|
|
4216
|
-
required:
|
|
4217
|
-
- stop_groups
|
|
4218
|
-
|
|
4219
|
-
PublicDepartureStopGroup:
|
|
4220
|
-
type: object
|
|
4221
|
-
properties:
|
|
4222
|
-
priority:
|
|
4223
|
-
type: integer
|
|
4224
|
-
description: Priority of the group as requested
|
|
4225
|
-
example: 0
|
|
4226
|
-
nullable: false
|
|
4227
|
-
stop_ids:
|
|
4228
|
-
type: array
|
|
4229
|
-
description: Stop IDs of the group as requested (duplicates removed)
|
|
4230
|
-
items:
|
|
4231
|
-
type: string
|
|
4232
|
-
example: ["U717Z5P"]
|
|
4233
|
-
departures:
|
|
4234
|
-
type: array
|
|
4235
|
-
description: Departures for the group, empty if there are none or the stops are unknown
|
|
4236
|
-
items:
|
|
4237
|
-
$ref: "#/components/schemas/PublicDepartureItem"
|
|
4238
|
-
required:
|
|
4239
|
-
- priority
|
|
4240
|
-
- stop_ids
|
|
4241
|
-
- departures
|
|
4242
|
-
|
|
4243
4096
|
PublicDepartureGroup:
|
|
4244
4097
|
type: array
|
|
4245
4098
|
items:
|
|
4246
|
-
|
|
4247
|
-
|
|
4248
|
-
|
|
4249
|
-
|
|
4250
|
-
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
|
|
4254
|
-
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
|
|
4258
|
-
|
|
4259
|
-
|
|
4260
|
-
|
|
4261
|
-
|
|
4262
|
-
|
|
4263
|
-
|
|
4264
|
-
- route
|
|
4265
|
-
- trip
|
|
4266
|
-
- vehicle
|
|
4099
|
+
type: object
|
|
4100
|
+
properties:
|
|
4101
|
+
departure:
|
|
4102
|
+
$ref: "#/components/schemas/PublicDeparture"
|
|
4103
|
+
stop:
|
|
4104
|
+
$ref: "#/components/schemas/PublicDepartureStop"
|
|
4105
|
+
route:
|
|
4106
|
+
$ref: "#/components/schemas/PublicDepartureRoute"
|
|
4107
|
+
trip:
|
|
4108
|
+
$ref: "#/components/schemas/PublicDepartureTrip"
|
|
4109
|
+
vehicle:
|
|
4110
|
+
$ref: "#/components/schemas/PublicDepartureVehicle"
|
|
4111
|
+
required:
|
|
4112
|
+
- departure
|
|
4113
|
+
- stop
|
|
4114
|
+
- route
|
|
4115
|
+
- trip
|
|
4116
|
+
- vehicle
|
|
4267
4117
|
|
|
4268
4118
|
PublicDeparture:
|
|
4269
4119
|
type: object
|
|
@@ -4291,7 +4141,6 @@ components:
|
|
|
4291
4141
|
required:
|
|
4292
4142
|
- timestamp_scheduled
|
|
4293
4143
|
- timestamp_predicted
|
|
4294
|
-
- delay_seconds
|
|
4295
4144
|
- minutes
|
|
4296
4145
|
|
|
4297
4146
|
PublicDepartureStop:
|
|
@@ -4312,7 +4161,6 @@ components:
|
|
|
4312
4161
|
required:
|
|
4313
4162
|
- id
|
|
4314
4163
|
- sequence
|
|
4315
|
-
- platform_code
|
|
4316
4164
|
|
|
4317
4165
|
PublicDepartureRoute:
|
|
4318
4166
|
type: object
|
|
@@ -4344,11 +4192,10 @@ components:
|
|
|
4344
4192
|
is_canceled:
|
|
4345
4193
|
type: boolean
|
|
4346
4194
|
example: false
|
|
4347
|
-
nullable:
|
|
4195
|
+
nullable: true
|
|
4348
4196
|
required:
|
|
4349
4197
|
- id
|
|
4350
4198
|
- headsign
|
|
4351
|
-
- is_canceled
|
|
4352
4199
|
|
|
4353
4200
|
PublicDepartureVehicle:
|
|
4354
4201
|
type: object
|
|
@@ -4369,11 +4216,6 @@ components:
|
|
|
4369
4216
|
type: boolean
|
|
4370
4217
|
example: true
|
|
4371
4218
|
nullable: true
|
|
4372
|
-
required:
|
|
4373
|
-
- id
|
|
4374
|
-
- is_wheelchair_accessible
|
|
4375
|
-
- is_air_conditioned
|
|
4376
|
-
- has_charger
|
|
4377
4219
|
|
|
4378
4220
|
EventId:
|
|
4379
4221
|
type: string
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@golemio/pid",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.3.0-rc.3026394339",
|
|
4
4
|
"description": "Golemio PID Module",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -123,7 +123,7 @@
|
|
|
123
123
|
"@golemio/core": "^4.0.1-dev.2 || ^4.0.1"
|
|
124
124
|
},
|
|
125
125
|
"dependencies": {
|
|
126
|
-
"@golemio/ovapi-gtfs-realtime-bindings": "1.4.1
|
|
126
|
+
"@golemio/ovapi-gtfs-realtime-bindings": "1.4.1",
|
|
127
127
|
"@turf/turf": "^6.5.0",
|
|
128
128
|
"cheap-ruler": "^3.0.2",
|
|
129
129
|
"csv-parser": "^3.0.0",
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { ParsedQs } from "@golemio/core/dist/shared/qs.js";
|
|
2
|
-
import { type IDepartureBoardsParams, type IDepartureBoardsStopIdGroups } from "../v2/interfaces/PublicParamsInterfaces.js";
|
|
3
|
-
export declare class DepartureBoardsParamsParser {
|
|
4
|
-
static parseDepartureParams(query: ParsedQs): IDepartureBoardsParams;
|
|
5
|
-
static parseStopIds(stopIdsFromInput: string[]): Set<IDepartureBoardsStopIdGroups>;
|
|
6
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export class DepartureBoardsParamsParser {
|
|
2
|
-
static parseDepartureParams(query) {
|
|
3
|
-
return {
|
|
4
|
-
stopIds: this.parseStopIds(query.stopIds instanceof Array ? query.stopIds : [query.stopIds]),
|
|
5
|
-
routeShortNames: query.routeShortNames
|
|
6
|
-
? query.routeShortNames instanceof Array
|
|
7
|
-
? query.routeShortNames
|
|
8
|
-
: [query.routeShortNames]
|
|
9
|
-
: null,
|
|
10
|
-
limit: query.limit ? parseInt(query.limit) : 5,
|
|
11
|
-
minutesAfter: query.minutesAfter ? parseInt(query.minutesAfter) : 60,
|
|
12
|
-
minutesBefore: query.minutesBefore ? parseInt(query.minutesBefore) : 0,
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
static parseStopIds(stopIdsFromInput) {
|
|
16
|
-
const output = new Set();
|
|
17
|
-
for (const stopId of stopIdsFromInput) {
|
|
18
|
-
const parsed = JSON.parse(stopId);
|
|
19
|
-
const priority = Object.keys(parsed)[0];
|
|
20
|
-
const stopIds = parsed[priority];
|
|
21
|
-
output.add({
|
|
22
|
-
priority: Number.parseInt(priority),
|
|
23
|
-
stopIds: [...new Set(stopIds)],
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
return output;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=DepartureBoardsParamsParser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DepartureBoardsParamsParser.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/controllers/helpers/DepartureBoardsParamsParser.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,2BAA2B;IAC7B,MAAM,CAAC,oBAAoB,CAAC,KAAe;QAC9C,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,YAAY,KAAK,CAAC,CAAC,CAAE,KAAK,CAAC,OAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAiB,CAAC,CAAC;YACpH,eAAe,EAAE,KAAK,CAAC,eAAe;gBAClC,CAAC,CAAC,KAAK,CAAC,eAAe,YAAY,KAAK;oBACpC,CAAC,CAAE,KAAK,CAAC,eAA4B;oBACrC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAyB,CAAC;gBACvC,CAAC,CAAC,IAAI;YACV,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAsB,CAAC,CAAC,CAAC,CAAC,EAAE;YAC9E,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;SACnF,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,gBAA0B;QACjD,MAAM,MAAM,GAAsC,IAAI,GAAG,EAAE,CAAC;QAE5D,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,OAAO,GAAa,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE3C,MAAM,CAAC,GAAG,CAAC;gBACP,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACnC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;aACjC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { DepartureBoardFacade } from "#og/public/service/facade/DepartureBoardFacade";
|
|
2
|
-
import type { RequestHandler } from "@golemio/core/dist/shared/express.js";
|
|
3
|
-
export declare class V3PublicDepartureBoardsController {
|
|
4
|
-
private readonly departureBoardFacade;
|
|
5
|
-
constructor(departureBoardFacade: DepartureBoardFacade);
|
|
6
|
-
getAll: RequestHandler;
|
|
7
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
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;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
-
};
|
|
13
|
-
import { OgModuleToken } from "#og/public/ioc/OgModuleToken";
|
|
14
|
-
import { DepartureBoardFacade } from "#og/public/service/facade/DepartureBoardFacade";
|
|
15
|
-
import { createChildSpan } from "@golemio/core/dist/monitoring/opentelemetry/trace-provider.js";
|
|
16
|
-
import ExpressValidatorCore from "@golemio/core/dist/shared/express-validator.js";
|
|
17
|
-
const { matchedData } = ExpressValidatorCore;
|
|
18
|
-
import GolemioErrorsCore from "@golemio/core/dist/shared/golemio-errors.js";
|
|
19
|
-
const { GeneralError } = GolemioErrorsCore;
|
|
20
|
-
import { inject, injectable } from "@golemio/core/dist/shared/tsyringe.js";
|
|
21
|
-
import { DepartureBoardsParamsParser } from "../helpers/DepartureBoardsParamsParser.js";
|
|
22
|
-
let V3PublicDepartureBoardsController = class V3PublicDepartureBoardsController {
|
|
23
|
-
constructor(departureBoardFacade) {
|
|
24
|
-
this.departureBoardFacade = departureBoardFacade;
|
|
25
|
-
this.getAll = async (req, res, next) => {
|
|
26
|
-
const span = createChildSpan("V3PublicDepartureBoardsController.getAll");
|
|
27
|
-
const queryData = matchedData(req);
|
|
28
|
-
try {
|
|
29
|
-
const params = DepartureBoardsParamsParser.parseDepartureParams(queryData);
|
|
30
|
-
const result = await this.departureBoardFacade.getAll(params.stopIds, params.limit, params.routeShortNames, params.minutesAfter, params.minutesBefore);
|
|
31
|
-
if (result === null) {
|
|
32
|
-
throw new GeneralError("No departures found for the given stop ids", this.constructor.name, undefined, 404);
|
|
33
|
-
}
|
|
34
|
-
const response = {
|
|
35
|
-
stop_groups: result.map((group) => ({
|
|
36
|
-
priority: group.priority,
|
|
37
|
-
stop_ids: group.stopIds,
|
|
38
|
-
departures: group.departures ?? [],
|
|
39
|
-
})),
|
|
40
|
-
};
|
|
41
|
-
res.json(response);
|
|
42
|
-
}
|
|
43
|
-
catch (err) {
|
|
44
|
-
next(err);
|
|
45
|
-
}
|
|
46
|
-
finally {
|
|
47
|
-
span?.end();
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
V3PublicDepartureBoardsController = __decorate([
|
|
53
|
-
injectable(),
|
|
54
|
-
__param(0, inject(OgModuleToken.DepartureBoardFacade)),
|
|
55
|
-
__metadata("design:paramtypes", [DepartureBoardFacade])
|
|
56
|
-
], V3PublicDepartureBoardsController);
|
|
57
|
-
export { V3PublicDepartureBoardsController };
|
|
58
|
-
//# sourceMappingURL=V3PublicDepartureBoardsController.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"V3PublicDepartureBoardsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/controllers/v3/V3PublicDepartureBoardsController.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,+DAA+D,CAAC;AAEhG,OAAO,oBAAoB,MAAM,gDAAgD,CAAC;AAClF,MAAM,EAAE,WAAW,EAAE,GAAG,oBAAoB,CAAC;AAC7C,OAAO,iBAAiB,MAAM,6CAA6C,CAAC;AAC5E,MAAM,EAAE,YAAY,EAAE,GAAG,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAGjF,IAAM,iCAAiC,GAAvC,MAAM,iCAAiC;IAC1C,YAAwD,oBAA2D;QAA1C,yBAAoB,GAApB,oBAAoB,CAAsB;QAE5G,WAAM,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACrD,MAAM,IAAI,GAAG,eAAe,CAAC,0CAA0C,CAAC,CAAC;YACzE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,2BAA2B,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;gBAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CACjD,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,aAAa,CACvB,CAAC;gBAEF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBAClB,MAAM,IAAI,YAAY,CAAC,4CAA4C,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;gBAChH,CAAC;gBAED,MAAM,QAAQ,GAAuC;oBACjD,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,QAAQ,EAAE,KAAK,CAAC,OAAO;wBACvB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;qBACrC,CAAC,CAAC;iBACN,CAAC;gBACF,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,IAAI,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;oBAAS,CAAC;gBACP,IAAI,EAAE,GAAG,EAAE,CAAC;YAChB,CAAC;QACL,CAAC,CAAC;IAhCoH,CAAC;CAiC1H,CAAA;AAlCY,iCAAiC;IAD7C,UAAU,EAAE;IAEI,WAAA,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAA;qCAAwC,oBAAoB;GAD1G,iCAAiC,CAkC7C"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { AbstractRouter } from "@golemio/core/dist/helpers/routing/AbstractRouter.js";
|
|
2
|
-
import type { Router as TRouter } from "@golemio/core/dist/shared/express.js";
|
|
3
|
-
export declare class V3PublicDeparturesRouter extends AbstractRouter {
|
|
4
|
-
router: TRouter;
|
|
5
|
-
private cacheHeaderMiddleware;
|
|
6
|
-
private compressionByDefaultMiddleware;
|
|
7
|
-
private departureController;
|
|
8
|
-
constructor();
|
|
9
|
-
protected initRoutes(): void;
|
|
10
|
-
}
|
|
11
|
-
declare const v3PublicDeparturesRouter: AbstractRouter;
|
|
12
|
-
export { v3PublicDeparturesRouter };
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { OgPublicContainer } from "#og/public/ioc/Di";
|
|
2
|
-
import { OgModuleToken } from "#og/public/ioc/OgModuleToken";
|
|
3
|
-
import { RouteVersion } from "#og/shared/constants/index";
|
|
4
|
-
import { AbstractRouter } from "@golemio/core/dist/helpers/routing/AbstractRouter.js";
|
|
5
|
-
import { checkErrors } from "@golemio/core/dist/output-gateway/Validation.js";
|
|
6
|
-
import { ContainerToken } from "@golemio/core/dist/output-gateway/ioc/index.js";
|
|
7
|
-
import ExpressCore from "@golemio/core/dist/shared/express.js";
|
|
8
|
-
const { Router } = ExpressCore;
|
|
9
|
-
import ExpressValidatorCore from "@golemio/core/dist/shared/express-validator.js";
|
|
10
|
-
const { query } = ExpressValidatorCore;
|
|
11
|
-
import { CustomStopIdGroupValidator } from "../v2/helpers/CustomStopIdGroupValidator.js";
|
|
12
|
-
export class V3PublicDeparturesRouter extends AbstractRouter {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(RouteVersion.v3, "public/departureboards");
|
|
15
|
-
this.router = Router();
|
|
16
|
-
this.cacheHeaderMiddleware = OgPublicContainer.resolve(ContainerToken.CacheHeaderMiddleware);
|
|
17
|
-
this.compressionByDefaultMiddleware = OgPublicContainer.resolve(ContainerToken.CompressionByDefaultMiddleware);
|
|
18
|
-
this.departureController = OgPublicContainer.resolve(OgModuleToken.V3PublicDepartureBoardsController);
|
|
19
|
-
// GtfsStopsSubscriber is initialized by the v2 router (shared singleton, initialize is not idempotent).
|
|
20
|
-
// Take over the initialization here when the v2 router is removed.
|
|
21
|
-
this.initRoutes();
|
|
22
|
-
}
|
|
23
|
-
initRoutes() {
|
|
24
|
-
this.router.get("/", [
|
|
25
|
-
query("stopIds").exists().custom(CustomStopIdGroupValidator.validate),
|
|
26
|
-
query("limit").optional().isInt({ min: 1, max: 30 }).not().isArray(),
|
|
27
|
-
query("routeShortNames").optional().not().isEmpty({ ignore_whitespace: true }),
|
|
28
|
-
query("minutesAfter").optional().isInt({ min: 1, max: 360 }).not().isArray(),
|
|
29
|
-
query("minutesBefore").optional().isInt({ min: -359, max: 30 }).not().isArray(),
|
|
30
|
-
], checkErrors,
|
|
31
|
-
// max-age 3 seconds, stale-while-revalidate 2 seconds
|
|
32
|
-
this.cacheHeaderMiddleware.getMiddleware(3, 2), this.compressionByDefaultMiddleware.getMiddleware(), this.departureController.getAll);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
const v3PublicDeparturesRouter = new V3PublicDeparturesRouter();
|
|
36
|
-
export { v3PublicDeparturesRouter };
|
|
37
|
-
//# sourceMappingURL=V3PublicDeparturesRouter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"V3PublicDeparturesRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/routers/v3/V3PublicDeparturesRouter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAGtF,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAEhF,OAAO,WAAW,MAAM,sCAAsC,CAAC;AAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;AAC/B,OAAO,oBAAoB,MAAM,gDAAgD,CAAC;AAClF,MAAM,EAAE,KAAK,EAAE,GAAG,oBAAoB,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAEzF,MAAM,OAAO,wBAAyB,SAAQ,cAAc;IAMxD;QACI,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,qBAAqB,GAAG,iBAAiB,CAAC,OAAO,CAAwB,cAAc,CAAC,qBAAqB,CAAC,CAAC;QACpH,IAAI,CAAC,8BAA8B,GAAG,iBAAiB,CAAC,OAAO,CAC3D,cAAc,CAAC,8BAA8B,CAChD,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,OAAO,CAChD,aAAa,CAAC,iCAAiC,CAClD,CAAC;QACF,wGAAwG;QACxG,mEAAmE;QACnE,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU;QAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,GAAG,EACH;YACI,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,QAAQ,CAAC;YACrE,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YACpE,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;YAC9E,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YAC5E,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;SAClF,EACD,WAAW;QACX,sDAAsD;QACtD,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9C,IAAI,CAAC,8BAA8B,CAAC,aAAa,EAAE,EACnD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAClC,CAAC;IACN,CAAC;CACJ;AAED,MAAM,wBAAwB,GAAmB,IAAI,wBAAwB,EAAE,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|