@golemio/pid 6.3.0-rc.3026747864 → 6.3.0-rc.3053576965
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/jis/transformations/JISEventsGtfsRtTransformation.d.ts +1 -0
- package/dist/integration-engine/jis/transformations/JISEventsGtfsRtTransformation.js +9 -0
- package/dist/integration-engine/jis/transformations/JISEventsGtfsRtTransformation.js.map +1 -1
- package/dist/output-gateway/index.js +2 -1
- package/dist/output-gateway/index.js.map +1 -1
- package/dist/output-gateway/public/controllers/helpers/DepartureBoardsParamsParser.d.ts +6 -0
- package/dist/output-gateway/public/controllers/helpers/DepartureBoardsParamsParser.js +29 -0
- package/dist/output-gateway/public/controllers/helpers/DepartureBoardsParamsParser.js.map +1 -0
- package/dist/output-gateway/public/controllers/v2/V2PublicDepartureBoardsController.d.ts +0 -2
- package/dist/output-gateway/public/controllers/v2/V2PublicDepartureBoardsController.js +3 -28
- package/dist/output-gateway/public/controllers/v2/V2PublicDepartureBoardsController.js.map +1 -1
- package/dist/output-gateway/public/controllers/v3/V3PublicDepartureBoardsController.d.ts +7 -0
- package/dist/output-gateway/public/controllers/v3/V3PublicDepartureBoardsController.js +58 -0
- package/dist/output-gateway/public/controllers/v3/V3PublicDepartureBoardsController.js.map +1 -0
- package/dist/output-gateway/public/domain/PublicApiDepartureInterfaces.d.ts +14 -1
- package/dist/output-gateway/public/ioc/Di.js +2 -0
- package/dist/output-gateway/public/ioc/Di.js.map +1 -1
- package/dist/output-gateway/public/ioc/OgModuleToken.d.ts +1 -0
- package/dist/output-gateway/public/ioc/OgModuleToken.js +1 -0
- package/dist/output-gateway/public/ioc/OgModuleToken.js.map +1 -1
- package/dist/output-gateway/public/routers/index.d.ts +1 -0
- package/dist/output-gateway/public/routers/index.js +1 -0
- package/dist/output-gateway/public/routers/index.js.map +1 -1
- package/dist/output-gateway/public/routers/v3/V3PublicDeparturesRouter.d.ts +12 -0
- package/dist/output-gateway/public/routers/v3/V3PublicDeparturesRouter.js +37 -0
- package/dist/output-gateway/public/routers/v3/V3PublicDeparturesRouter.js.map +1 -0
- package/dist/output-gateway/public/service/facade/DepartureBoardFacade.d.ts +2 -2
- package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js +6 -10
- package/dist/output-gateway/public/service/facade/DepartureBoardFacade.js.map +1 -1
- package/docs/jis/index.md +2 -2
- package/docs/openapi-output.yaml +320 -3
- package/package.json +1 -1
|
@@ -10,6 +10,7 @@ type TransformOut = IGtfsRtAlert;
|
|
|
10
10
|
export declare class JISEventsGtfsRtTransformation extends AbstractTransformation<TransformIn, TransformOut> {
|
|
11
11
|
name: string;
|
|
12
12
|
private static PID_WEB_EVENTS_URL;
|
|
13
|
+
private static readonly SEVERITY_LEVEL_MAPPING;
|
|
13
14
|
protected transformInternal: (data: TransformIn) => TransformOut;
|
|
14
15
|
}
|
|
15
16
|
export {};
|
|
@@ -6,6 +6,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
var JISEventsGtfsRtTransformation_1;
|
|
8
8
|
import { JISEventEffectHelper } from "#helpers/jis/JISEventEffectHelper";
|
|
9
|
+
import { JISEventSeverityLevel } from "#helpers/jis/JISEventSeverityLevelEnum";
|
|
10
|
+
import { GtfsAlertSeverityLevelEnum } from "#ie/vehicle-positions/workers/gtfs-rt/interfaces/AlertsInterfaces";
|
|
9
11
|
import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation.js";
|
|
10
12
|
import { injectable } from "@golemio/core/dist/shared/tsyringe.js";
|
|
11
13
|
let JISEventsGtfsRtTransformation = JISEventsGtfsRtTransformation_1 = class JISEventsGtfsRtTransformation extends AbstractTransformation {
|
|
@@ -32,6 +34,7 @@ let JISEventsGtfsRtTransformation = JISEventsGtfsRtTransformation_1 = class JISE
|
|
|
32
34
|
],
|
|
33
35
|
},
|
|
34
36
|
effect: JISEventEffectHelper.getMainEffect(data.effect),
|
|
37
|
+
severityLevel: JISEventsGtfsRtTransformation_1.SEVERITY_LEVEL_MAPPING[data.severity_level],
|
|
35
38
|
url: {
|
|
36
39
|
translation: [
|
|
37
40
|
...(data.url.cs !== "nevyplněno"
|
|
@@ -64,6 +67,12 @@ let JISEventsGtfsRtTransformation = JISEventsGtfsRtTransformation_1 = class JISE
|
|
|
64
67
|
}
|
|
65
68
|
};
|
|
66
69
|
JISEventsGtfsRtTransformation.PID_WEB_EVENTS_URL = "https://pid.cz/mimoradnost/?uuid=";
|
|
70
|
+
// Record (not a cast) so that a new JIS severity level fails compilation instead of leaking into the feed
|
|
71
|
+
JISEventsGtfsRtTransformation.SEVERITY_LEVEL_MAPPING = {
|
|
72
|
+
[JISEventSeverityLevel.Info]: GtfsAlertSeverityLevelEnum.INFO,
|
|
73
|
+
[JISEventSeverityLevel.Warning]: GtfsAlertSeverityLevelEnum.WARNING,
|
|
74
|
+
[JISEventSeverityLevel.Severe]: GtfsAlertSeverityLevelEnum.SEVERE,
|
|
75
|
+
};
|
|
67
76
|
JISEventsGtfsRtTransformation = JISEventsGtfsRtTransformation_1 = __decorate([
|
|
68
77
|
injectable()
|
|
69
78
|
], JISEventsGtfsRtTransformation);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JISEventsGtfsRtTransformation.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/transformations/JISEventsGtfsRtTransformation.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"JISEventsGtfsRtTransformation.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/transformations/JISEventsGtfsRtTransformation.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 } from "#og/public/index";
|
|
2
|
+
import { v2PublicDeparturesRouter, v2PublicGtfsRouter, v2PublicVPRouter, v3PublicDeparturesRouter } 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,6 +19,7 @@ export const routers = [
|
|
|
19
19
|
//#endregion
|
|
20
20
|
//#region Public Endpoints
|
|
21
21
|
v2PublicDeparturesRouter,
|
|
22
|
+
v3PublicDeparturesRouter,
|
|
22
23
|
v2PublicGtfsRouter,
|
|
23
24
|
v2PublicVPRouter,
|
|
24
25
|
//#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,MAAM,kBAAkB,CAAC;
|
|
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,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5H,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,wBAAwB;IACxB,kBAAkB;IAClB,gBAAgB;IAChB,YAAY;IAEZ,uBAAuB;IACvB,WAAW;IACX,YAAY;CACf,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -3,6 +3,7 @@ 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";
|
|
6
7
|
export class V2PublicDepartureBoardsController {
|
|
7
8
|
constructor() {
|
|
8
9
|
this.getAll = async (req, res, next) => {
|
|
@@ -10,13 +11,13 @@ export class V2PublicDepartureBoardsController {
|
|
|
10
11
|
const queryData = matchedData(req);
|
|
11
12
|
try {
|
|
12
13
|
const facade = OgPublicContainer.resolve(OgModuleToken.DepartureBoardFacade);
|
|
13
|
-
const params =
|
|
14
|
+
const params = DepartureBoardsParamsParser.parseDepartureParams(queryData);
|
|
14
15
|
const result = await facade.getAll(params.stopIds, params.limit, params.routeShortNames, params.minutesAfter, params.minutesBefore);
|
|
15
16
|
if (result === null) {
|
|
16
17
|
res.status(404).json([]);
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
19
|
-
res.json(result);
|
|
20
|
+
res.json(result.map((group) => group.departures ?? []));
|
|
20
21
|
}
|
|
21
22
|
catch (err) {
|
|
22
23
|
next(err);
|
|
@@ -26,31 +27,5 @@ export class V2PublicDepartureBoardsController {
|
|
|
26
27
|
}
|
|
27
28
|
};
|
|
28
29
|
}
|
|
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
|
-
}
|
|
55
30
|
}
|
|
56
31
|
//# 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":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,+DAA+D,CAAC;AAChG,OAAO,oBAAoB,MAAM,gDAAgD,CAAC;AAClF,MAAM,EAAE,WAAW,EAAE,GAAG,oBAAoB,CAAC;AAC7C,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAExF,MAAM,OAAO,iCAAiC;IAC1C;QAEO,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,iBAAiB,CAAC,OAAO,CAAuB,aAAa,CAAC,oBAAoB,CAAC,CAAC;gBACnG,MAAM,MAAM,GAAG,2BAA2B,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;gBAC3E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAC9B,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,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACzB,OAAO;gBACX,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5D,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;IA1Ba,CAAC;CA2BnB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -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;
|
|
20
20
|
}
|
|
21
21
|
export interface IPublicApiDepartureVehicle {
|
|
22
22
|
id: string | null;
|
|
@@ -32,3 +32,16 @@ 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,6 +5,7 @@ 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";
|
|
8
9
|
import { DelayComputationRepository } from "../data-access/redis/DelayComputationRepository.js";
|
|
9
10
|
import { PublicGtfsDepartureRepository } from "../data-access/redis/PublicGtfsDepartureRepository.js";
|
|
10
11
|
import { PublicStopTimeRepository } from "../data-access/redis/PublicStopTimeRepository.js";
|
|
@@ -76,6 +77,7 @@ ogPublicContainer.register(OgModuleToken.DepartureBoardFacade, {
|
|
|
76
77
|
return new DepartureBoardFacade(c.resolve(OgModuleToken.PublicGtfsDepartureRepository), c.resolve(OgModuleToken.PublicVehiclePositionsRepository), c.resolve(OgModuleToken.PublicStopTimeRepository), c.resolve(OgModuleToken.VehicleDescriptorCachedRepository), c.resolve(OgModuleToken.GtfsStopsRedisRepository));
|
|
77
78
|
}),
|
|
78
79
|
});
|
|
80
|
+
ogPublicContainer.registerSingleton(OgModuleToken.V3PublicDepartureBoardsController, V3PublicDepartureBoardsController);
|
|
79
81
|
ogPublicContainer.register(OgModuleToken.VPSubscriber, {
|
|
80
82
|
useFactory: instanceCachingFactory((c) => {
|
|
81
83
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/output-gateway/public/ioc/Di.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ export const OgModuleToken = {
|
|
|
29
29
|
PublicVehiclePositionsFacade: Symbol("PublicVehiclePositionsFacade"),
|
|
30
30
|
DetailedTripFacade: Symbol("DetailedTripFacade"),
|
|
31
31
|
DepartureBoardFacade: Symbol("DepartureBoardFacade"),
|
|
32
|
+
V3PublicDepartureBoardsController: Symbol("V3PublicDepartureBoardsController"),
|
|
32
33
|
VPSubscriber: Symbol("VPSubscriber"),
|
|
33
34
|
GtfsStopsSubscriber: Symbol("GtfsStopsSubscriber"),
|
|
34
35
|
};
|
|
@@ -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,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC;IACpC,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;CACrD,CAAC"}
|
|
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,iCAAiC,EAAE,MAAM,CAAC,mCAAmC,CAAC;IAC9E,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC;IACpC,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;CACrD,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { v2PublicDeparturesRouter } from "./v2/V2PublicDeparturesRouter.js";
|
|
2
|
+
export { v3PublicDeparturesRouter } from "./v3/V3PublicDeparturesRouter.js";
|
|
2
3
|
export { v2PublicGtfsRouter } from "./v2/V2PublicGtfsRouter.js";
|
|
3
4
|
export { v2PublicVPRouter } from "./v2/V2PublicVehiclePositionsRouter.js";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { v2PublicDeparturesRouter } from "./v2/V2PublicDeparturesRouter.js";
|
|
2
|
+
export { v3PublicDeparturesRouter } from "./v3/V3PublicDeparturesRouter.js";
|
|
2
3
|
export { v2PublicGtfsRouter } from "./v2/V2PublicGtfsRouter.js";
|
|
3
4
|
export { v2PublicVPRouter } from "./v2/V2PublicVehiclePositionsRouter.js";
|
|
4
5
|
//# 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,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC"}
|
|
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,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
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 };
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -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 IPublicDepartureStopGroupResult } 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<IPublicDepartureStopGroupResult[] | null>;
|
|
19
19
|
private handleStopGroupDepartures;
|
|
20
20
|
private duplicateDeparturesWithDifferentVehicleIds;
|
|
21
21
|
private filterForExistingStopIds;
|
|
@@ -31,16 +31,11 @@ export class DepartureBoardFacade {
|
|
|
31
31
|
if (output.every((value) => value === null)) {
|
|
32
32
|
return null;
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
else {
|
|
40
|
-
return value;
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
}
|
|
34
|
+
return output.map((departures, index) => ({
|
|
35
|
+
priority: sortedStopGroups[index].priority,
|
|
36
|
+
stopIds: sortedStopGroups[index].requestedStopIds,
|
|
37
|
+
departures,
|
|
38
|
+
}));
|
|
44
39
|
}
|
|
45
40
|
async handleStopGroupDepartures(stopGroup, limit, routeShortNames, minutesAfter, minutesBefore) {
|
|
46
41
|
let outputGroup = [];
|
|
@@ -146,6 +141,7 @@ export class DepartureBoardFacade {
|
|
|
146
141
|
for (const group of groups) {
|
|
147
142
|
filteredGroups.push({
|
|
148
143
|
priority: group.priority,
|
|
144
|
+
requestedStopIds: group.stopIds,
|
|
149
145
|
stopIds: group.stopIds.filter((s) => foundStopIds.has(s)),
|
|
150
146
|
});
|
|
151
147
|
}
|
|
@@ -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/jis/index.md
CHANGED
|
@@ -296,11 +296,11 @@ Endpoint je interní (přístup jen s příslušnou rolí v Golemio Access Proxy
|
|
|
296
296
|
|
|
297
297
|
### Události — GTFS-RT `alerts.pb`
|
|
298
298
|
|
|
299
|
-
Feed generuje `GenerateFilesTask` (`GtfsRealTimeWorker`) a obsahuje jen události, které mají `type` `INCIDENT`, organizaci z `module.pid.jis.gtfsRt.events.allowedOrgs.*`, nejsou smazané a `active_period_end` je `NULL` nebo >= aktuální čas. Entita má id `alert-{id události}`, `informedEntity` obsahuje `routeId` GTFS-známých tras (viz [asymetrie](#asymetrie-gtfs-rt-protobuf-alertspb-vs-custom-format-webhook-výstup)), `url` je v případě nevyplněné hodnoty nahrazeno odkazem na detail mimořádnosti na webu PID. Texty jsou jen v `cs`/`en`.
|
|
299
|
+
Feed generuje `GenerateFilesTask` (`GtfsRealTimeWorker`) a obsahuje jen události, které mají `type` `INCIDENT`, organizaci z `module.pid.jis.gtfsRt.events.allowedOrgs.*`, nejsou smazané a `active_period_end` je `NULL` nebo >= aktuální čas. Entita má id `alert-{id události}`, `informedEntity` obsahuje `routeId` GTFS-známých tras (viz [asymetrie](#asymetrie-gtfs-rt-protobuf-alertspb-vs-custom-format-webhook-výstup)), `url` je v případě nevyplněné hodnoty nahrazeno odkazem na detail mimořádnosti na webu PID. `severityLevel` odpovídá `severity_level` události (`INFO`/`WARNING`/`SEVERE` 1:1). Texty jsou jen v `cs`/`en`.
|
|
300
300
|
|
|
301
301
|
### Infotexty — GTFS-RT `pid_display_alerts.pb`
|
|
302
302
|
|
|
303
|
-
Experimentální feed pro e-paper displeje, generovaný stejným taskem. Obsahuje infotexty navázané na uloženou událost (`event_id` → `jis_infotexts.jis_event_id`), které jsou právě aktivní (včetně časového okna `repeat`) a mají zastávky. Na každé zastávce zůstanou jen infotexty s nejvyšší závažností (`JISInfotextStopSuppressionFilter`). Entita má id `alert-{id infotextu}`, `informedEntity` obsahuje `stopId`, `severityLevel` je `WARNING` pro `display_type` `INLINE` a `SEVERE` pro `GENERAL
|
|
303
|
+
Experimentální feed pro e-paper displeje, generovaný stejným taskem. Obsahuje infotexty navázané na uloženou událost (`event_id` → `jis_infotexts.jis_event_id`), které jsou právě aktivní (včetně časového okna `repeat`) a mají zastávky. Na každé zastávce zůstanou jen infotexty s nejvyšší závažností (`JISInfotextStopSuppressionFilter`). Entita má id `alert-{id infotextu}`, `informedEntity` obsahuje `stopId`, `severityLevel` je `WARNING` pro `display_type` `INLINE` a `SEVERE` pro `GENERAL` (záměrně se neodvozuje ze `severity_level`, takže se může lišit od `alerts.pb`); `descriptionText` pochází z infotextu, ostatní pole (`cause`, `cause_detail`, `effect`, `url`, `header_text`) z navázané události (i typu `INTERNAL`).
|
|
304
304
|
|
|
305
305
|
### Infotexty — API odjezdových a přestupních tabulí
|
|
306
306
|
|
package/docs/openapi-output.yaml
CHANGED
|
@@ -49,6 +49,9 @@ 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" />
|
|
52
55
|
- name: ⚠ JIS (v1) - internal
|
|
53
56
|
description: Endpoints for internal use
|
|
54
57
|
|
|
@@ -997,7 +1000,7 @@ paths:
|
|
|
997
1000
|
/v2/vehiclepositions/gtfsrt/alerts.pb:
|
|
998
1001
|
get:
|
|
999
1002
|
summary: GET GTFS-RT Service Alerts Feed
|
|
1000
|
-
description: ""
|
|
1003
|
+
description: "Current PID incidents."
|
|
1001
1004
|
tags:
|
|
1002
1005
|
- 🗺 GTFS Realtime (v2)
|
|
1003
1006
|
responses:
|
|
@@ -2098,6 +2101,7 @@ paths:
|
|
|
2098
2101
|
summary: Get Departure Boards
|
|
2099
2102
|
description: |
|
|
2100
2103
|
ℹ️ 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`.
|
|
2101
2105
|
parameters:
|
|
2102
2106
|
- in: query
|
|
2103
2107
|
name: stopIds
|
|
@@ -2131,7 +2135,7 @@ paths:
|
|
|
2131
2135
|
required: false
|
|
2132
2136
|
schema:
|
|
2133
2137
|
type: integer
|
|
2134
|
-
minimum:
|
|
2138
|
+
minimum: 1
|
|
2135
2139
|
maximum: 360
|
|
2136
2140
|
description: Default is 60. Maximum is 360 (6 hours)
|
|
2137
2141
|
example: 60
|
|
@@ -2163,7 +2167,7 @@ paths:
|
|
|
2163
2167
|
description: Cache control directive for caching proxies
|
|
2164
2168
|
schema:
|
|
2165
2169
|
type: string
|
|
2166
|
-
example: public, s-maxage=
|
|
2170
|
+
example: public, s-maxage=3, stale-while-revalidate=2
|
|
2167
2171
|
content:
|
|
2168
2172
|
application/json:
|
|
2169
2173
|
schema:
|
|
@@ -2186,6 +2190,106 @@ paths:
|
|
|
2186
2190
|
maxItems: 0
|
|
2187
2191
|
items:
|
|
2188
2192
|
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
|
+
description: Bad request - invalid query parameters
|
|
2273
|
+
content:
|
|
2274
|
+
application/json:
|
|
2275
|
+
schema:
|
|
2276
|
+
$ref: "#/components/schemas/BadRequestErrorObject"
|
|
2277
|
+
401:
|
|
2278
|
+
description: API key is missing or invalid
|
|
2279
|
+
headers:
|
|
2280
|
+
WWW_Authenticate:
|
|
2281
|
+
schema:
|
|
2282
|
+
type: string
|
|
2283
|
+
content:
|
|
2284
|
+
application/json:
|
|
2285
|
+
schema:
|
|
2286
|
+
$ref: "#/components/schemas/UnauthorizedErrorObject"
|
|
2287
|
+
404:
|
|
2288
|
+
description: Not found - no stops found for the given query parameters
|
|
2289
|
+
content:
|
|
2290
|
+
application/json:
|
|
2291
|
+
schema:
|
|
2292
|
+
$ref: "#/components/schemas/NotFoundErrorObject"
|
|
2189
2293
|
/v1/jis/events/custom-format:
|
|
2190
2294
|
get:
|
|
2191
2295
|
tags:
|
|
@@ -4093,6 +4197,219 @@ components:
|
|
|
4093
4197
|
enum:
|
|
4094
4198
|
- Point
|
|
4095
4199
|
|
|
4200
|
+
BadRequestErrorObject:
|
|
4201
|
+
type: object
|
|
4202
|
+
properties:
|
|
4203
|
+
error_message:
|
|
4204
|
+
type: string
|
|
4205
|
+
example: "Bad request"
|
|
4206
|
+
nullable: false
|
|
4207
|
+
error_status:
|
|
4208
|
+
type: integer
|
|
4209
|
+
example: 400
|
|
4210
|
+
nullable: false
|
|
4211
|
+
error_info:
|
|
4212
|
+
type: string
|
|
4213
|
+
example: "{...}"
|
|
4214
|
+
nullable: true
|
|
4215
|
+
required:
|
|
4216
|
+
- error_message
|
|
4217
|
+
- error_status
|
|
4218
|
+
|
|
4219
|
+
UnauthorizedErrorObject:
|
|
4220
|
+
type: object
|
|
4221
|
+
properties:
|
|
4222
|
+
error_message:
|
|
4223
|
+
type: string
|
|
4224
|
+
example: "Unauthorized. Failed to authenticate user."
|
|
4225
|
+
nullable: false
|
|
4226
|
+
error_status:
|
|
4227
|
+
type: integer
|
|
4228
|
+
example: 401
|
|
4229
|
+
nullable: false
|
|
4230
|
+
required:
|
|
4231
|
+
- error_message
|
|
4232
|
+
- error_status
|
|
4233
|
+
|
|
4234
|
+
NotFoundErrorObject:
|
|
4235
|
+
type: object
|
|
4236
|
+
properties:
|
|
4237
|
+
error_message:
|
|
4238
|
+
type: string
|
|
4239
|
+
example: "Not Found"
|
|
4240
|
+
nullable: false
|
|
4241
|
+
error_status:
|
|
4242
|
+
type: integer
|
|
4243
|
+
example: 404
|
|
4244
|
+
nullable: false
|
|
4245
|
+
required:
|
|
4246
|
+
- error_message
|
|
4247
|
+
- error_status
|
|
4248
|
+
|
|
4249
|
+
PublicDepartureBoardsResponse:
|
|
4250
|
+
type: object
|
|
4251
|
+
properties:
|
|
4252
|
+
stop_groups:
|
|
4253
|
+
type: array
|
|
4254
|
+
items:
|
|
4255
|
+
$ref: "#/components/schemas/PublicDepartureStopGroup"
|
|
4256
|
+
required:
|
|
4257
|
+
- stop_groups
|
|
4258
|
+
|
|
4259
|
+
PublicDepartureStopGroup:
|
|
4260
|
+
type: object
|
|
4261
|
+
properties:
|
|
4262
|
+
priority:
|
|
4263
|
+
type: integer
|
|
4264
|
+
description: Priority of the group as requested
|
|
4265
|
+
example: 0
|
|
4266
|
+
nullable: false
|
|
4267
|
+
stop_ids:
|
|
4268
|
+
type: array
|
|
4269
|
+
description: Stop IDs of the group as requested (duplicates removed)
|
|
4270
|
+
items:
|
|
4271
|
+
type: string
|
|
4272
|
+
example: ["U717Z5P"]
|
|
4273
|
+
departures:
|
|
4274
|
+
type: array
|
|
4275
|
+
description: Departures for the group, empty if there are none or the stops are unknown
|
|
4276
|
+
items:
|
|
4277
|
+
$ref: "#/components/schemas/PublicDepartureItem"
|
|
4278
|
+
required:
|
|
4279
|
+
- priority
|
|
4280
|
+
- stop_ids
|
|
4281
|
+
- departures
|
|
4282
|
+
|
|
4283
|
+
PublicDepartureItem:
|
|
4284
|
+
type: object
|
|
4285
|
+
properties:
|
|
4286
|
+
departure:
|
|
4287
|
+
$ref: "#/components/schemas/PublicDepartureItemDeparture"
|
|
4288
|
+
stop:
|
|
4289
|
+
$ref: "#/components/schemas/PublicDepartureItemStop"
|
|
4290
|
+
route:
|
|
4291
|
+
$ref: "#/components/schemas/PublicDepartureItemRoute"
|
|
4292
|
+
trip:
|
|
4293
|
+
$ref: "#/components/schemas/PublicDepartureItemTrip"
|
|
4294
|
+
vehicle:
|
|
4295
|
+
$ref: "#/components/schemas/PublicDepartureItemVehicle"
|
|
4296
|
+
required:
|
|
4297
|
+
- departure
|
|
4298
|
+
- stop
|
|
4299
|
+
- route
|
|
4300
|
+
- trip
|
|
4301
|
+
- vehicle
|
|
4302
|
+
|
|
4303
|
+
PublicDepartureItemDeparture:
|
|
4304
|
+
type: object
|
|
4305
|
+
properties:
|
|
4306
|
+
timestamp_scheduled:
|
|
4307
|
+
type: string
|
|
4308
|
+
format: date-time
|
|
4309
|
+
example: "2024-04-05T16:09:00+02:00"
|
|
4310
|
+
nullable: false
|
|
4311
|
+
timestamp_predicted:
|
|
4312
|
+
type: string
|
|
4313
|
+
format: date-time
|
|
4314
|
+
example: "2024-04-05T16:09:16+02:00"
|
|
4315
|
+
nullable: false
|
|
4316
|
+
delay_seconds:
|
|
4317
|
+
type: number
|
|
4318
|
+
description: Delay in seconds
|
|
4319
|
+
example: 0
|
|
4320
|
+
nullable: true
|
|
4321
|
+
minutes:
|
|
4322
|
+
type: number
|
|
4323
|
+
description: Minutes until the departure
|
|
4324
|
+
example: 0
|
|
4325
|
+
nullable: false
|
|
4326
|
+
required:
|
|
4327
|
+
- timestamp_scheduled
|
|
4328
|
+
- timestamp_predicted
|
|
4329
|
+
- delay_seconds
|
|
4330
|
+
- minutes
|
|
4331
|
+
|
|
4332
|
+
PublicDepartureItemStop:
|
|
4333
|
+
type: object
|
|
4334
|
+
properties:
|
|
4335
|
+
id:
|
|
4336
|
+
type: string
|
|
4337
|
+
example: "U717Z5P" # Strossmayerovo náměstí
|
|
4338
|
+
nullable: false
|
|
4339
|
+
sequence:
|
|
4340
|
+
type: number
|
|
4341
|
+
example: 8
|
|
4342
|
+
nullable: false
|
|
4343
|
+
platform_code:
|
|
4344
|
+
type: string
|
|
4345
|
+
example: "E"
|
|
4346
|
+
nullable: true
|
|
4347
|
+
required:
|
|
4348
|
+
- id
|
|
4349
|
+
- sequence
|
|
4350
|
+
- platform_code
|
|
4351
|
+
|
|
4352
|
+
PublicDepartureItemRoute:
|
|
4353
|
+
type: object
|
|
4354
|
+
properties:
|
|
4355
|
+
type:
|
|
4356
|
+
type: string
|
|
4357
|
+
example: "tram"
|
|
4358
|
+
enum: ["tram", "metro", "train", "bus", "ferry", "funicular", "trolleybus", "ext_miscellaneous"]
|
|
4359
|
+
nullable: false
|
|
4360
|
+
short_name:
|
|
4361
|
+
type: string
|
|
4362
|
+
example: "27"
|
|
4363
|
+
nullable: false
|
|
4364
|
+
required:
|
|
4365
|
+
- type
|
|
4366
|
+
- short_name
|
|
4367
|
+
|
|
4368
|
+
PublicDepartureItemTrip:
|
|
4369
|
+
type: object
|
|
4370
|
+
properties:
|
|
4371
|
+
id:
|
|
4372
|
+
type: string
|
|
4373
|
+
example: "27_3206_240318"
|
|
4374
|
+
nullable: false
|
|
4375
|
+
headsign:
|
|
4376
|
+
type: string
|
|
4377
|
+
example: "Libuš"
|
|
4378
|
+
nullable: false
|
|
4379
|
+
is_canceled:
|
|
4380
|
+
type: boolean
|
|
4381
|
+
example: false
|
|
4382
|
+
nullable: false
|
|
4383
|
+
required:
|
|
4384
|
+
- id
|
|
4385
|
+
- headsign
|
|
4386
|
+
- is_canceled
|
|
4387
|
+
|
|
4388
|
+
PublicDepartureItemVehicle:
|
|
4389
|
+
type: object
|
|
4390
|
+
properties:
|
|
4391
|
+
id:
|
|
4392
|
+
type: string
|
|
4393
|
+
example: "service-0-9072"
|
|
4394
|
+
nullable: true
|
|
4395
|
+
is_wheelchair_accessible:
|
|
4396
|
+
type: boolean
|
|
4397
|
+
example: true
|
|
4398
|
+
nullable: true
|
|
4399
|
+
is_air_conditioned:
|
|
4400
|
+
type: boolean
|
|
4401
|
+
example: false
|
|
4402
|
+
nullable: true
|
|
4403
|
+
has_charger:
|
|
4404
|
+
type: boolean
|
|
4405
|
+
example: true
|
|
4406
|
+
nullable: true
|
|
4407
|
+
required:
|
|
4408
|
+
- id
|
|
4409
|
+
- is_wheelchair_accessible
|
|
4410
|
+
- is_air_conditioned
|
|
4411
|
+
- has_charger
|
|
4412
|
+
|
|
4096
4413
|
PublicDepartureGroup:
|
|
4097
4414
|
type: array
|
|
4098
4415
|
items:
|