@golemio/pid 2.9.6-dev.1064999584 → 2.9.6-dev.1066422609
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/interfaces/TripRepositoryInterfaces.d.ts +1 -1
- package/dist/output-gateway/public/controllers/v1/IParams.d.ts +1 -1
- package/dist/output-gateway/public/controllers/v1/PublicVehiclePositionsController.js +5 -1
- package/dist/output-gateway/public/controllers/v1/PublicVehiclePositionsController.js.map +1 -1
- package/dist/output-gateway/public/routers/v1/PublicRouter.d.ts +0 -1
- package/dist/output-gateway/public/routers/v1/PublicRouter.js +2 -6
- package/dist/output-gateway/public/routers/v1/PublicRouter.js.map +1 -1
- package/dist/output-gateway/public/routers/v1/helpers/CustomTypeValidator.d.ts +5 -0
- package/dist/output-gateway/public/routers/v1/helpers/CustomTypeValidator.js +28 -0
- package/dist/output-gateway/public/routers/v1/helpers/CustomTypeValidator.js.map +1 -0
- package/dist/output-gateway/public/service/facade/VehiclePositionsFacade.d.ts +1 -1
- package/dist/output-gateway/public/service/facade/VehiclePositionsFacade.js +2 -2
- package/dist/output-gateway/public/service/facade/VehiclePositionsFacade.js.map +1 -1
- package/dist/schema-definitions/vehicle-positions/redis/interfaces/IPublicApiCacheDto.d.ts +1 -1
- package/dist/schema-definitions/vehicle-positions/redis/schemas/PublicApiCacheDtoSchema.js +9 -1
- package/dist/schema-definitions/vehicle-positions/redis/schemas/PublicApiCacheDtoSchema.js.map +1 -1
- package/docs/implementation_documentation.md +25 -0
- package/docs/openapi-output.yaml +154 -0
- package/package.json +1 -1
|
@@ -66,7 +66,7 @@ export interface IEnrichedTripForPublicApi {
|
|
|
66
66
|
gtfs_trip_id: string;
|
|
67
67
|
gtfs_route_type: GTFSRouteTypeEnum;
|
|
68
68
|
gtfs_route_short_name: string;
|
|
69
|
-
run_number: number;
|
|
69
|
+
run_number: number | null;
|
|
70
70
|
vehicle_registration_number: number | null;
|
|
71
71
|
lat: string;
|
|
72
72
|
lng: string;
|
|
@@ -39,7 +39,11 @@ class PublicVehiclePositionsController {
|
|
|
39
39
|
bottomRightLatitude: boundingBox ? boundingBox[2] : const_1.DEFAULT_BOUDINGBOX.bottomRightLatitude,
|
|
40
40
|
},
|
|
41
41
|
routeShortName: query.routeShortName ? query.routeShortName : undefined,
|
|
42
|
-
type: query.
|
|
42
|
+
type: query.routeType
|
|
43
|
+
? query.routeType instanceof Array
|
|
44
|
+
? query.routeType.map((type) => (0, RouteTypeEnums_1.getGtfsRouteType)(type))
|
|
45
|
+
: [(0, RouteTypeEnums_1.getGtfsRouteType)(query.routeType)]
|
|
46
|
+
: undefined,
|
|
43
47
|
};
|
|
44
48
|
}
|
|
45
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublicVehiclePositionsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/controllers/v1/PublicVehiclePositionsController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA6D;AAC7D,qCAAsD;AACtD,2DAA6D;AAK7D,uEAA2D;AAE3D,MAAa,gCAAgC;IACzC;QAEO,WAAM,GAAG,CAAO,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YACtE,IAAI;gBACA,MAAM,MAAM,GAAG,sBAAiB,CAAC,OAAO,CAA+B,6BAAa,CAAC,4BAA4B,CAAC,CAAC;gBACnH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAE3F,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACpB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAA,CAAC;IAZa,CAAC;IAcT,WAAW,CAAC,KAAe;QAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAE,KAAK,CAAC,WAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvH,mEAAmE;QACnE,OAAO;YACH,WAAW,EAAE;gBACT,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,gBAAgB;gBACpF,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,eAAe;gBAClF,oBAAoB,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,oBAAoB;gBAC5F,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,mBAAmB;aAC7F;YACD,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAE,KAAK,CAAC,cAAyB,CAAC,CAAC,CAAC,SAAS;YACnF,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,iCAAgB,EAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"PublicVehiclePositionsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/controllers/v1/PublicVehiclePositionsController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA6D;AAC7D,qCAAsD;AACtD,2DAA6D;AAK7D,uEAA2D;AAE3D,MAAa,gCAAgC;IACzC;QAEO,WAAM,GAAG,CAAO,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YACtE,IAAI;gBACA,MAAM,MAAM,GAAG,sBAAiB,CAAC,OAAO,CAA+B,6BAAa,CAAC,4BAA4B,CAAC,CAAC;gBACnH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAE3F,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACpB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAA,CAAC;IAZa,CAAC;IAcT,WAAW,CAAC,KAAe;QAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAE,KAAK,CAAC,WAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvH,mEAAmE;QACnE,OAAO;YACH,WAAW,EAAE;gBACT,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,gBAAgB;gBACpF,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,eAAe;gBAClF,oBAAoB,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,oBAAoB;gBAC5F,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,mBAAmB;aAC7F;YACD,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAE,KAAK,CAAC,cAAyB,CAAC,CAAC,CAAC,SAAS;YACnF,IAAI,EAAE,KAAK,CAAC,SAAS;gBACjB,CAAC,CAAC,KAAK,CAAC,SAAS,YAAY,KAAK;oBAC9B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,iCAAgB,EAAC,IAAc,CAAC,CAAC;oBACjE,CAAC,CAAC,CAAC,IAAA,iCAAgB,EAAC,KAAK,CAAC,SAAmB,CAAC,CAAC;gBACnD,CAAC,CAAC,SAAS;SAClB,CAAC;IACN,CAAC;CACJ;AAjCD,4EAiCC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.v1PublicRouter = exports.PublicRouter = void 0;
|
|
4
|
-
const RouteTypeEnums_1 = require("../../../../helpers/RouteTypeEnums");
|
|
5
4
|
const PublicVehiclePositionsController_1 = require("../../controllers/v1/PublicVehiclePositionsController");
|
|
6
5
|
const Di_1 = require("../../ioc/Di");
|
|
7
6
|
const OgModuleToken_1 = require("../../ioc/OgModuleToken");
|
|
8
7
|
const Validation_1 = require("@golemio/core/dist/output-gateway/Validation");
|
|
9
8
|
const express_1 = require("@golemio/core/dist/shared/express");
|
|
10
9
|
const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
|
|
10
|
+
const CustomTypeValidator_1 = require("./helpers/CustomTypeValidator");
|
|
11
11
|
class PublicRouter {
|
|
12
12
|
constructor() {
|
|
13
13
|
this.router = (0, express_1.Router)();
|
|
@@ -15,7 +15,6 @@ class PublicRouter {
|
|
|
15
15
|
this.initRoutes();
|
|
16
16
|
this.redisSubscriber = Di_1.OgPublicContainer.resolve(OgModuleToken_1.OgModuleToken.VPSubscriber);
|
|
17
17
|
this.redisSubscriber.initialize();
|
|
18
|
-
this.supportedTypes = (0, RouteTypeEnums_1.getGtfsRouteTypesAsStrings)();
|
|
19
18
|
}
|
|
20
19
|
initRoutes(expire) {
|
|
21
20
|
this.router.get("/vehiclepositions", [
|
|
@@ -24,10 +23,7 @@ class PublicRouter {
|
|
|
24
23
|
.isString()
|
|
25
24
|
.matches(/^\d+\.?\d*(,\d+\.?\d*){3}$/),
|
|
26
25
|
(0, express_validator_1.query)("routeShortName").optional().isString(),
|
|
27
|
-
(0, express_validator_1.
|
|
28
|
-
[(0, express_validator_1.query)("type").optional().isArray(), (0, express_validator_1.query)("type.*").optional().isString().isIn(this.supportedTypes)],
|
|
29
|
-
(0, express_validator_1.query)("type").optional().isString().isIn(this.supportedTypes),
|
|
30
|
-
]),
|
|
26
|
+
(0, express_validator_1.query)("routeType").optional().custom(CustomTypeValidator_1.CustomTypeValidator.validate),
|
|
31
27
|
], Validation_1.checkErrors, this.controller.getAll);
|
|
32
28
|
}
|
|
33
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublicRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/routers/v1/PublicRouter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"PublicRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/routers/v1/PublicRouter.ts"],"names":[],"mappings":";;;AACA,4GAA8G;AAC9G,qCAAsD;AACtD,2DAA6D;AAE7D,6EAA2E;AAC3E,+DAA2D;AAC3D,mFAAoE;AACpE,uEAAoE;AAEpE,MAAa,YAAY;IAKrB;QACI,IAAI,CAAC,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,mEAAgC,EAAE,CAAC;QACzD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,GAAG,sBAAiB,CAAC,OAAO,CAAe,6BAAa,CAAC,YAAY,CAAC,CAAC;QAC3F,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IAES,UAAU,CAAC,MAAoC;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,mBAAmB,EACnB;YACI,IAAA,yBAAK,EAAC,aAAa,CAAC;iBACf,QAAQ,EAAE;iBACV,QAAQ,EAAE;iBACV,OAAO,CAAC,4BAA4B,CAAC;YAC1C,IAAA,yBAAK,EAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC7C,IAAA,yBAAK,EAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,yCAAmB,CAAC,QAAQ,CAAC;SACrE,EACD,wBAAW,EACX,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;IACN,CAAC;CACJ;AA5BD,oCA4BC;AAED,MAAM,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC,MAAM,CAAC;AAExC,wCAAc"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var _a;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.CustomTypeValidator = void 0;
|
|
14
|
+
const RouteTypeEnums_1 = require("../../../../../helpers/RouteTypeEnums");
|
|
15
|
+
class CustomTypeValidator {
|
|
16
|
+
}
|
|
17
|
+
exports.CustomTypeValidator = CustomTypeValidator;
|
|
18
|
+
_a = CustomTypeValidator;
|
|
19
|
+
CustomTypeValidator.allowedTypes = (0, RouteTypeEnums_1.getGtfsRouteTypesAsStrings)();
|
|
20
|
+
CustomTypeValidator.validate = (value, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
+
if (value instanceof Array) {
|
|
22
|
+
return value.every((source) => _a.allowedTypes.includes(source));
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return _a.allowedTypes.includes(value);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=CustomTypeValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomTypeValidator.js","sourceRoot":"","sources":["../../../../../../src/output-gateway/public/routers/v1/helpers/CustomTypeValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,0EAAqE;AAGrE,MAAa,mBAAmB;;AAAhC,kDAUC;;AATiB,gCAAY,GAAa,IAAA,2CAA0B,GAAE,AAAzC,CAA0C;AAEtD,4BAAQ,GAAoB,CAAO,KAAK,EAAE,OAAO,EAAE,EAAE;IAC/D,IAAI,KAAK,YAAY,KAAK,EAAE;QACxB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,EAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;KAC9E;SAAM;QACH,OAAO,EAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC5C;AACL,CAAC,CAAA,AANqB,CAMpB"}
|
|
@@ -8,6 +8,6 @@ export declare class PublicVehiclePositionsFacade {
|
|
|
8
8
|
private log;
|
|
9
9
|
private transformation;
|
|
10
10
|
constructor(repository: IVehiclePositionsRepository, log: ILogger);
|
|
11
|
-
getAll(boundingBox: IBoundingBox, routeShortName: string | undefined, type: GTFSRouteTypeEnum | undefined): Promise<IGeoJSONFeatureCollection>;
|
|
11
|
+
getAll(boundingBox: IBoundingBox, routeShortName: string | undefined, type: GTFSRouteTypeEnum[] | undefined): Promise<IGeoJSONFeatureCollection>;
|
|
12
12
|
private filterClientSide;
|
|
13
13
|
}
|
|
@@ -28,11 +28,11 @@ class PublicVehiclePositionsFacade {
|
|
|
28
28
|
return (0, output_gateway_1.buildGeojsonFeatureCollection)(this.transformation.transformArray(filteredResults));
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
-
filterClientSide(el, routeShortName,
|
|
31
|
+
filterClientSide(el, routeShortName, types) {
|
|
32
32
|
if (routeShortName && el.gtfs_route_short_name !== routeShortName) {
|
|
33
33
|
return false;
|
|
34
34
|
}
|
|
35
|
-
if (
|
|
35
|
+
if (types && types.every((type) => type !== el.gtfs_route_type)) {
|
|
36
36
|
return false;
|
|
37
37
|
}
|
|
38
38
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VehiclePositionsFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/service/facade/VehiclePositionsFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,sEAA6G;AAC7G,oEAAiE;AACjE,kHAA+G;AAE/G,MAAa,4BAA4B;IAGrC,YAAoB,UAAuC,EAAU,GAAY;QAA7D,eAAU,GAAV,UAAU,CAA6B;QAAU,QAAG,GAAH,GAAG,CAAS;QAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,2EAAoC,EAAE,CAAC;IACrE,CAAC;IAEY,MAAM,CACf,WAAyB,EACzB,cAAkC,EAClC,
|
|
1
|
+
{"version":3,"file":"VehiclePositionsFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/public/service/facade/VehiclePositionsFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,sEAA6G;AAC7G,oEAAiE;AACjE,kHAA+G;AAE/G,MAAa,4BAA4B;IAGrC,YAAoB,UAAuC,EAAU,GAAY;QAA7D,eAAU,GAAV,UAAU,CAA6B;QAAU,QAAG,GAAH,GAAG,CAAS;QAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,2EAAoC,EAAE,CAAC;IACrE,CAAC;IAEY,MAAM,CACf,WAAyB,EACzB,cAAkC,EAClC,IAAqC;;YAErC,MAAM,qBAAqB,GAAG,qCAAiB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAC/E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,qBAAqB,CAAC,KAAK,cAAc,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;YAEnG,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;YAC7F,MAAM,eAAe,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;YAEzG,OAAO,IAAA,8CAA6B,EAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC;QAC9F,CAAC;KAAA;IAEO,gBAAgB,CACpB,EAAsB,EACtB,cAAkC,EAClC,KAAsC;QAEtC,IAAI,cAAc,IAAI,EAAE,CAAC,qBAAqB,KAAK,cAAc,EAAE;YAC/D,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,eAAe,CAAC,EAAE;YAC7D,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AApCD,oEAoCC"}
|
package/dist/schema-definitions/vehicle-positions/redis/schemas/PublicApiCacheDtoSchema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublicApiCacheDtoSchema.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/vehicle-positions/redis/schemas/PublicApiCacheDtoSchema.ts"],"names":[],"mappings":";;;AAGA,MAAM,uBAAuB,GAAyC;IAClE,OAAO,EAAE,yCAAyC;IAClD,KAAK,EAAE,mBAAmB;IAC1B,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,YAAY,EAAE;gBACV,IAAI,EAAE,QAAQ;aACjB;YACD,eAAe,EAAE;gBACb,IAAI,EAAE,QAAQ;aACjB;YACD,qBAAqB,EAAE;gBACnB,IAAI,EAAE,QAAQ;aACjB;YACD,UAAU,EAAE;gBACR,IAAI,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"PublicApiCacheDtoSchema.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/vehicle-positions/redis/schemas/PublicApiCacheDtoSchema.ts"],"names":[],"mappings":";;;AAGA,MAAM,uBAAuB,GAAyC;IAClE,OAAO,EAAE,yCAAyC;IAClD,KAAK,EAAE,mBAAmB;IAC1B,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,YAAY,EAAE;gBACV,IAAI,EAAE,QAAQ;aACjB;YACD,eAAe,EAAE;gBACb,IAAI,EAAE,QAAQ;aACjB;YACD,qBAAqB,EAAE;gBACnB,IAAI,EAAE,QAAQ;aACjB;YACD,UAAU,EAAE;gBACR,KAAK,EAAE;oBACH;wBACI,IAAI,EAAE,QAAQ;qBACjB;oBACD;wBACI,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE,IAAI;qBACjB;iBACJ;aACJ;YACD,2BAA2B,EAAE;gBACzB,KAAK,EAAE;oBACH;wBACI,IAAI,EAAE,QAAQ;qBACjB;oBACD;wBACI,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE,IAAI;qBACjB;iBACJ;aACJ;YACD,GAAG,EAAE;gBACD,IAAI,EAAE,QAAQ;aACjB;YACD,GAAG,EAAE;gBACD,IAAI,EAAE,QAAQ;aACjB;YACD,OAAO,EAAE;gBACL,KAAK,EAAE;oBACH;wBACI,IAAI,EAAE,QAAQ;qBACjB;oBACD;wBACI,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE,IAAI;qBACjB;iBACJ;aACJ;YACD,KAAK,EAAE;gBACH,KAAK,EAAE;oBACH;wBACI,IAAI,EAAE,QAAQ;qBACjB;oBACD;wBACI,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE,IAAI;qBACjB;iBACJ;aACJ;SACJ;QACD,QAAQ,EAAE;YACN,cAAc;YACd,iBAAiB;YACjB,uBAAuB;YACvB,YAAY;YACZ,6BAA6B;YAC7B,KAAK;YACL,KAAK;YACL,SAAS;YACT,OAAO;SACV;KACJ;CACJ,CAAC;AACkC,0DAAuB"}
|
|
@@ -832,6 +832,23 @@ Worker má na starost zpracování a transformaci polohových dat, výpočet zpo
|
|
|
832
832
|
- VPTripsModel `vehiclepositions_trips`
|
|
833
833
|
- VPTripsHistoryModel `vehiclepositions_trips_history`
|
|
834
834
|
|
|
835
|
+
#### _task: RefreshPublicCache_
|
|
836
|
+
|
|
837
|
+
- vstupní rabbitmq fronta
|
|
838
|
+
- název: vehicle-positions.vehiclepositions.refreshPublicCache
|
|
839
|
+
- TTL: 1s
|
|
840
|
+
- parametry: žádné
|
|
841
|
+
- závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
|
|
842
|
+
- `vehicle-positions.vehiclepositions.refreshPublicCache` task se spouští sám sebe a cron plní doplňující funkci.
|
|
843
|
+
- popis
|
|
844
|
+
- před samotným spuštěním se zkontroluje pomocí semaforu zdali task již někde neběží
|
|
845
|
+
- připraví zjednodušené informace o aktuálních pozicích, které se odešlou do redisu
|
|
846
|
+
- pomocí pub/sub se pak pošle do og informace o novém setu v redisu
|
|
847
|
+
- data modely
|
|
848
|
+
- VPPositionsModel `vehiclepositions_positions`
|
|
849
|
+
- VPTripsModel `vehiclepositions_trips`
|
|
850
|
+
|
|
851
|
+
|
|
835
852
|
### _RunsWorker_
|
|
836
853
|
|
|
837
854
|
Worker má na starost zpracování a transformaci TCP oběhů
|
|
@@ -1218,3 +1235,11 @@ Worker má na starost stahování informací o vozidlech (např. dostupnost klim
|
|
|
1218
1235
|
|
|
1219
1236
|
- zdrojové tabulky
|
|
1220
1237
|
- `ropidvymi_events`, `ropidvymi_events_stops`, `ropidvymi_events_routes`, `ropidgtfs_stops`
|
|
1238
|
+
|
|
1239
|
+
### Public
|
|
1240
|
+
|
|
1241
|
+
#### _/public/vehiclepositions_
|
|
1242
|
+
|
|
1243
|
+
- načte aktuální polohy vozidel z redisu a vrátí je ve formátu geojson
|
|
1244
|
+
- možno filtrovat dle bouding box na straně redisu
|
|
1245
|
+
- podle typu vozidla a gtfs route number na klientské straně
|
package/docs/openapi-output.yaml
CHANGED
|
@@ -31,6 +31,9 @@ tags:
|
|
|
31
31
|
- name: 🚏 PID Departure Boards
|
|
32
32
|
description: ""
|
|
33
33
|
|
|
34
|
+
- name: 🕐 Public Vehicle Positions
|
|
35
|
+
description: ""
|
|
36
|
+
|
|
34
37
|
paths:
|
|
35
38
|
/gtfs/services:
|
|
36
39
|
get:
|
|
@@ -949,6 +952,61 @@ paths:
|
|
|
949
952
|
"404":
|
|
950
953
|
description: Not found
|
|
951
954
|
|
|
955
|
+
/public/vehiclepositions:
|
|
956
|
+
get:
|
|
957
|
+
tags:
|
|
958
|
+
- 🕐 Public Vehicle Positions
|
|
959
|
+
summary: GET All Vehicle Positions
|
|
960
|
+
parameters:
|
|
961
|
+
- name: boundingBox
|
|
962
|
+
in: query
|
|
963
|
+
schema:
|
|
964
|
+
type: string
|
|
965
|
+
example: '50.123,14.243,50.017,14.573'
|
|
966
|
+
description: 'Filter by bounding box in format "topLeft.lat,topLeft.lon,bottomRight.lat,bottomRight.lon", polygons that fit only partialy to selected bounding box are included'
|
|
967
|
+
- name: routeShortName
|
|
968
|
+
in: query
|
|
969
|
+
schema:
|
|
970
|
+
type: string
|
|
971
|
+
example: '705'
|
|
972
|
+
description: 'Filter by short name of route'
|
|
973
|
+
- name: routeType
|
|
974
|
+
in: query
|
|
975
|
+
schema:
|
|
976
|
+
type: array
|
|
977
|
+
items:
|
|
978
|
+
type: string
|
|
979
|
+
enum:
|
|
980
|
+
- tram
|
|
981
|
+
- metro
|
|
982
|
+
- train
|
|
983
|
+
- bus
|
|
984
|
+
- ferry
|
|
985
|
+
- funicular
|
|
986
|
+
- trolleybus
|
|
987
|
+
example: 'metro'
|
|
988
|
+
description: 'filter by transport type'
|
|
989
|
+
responses:
|
|
990
|
+
200:
|
|
991
|
+
description: OK
|
|
992
|
+
content:
|
|
993
|
+
application/json; charset=utf-8:
|
|
994
|
+
schema:
|
|
995
|
+
type: object
|
|
996
|
+
properties:
|
|
997
|
+
features:
|
|
998
|
+
type: array
|
|
999
|
+
items:
|
|
1000
|
+
$ref: '#/components/schemas/VehiclePositionsFeature'
|
|
1001
|
+
type:
|
|
1002
|
+
type: string
|
|
1003
|
+
example: FeatureCollection
|
|
1004
|
+
401:
|
|
1005
|
+
$ref: "#/components/responses/UnauthorizedError"
|
|
1006
|
+
404:
|
|
1007
|
+
description: Not found
|
|
1008
|
+
|
|
1009
|
+
|
|
952
1010
|
components:
|
|
953
1011
|
responses:
|
|
954
1012
|
UnauthorizedError:
|
|
@@ -1864,3 +1922,99 @@ components:
|
|
|
1864
1922
|
- is_night
|
|
1865
1923
|
- is_regional
|
|
1866
1924
|
- is_substitute_transport
|
|
1925
|
+
|
|
1926
|
+
VehiclePositionsFeature:
|
|
1927
|
+
type: object
|
|
1928
|
+
properties:
|
|
1929
|
+
geometry:
|
|
1930
|
+
type: object
|
|
1931
|
+
description: GeoJson geometry
|
|
1932
|
+
properties:
|
|
1933
|
+
coordinates:
|
|
1934
|
+
oneOf:
|
|
1935
|
+
- type: array
|
|
1936
|
+
items:
|
|
1937
|
+
type: number
|
|
1938
|
+
example: [14.441252, 50.109318]
|
|
1939
|
+
description: Point
|
|
1940
|
+
- type: array
|
|
1941
|
+
items:
|
|
1942
|
+
type: array
|
|
1943
|
+
items:
|
|
1944
|
+
type: array
|
|
1945
|
+
items:
|
|
1946
|
+
type: number
|
|
1947
|
+
example:
|
|
1948
|
+
[[
|
|
1949
|
+
[14.50823156003554, 50.10498927328214],
|
|
1950
|
+
[14.505782430390298, 50.1031042405622],
|
|
1951
|
+
[14.509701037821998, 50.1029471511537],
|
|
1952
|
+
[14.50823156003554, 50.10498927328214]
|
|
1953
|
+
]]
|
|
1954
|
+
description: Polygon
|
|
1955
|
+
- type: array
|
|
1956
|
+
items:
|
|
1957
|
+
type: array
|
|
1958
|
+
items:
|
|
1959
|
+
type: array
|
|
1960
|
+
items:
|
|
1961
|
+
type: array
|
|
1962
|
+
items:
|
|
1963
|
+
type: number
|
|
1964
|
+
example:
|
|
1965
|
+
[
|
|
1966
|
+
[[
|
|
1967
|
+
[14.50823156003554, 50.10498927328214],
|
|
1968
|
+
[14.505782430390298, 50.1031042405622],
|
|
1969
|
+
[14.509701037821998, 50.1029471511537],
|
|
1970
|
+
[14.50823156003554, 50.10498927328214]
|
|
1971
|
+
]],
|
|
1972
|
+
[[
|
|
1973
|
+
[14.50823156003554, 50.10498927328214],
|
|
1974
|
+
[14.505782430390298, 50.1031042405622],
|
|
1975
|
+
[14.509701037821998, 50.1029471511537],
|
|
1976
|
+
[14.50823156003554, 50.10498927328214]
|
|
1977
|
+
]]
|
|
1978
|
+
]
|
|
1979
|
+
description: MultiPolygon
|
|
1980
|
+
type:
|
|
1981
|
+
type: string
|
|
1982
|
+
enum:
|
|
1983
|
+
- Point
|
|
1984
|
+
- Polygon
|
|
1985
|
+
- MultiPolygon
|
|
1986
|
+
properties:
|
|
1987
|
+
type: object
|
|
1988
|
+
properties:
|
|
1989
|
+
gtfs_trip_id:
|
|
1990
|
+
type: string
|
|
1991
|
+
example: 705_735_231002
|
|
1992
|
+
gtfs_route_type:
|
|
1993
|
+
type: string
|
|
1994
|
+
example: bus
|
|
1995
|
+
gtfs_route_short_name:
|
|
1996
|
+
type: string
|
|
1997
|
+
example: '705'
|
|
1998
|
+
run_number:
|
|
1999
|
+
type: number
|
|
2000
|
+
nullable: true
|
|
2001
|
+
example: 29
|
|
2002
|
+
vehicle_registration_number:
|
|
2003
|
+
type: number
|
|
2004
|
+
nullable: true
|
|
2005
|
+
example: 8585
|
|
2006
|
+
bearing:
|
|
2007
|
+
type: number
|
|
2008
|
+
nullable: true
|
|
2009
|
+
example: 221
|
|
2010
|
+
delay:
|
|
2011
|
+
type: number
|
|
2012
|
+
nullable: true
|
|
2013
|
+
example: 20
|
|
2014
|
+
required:
|
|
2015
|
+
- gtfs_trip_id
|
|
2016
|
+
- gtfs_route_type
|
|
2017
|
+
- gtfs_route_short_name
|
|
2018
|
+
type:
|
|
2019
|
+
type: string
|
|
2020
|
+
example: Feature
|