@golemio/parkings 1.1.1-dev.567930847 → 1.1.1-dev.570249156

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.
Files changed (26) hide show
  1. package/db/example/clear_test_data.sql +5 -0
  2. package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesDataSourceFactory.d.ts +5 -0
  3. package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesDataSourceFactory.js +19 -0
  4. package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesDataSourceFactory.js.map +1 -0
  5. package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesTransformation.d.ts +10 -0
  6. package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesTransformation.js +50 -0
  7. package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesTransformation.js.map +1 -0
  8. package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesWorker.d.ts +8 -0
  9. package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesWorker.js +42 -0
  10. package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesWorker.js.map +1 -0
  11. package/dist/integration-engine/index.d.ts +3 -0
  12. package/dist/integration-engine/index.js +3 -0
  13. package/dist/integration-engine/index.js.map +1 -1
  14. package/dist/integration-engine/models/ParkingsModel.d.ts +4 -0
  15. package/dist/integration-engine/models/ParkingsModel.js +17 -0
  16. package/dist/integration-engine/models/ParkingsModel.js.map +1 -0
  17. package/dist/integration-engine/queueDefinitions.js +10 -0
  18. package/dist/integration-engine/queueDefinitions.js.map +1 -1
  19. package/dist/schema-definitions/datasources/IZtpParkingJsonFeature.d.ts +20 -0
  20. package/dist/schema-definitions/datasources/IZtpParkingJsonFeature.js +3 -0
  21. package/dist/schema-definitions/datasources/IZtpParkingJsonFeature.js.map +1 -0
  22. package/dist/schema-definitions/datasources/ZtpParkingsJsonSchema.d.ts +13 -0
  23. package/dist/schema-definitions/datasources/ZtpParkingsJsonSchema.js +109 -0
  24. package/dist/schema-definitions/datasources/ZtpParkingsJsonSchema.js.map +1 -0
  25. package/docs/implementation-documentation.md +17 -1
  26. package/package.json +1 -1
@@ -0,0 +1,5 @@
1
+ DELETE FROM public.parkings_tariffs;
2
+ DELETE FROM public.parkings_measurements_actual;
3
+ DELETE FROM public.parkings_measurements_part;
4
+ DELETE FROM public.parkings_location;
5
+ DELETE FROM public.parkings;
@@ -0,0 +1,5 @@
1
+ import { DataSource } from "@golemio/core/dist/integration-engine/datasources";
2
+ export declare class ZtpParkingZonesDataSourceFactory {
3
+ static readonly API_URL: any;
4
+ static getDataSource(): DataSource;
5
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZtpParkingZonesDataSourceFactory = void 0;
4
+ const datasources_1 = require("@golemio/core/dist/integration-engine/datasources");
5
+ const config_1 = require("@golemio/core/dist/integration-engine/config");
6
+ const ZtpParkingsJsonSchema_1 = require("../../schema-definitions/datasources/ZtpParkingsJsonSchema");
7
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
8
+ class ZtpParkingZonesDataSourceFactory {
9
+ static getDataSource() {
10
+ return new datasources_1.DataSource(ZtpParkingsJsonSchema_1.ZtpParkingsJsonSchema.name, new datasources_1.HTTPProtocolStrategy({
11
+ headers: {},
12
+ method: "GET",
13
+ url: ZtpParkingZonesDataSourceFactory.API_URL,
14
+ }), new datasources_1.JSONDataTypeStrategy({ resultsPath: "" }), new golemio_validator_1.JSONSchemaValidator(ZtpParkingsJsonSchema_1.ZtpParkingsJsonSchema.name, ZtpParkingsJsonSchema_1.ZtpParkingsJsonSchema.jsonSchema));
15
+ }
16
+ }
17
+ exports.ZtpParkingZonesDataSourceFactory = ZtpParkingZonesDataSourceFactory;
18
+ ZtpParkingZonesDataSourceFactory.API_URL = config_1.config.datasources.ZtpParkingsApiUrl;
19
+ //# sourceMappingURL=ZtpParkingZonesDataSourceFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZtpParkingZonesDataSourceFactory.js","sourceRoot":"","sources":["../../../src/integration-engine/ZtpParkingZones/ZtpParkingZonesDataSourceFactory.ts"],"names":[],"mappings":";;;AAAA,mFAA2H;AAC3H,yEAAsE;AACtE,sGAA+E;AAC/E,mFAAkF;AAElF,MAAa,gCAAgC;IAGlC,MAAM,CAAC,aAAa;QACvB,OAAO,IAAI,wBAAU,CACjB,6CAAqB,CAAC,IAAI,EAC1B,IAAI,kCAAoB,CAAC;YACrB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,gCAAgC,CAAC,OAAO;SAChD,CAAC,EACF,IAAI,kCAAoB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,EAC7C,IAAI,uCAAmB,CAAC,6CAAqB,CAAC,IAAI,EAAE,6CAAqB,CAAC,UAAU,CAAC,CACxF,CAAC;IACN,CAAC;;AAdL,4EAeC;AAd0B,wCAAO,GAAG,eAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { BaseTransformation, ITransformation } from "@golemio/core/dist/integration-engine/transformations";
2
+ import { IZtpParkingJsonFeature } from "../../schema-definitions/datasources/IZtpParkingJsonFeature";
3
+ import { IParking } from "../ParkingInterface";
4
+ export declare class ZtpParkingZonesTransformation extends BaseTransformation implements ITransformation {
5
+ name: string;
6
+ transformationDate: Date;
7
+ constructor(transformationDate: Date);
8
+ transform: (data: IZtpParkingJsonFeature[]) => Promise<IParking[]>;
9
+ transformElement: (element: IZtpParkingJsonFeature) => Promise<IParking>;
10
+ }
@@ -0,0 +1,50 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ZtpParkingZonesTransformation = void 0;
13
+ const transformations_1 = require("@golemio/core/dist/integration-engine/transformations");
14
+ const GeodataHelper_1 = require("../helpers/GeodataHelper");
15
+ class ZtpParkingZonesTransformation extends transformations_1.BaseTransformation {
16
+ constructor(transformationDate) {
17
+ super();
18
+ this.transform = (data) => __awaiter(this, void 0, void 0, function* () {
19
+ let parkings = [];
20
+ for (const element of data) {
21
+ const parking = yield this.transformElement(element);
22
+ parkings.push(parking);
23
+ }
24
+ return parkings;
25
+ });
26
+ this.transformElement = (element) => __awaiter(this, void 0, void 0, function* () {
27
+ const address = yield (0, GeodataHelper_1.getAddressFromPoint)(element.geometry);
28
+ let parkingName = "Parkoviště ZTP";
29
+ if (typeof address != "undefined") {
30
+ parkingName = `Parkoviště ZTP ${address.street_address}, ${address.address_region}`;
31
+ }
32
+ return {
33
+ source: "IPR ZTP",
34
+ source_id: `ztp-${element.properties.OBJECTID.toString()}`,
35
+ data_provider: "opendata.iprpraha.cz",
36
+ date_modified: `${this.transformationDate.getTime()}`,
37
+ location: element.geometry,
38
+ name: parkingName,
39
+ total_spot_number: element.properties.POCET_PS,
40
+ parking_type: "disabled_parking",
41
+ centroid: element.geometry,
42
+ address: address,
43
+ };
44
+ });
45
+ this.name = "ZtpParkings";
46
+ this.transformationDate = transformationDate;
47
+ }
48
+ }
49
+ exports.ZtpParkingZonesTransformation = ZtpParkingZonesTransformation;
50
+ //# sourceMappingURL=ZtpParkingZonesTransformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZtpParkingZonesTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/ZtpParkingZones/ZtpParkingZonesTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2FAA4G;AAG5G,4DAAgE;AAEhE,MAAa,6BAA8B,SAAQ,oCAAkB;IAIjE,YAAY,kBAAwB;QAChC,KAAK,EAAE,CAAC;QAKZ,cAAS,GAAG,CAAO,IAA8B,EAAuB,EAAE;YACtE,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACrD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC1B;YACD,OAAO,QAAQ,CAAC;QACpB,CAAC,CAAA,CAAC;QAEF,qBAAgB,GAAG,CAAO,OAA+B,EAAqB,EAAE;YAC5E,MAAM,OAAO,GAAG,MAAM,IAAA,mCAAmB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE5D,IAAI,WAAW,GAAG,gBAAgB,CAAC;YACnC,IAAI,OAAO,OAAO,IAAI,WAAW,EAAE;gBAC/B,WAAW,GAAG,kBAAkB,OAAO,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC;aACvF;YAED,OAAO;gBACH,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,OAAO,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE;gBAC1D,aAAa,EAAE,sBAAsB;gBACrC,aAAa,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE;gBACrD,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE,WAAW;gBACjB,iBAAiB,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ;gBAC9C,YAAY,EAAE,kBAAkB;gBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,OAAO,EAAE,OAAO;aACnB,CAAC;QACN,CAAC,CAAA,CAAC;QAjCE,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IACjD,CAAC;CAgCJ;AAxCD,sEAwCC"}
@@ -0,0 +1,8 @@
1
+ import { BaseWorker } from "@golemio/core/dist/integration-engine/workers";
2
+ export declare class ZtpParkingZonesWorker extends BaseWorker {
3
+ private dataSource;
4
+ private transformer;
5
+ private parkingRepository;
6
+ constructor();
7
+ updateZtpParkings: () => Promise<void>;
8
+ }
@@ -0,0 +1,42 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ZtpParkingZonesWorker = void 0;
13
+ const workers_1 = require("@golemio/core/dist/integration-engine/workers");
14
+ const ZtpParkingZonesDataSourceFactory_1 = require("./ZtpParkingZonesDataSourceFactory");
15
+ const ZtpParkingZonesTransformation_1 = require("./ZtpParkingZonesTransformation");
16
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
17
+ const ParkingsModel_1 = require("../models/ParkingsModel");
18
+ class ZtpParkingZonesWorker extends workers_1.BaseWorker {
19
+ constructor() {
20
+ super();
21
+ this.updateZtpParkings = () => __awaiter(this, void 0, void 0, function* () {
22
+ try {
23
+ const data = yield this.dataSource.getAll();
24
+ const transformedData = yield this.transformer.transform(data.features);
25
+ yield this.parkingRepository.save(transformedData);
26
+ }
27
+ catch (err) {
28
+ if (err instanceof golemio_errors_1.CustomError) {
29
+ throw err;
30
+ }
31
+ else {
32
+ throw new golemio_errors_1.CustomError(`Error while refreshing ZTP Parking data: ${err.message}`, true, this.constructor.name, undefined, err);
33
+ }
34
+ }
35
+ });
36
+ this.dataSource = ZtpParkingZonesDataSourceFactory_1.ZtpParkingZonesDataSourceFactory.getDataSource();
37
+ this.transformer = new ZtpParkingZonesTransformation_1.ZtpParkingZonesTransformation(new Date());
38
+ this.parkingRepository = new ParkingsModel_1.ParkingsModel();
39
+ }
40
+ }
41
+ exports.ZtpParkingZonesWorker = ZtpParkingZonesWorker;
42
+ //# sourceMappingURL=ZtpParkingZonesWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZtpParkingZonesWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/ZtpParkingZones/ZtpParkingZonesWorker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2EAA2E;AAE3E,yFAAwG;AACxG,mFAAkG;AAElG,6EAAuE;AACvE,2DAAyD;AAEzD,MAAa,qBAAsB,SAAQ,oBAAU;IAKjD;QACI,KAAK,EAAE,CAAC;QAML,sBAAiB,GAAG,GAAwB,EAAE;YACjD,IAAI;gBACA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC5C,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxE,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aACtD;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,GAAG,YAAY,4BAAW,EAAE;oBAC5B,MAAM,GAAG,CAAC;iBACb;qBAAM;oBACH,MAAM,IAAI,4BAAW,CACjB,4CAA4C,GAAG,CAAC,OAAO,EAAE,EACzD,IAAI,EACJ,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,GAAG,CACN,CAAC;iBACL;aACJ;QACL,CAAC,CAAA,CAAC;QAvBE,IAAI,CAAC,UAAU,GAAG,mEAAgC,CAAC,aAAa,EAAE,CAAC;QACnE,IAAI,CAAC,WAAW,GAAG,IAAI,6DAA6B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,iBAAiB,GAAG,IAAI,6BAAa,EAAE,CAAC;IACjD,CAAC;CAqBJ;AA/BD,sDA+BC"}
@@ -3,3 +3,6 @@ export * from "./ParkingsWorker";
3
3
  export * from "./KoridParkingDataTransformation";
4
4
  export * from "./KoridParkingConfigTransformation";
5
5
  export * from "./queueDefinitions";
6
+ export * from "./ZtpParkingZones/ZtpParkingZonesDataSourceFactory";
7
+ export * from "./ZtpParkingZones/ZtpParkingZonesTransformation";
8
+ export * from "./ZtpParkingZones/ZtpParkingZonesWorker";
@@ -20,4 +20,7 @@ __exportStar(require("./ParkingsWorker"), exports);
20
20
  __exportStar(require("./KoridParkingDataTransformation"), exports);
21
21
  __exportStar(require("./KoridParkingConfigTransformation"), exports);
22
22
  __exportStar(require("./queueDefinitions"), exports);
23
+ __exportStar(require("./ZtpParkingZones/ZtpParkingZonesDataSourceFactory"), exports);
24
+ __exportStar(require("./ZtpParkingZones/ZtpParkingZonesTransformation"), exports);
25
+ __exportStar(require("./ZtpParkingZones/ZtpParkingZonesWorker"), exports);
23
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration-engine/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iBAAiB;AACjB,2DAAyC;AACzC,mDAAiC;AACjC,mEAAiD;AACjD,qEAAmD;AACnD,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration-engine/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iBAAiB;AACjB,2DAAyC;AACzC,mDAAiC;AACjC,mEAAiD;AACjD,qEAAmD;AACnD,qDAAmC;AACnC,qFAAmE;AACnE,kFAAgE;AAChE,0EAAwD"}
@@ -0,0 +1,4 @@
1
+ import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine/models";
2
+ export declare class ParkingsModel extends PostgresModel implements IModel {
3
+ constructor();
4
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParkingsModel = void 0;
4
+ const models_1 = require("@golemio/core/dist/integration-engine/models");
5
+ const _sch_1 = require("../../schema-definitions");
6
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
7
+ class ParkingsModel extends models_1.PostgresModel {
8
+ constructor() {
9
+ super(_sch_1.Parkings.name + "Model", {
10
+ outputSequelizeAttributes: _sch_1.Parkings.pg.outputSequelizeAttributes,
11
+ pgTableName: _sch_1.Parkings.pg.pgTableName,
12
+ savingType: "insertOrUpdate",
13
+ }, new golemio_validator_1.Validator(_sch_1.Parkings.name + "PgModelValidator", _sch_1.Parkings.pg.outputMongooseSchemaObject));
14
+ }
15
+ }
16
+ exports.ParkingsModel = ParkingsModel;
17
+ //# sourceMappingURL=ParkingsModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParkingsModel.js","sourceRoot":"","sources":["../../../src/integration-engine/models/ParkingsModel.ts"],"names":[],"mappings":";;;AAAA,yEAAqF;AACrF,mDAAgC;AAChC,mFAAwE;AAExE,MAAa,aAAc,SAAQ,sBAAa;IAC5C;QACI,KAAK,CACD,eAAQ,CAAC,IAAI,GAAG,OAAO,EACvB;YACI,yBAAyB,EAAE,eAAQ,CAAC,EAAE,CAAC,yBAAyB;YAChE,WAAW,EAAE,eAAQ,CAAC,EAAE,CAAC,WAAW;YACpC,UAAU,EAAE,gBAAgB;SAC/B,EACD,IAAI,6BAAS,CAAC,eAAQ,CAAC,IAAI,GAAG,kBAAkB,EAAE,eAAQ,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAC5F,CAAC;IACN,CAAC;CACJ;AAZD,sCAYC"}
@@ -4,6 +4,7 @@ exports.queueDefinitions = void 0;
4
4
  const config_1 = require("@golemio/core/dist/integration-engine/config");
5
5
  const index_1 = require("../schema-definitions/index");
6
6
  const ParkingsWorker_1 = require("./ParkingsWorker");
7
+ const ZtpParkingZonesWorker_1 = require("./ZtpParkingZones/ZtpParkingZonesWorker");
7
8
  const queueDefinitions = [
8
9
  {
9
10
  name: index_1.Parkings.name,
@@ -93,6 +94,15 @@ const queueDefinitions = [
93
94
  worker: ParkingsWorker_1.ParkingsWorker,
94
95
  workerMethod: "saveParkingLotsMeasurementsPrague",
95
96
  },
97
+ {
98
+ name: "updateZtpParkings",
99
+ options: {
100
+ deadLetterExchange: config_1.config.RABBIT_EXCHANGE_NAME,
101
+ deadLetterRoutingKey: "dead",
102
+ },
103
+ worker: ZtpParkingZonesWorker_1.ZtpParkingZonesWorker,
104
+ workerMethod: "updateZtpParkings",
105
+ },
96
106
  ],
97
107
  },
98
108
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"queueDefinitions.js","sourceRoot":"","sources":["../../src/integration-engine/queueDefinitions.ts"],"names":[],"mappings":";;;AAAA,yEAAsE;AAEtE,uDAAsC;AACtC,qDAAoD;AAEpD,MAAM,gBAAgB,GAAuB;IACzC;QACI,IAAI,EAAE,gBAAQ,CAAC,IAAI;QACnB,WAAW,EAAE,eAAM,CAAC,oBAAoB,GAAG,GAAG,GAAG,gBAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;QAC5E,MAAM,EAAE;YACJ;gBACI,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;oBAC5B,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;iBAC1C;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,iBAAiB;aAClC;YACD;gBACI,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;iBAC/B;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,mBAAmB;aACpC;YACD;gBACI,IAAI,EAAE,0BAA0B;gBAChC,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;oBAC5B,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;iBAC1C;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,0BAA0B;aAC3C;YACD;gBACI,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;oBAC5B,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;iBAC1C;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,wBAAwB;aACzC;YACD;gBACI,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;iBAC/B;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,mBAAmB;aACpC;YACD;gBACI,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;iBAC/B;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,mBAAmB;aACpC;YACD;gBACI,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;iBAC/B;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,wBAAwB;aACzC;YACD;gBACI,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;iBAC/B;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,uBAAuB;aACxC;YACD;gBACI,IAAI,EAAE,mCAAmC;gBACzC,OAAO,EAAE;oBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;iBAC/B;gBACD,MAAM,EAAE,+BAAc;gBACtB,YAAY,EAAE,mCAAmC;aACpD;SACJ;KACJ;CACJ,CAAC;AAEO,4CAAgB"}
1
+ {"version":3,"file":"queueDefinitions.js","sourceRoot":"","sources":["../../src/integration-engine/queueDefinitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { IGeoCoordinatesPoint } from "@golemio/core/dist/output-gateway/Geo";
2
+ export interface IZtpParkingJsonFeature {
3
+ type: string;
4
+ geometry: IGeoCoordinatesPoint;
5
+ properties: {
6
+ OBJECTID: number;
7
+ POCET_PS: number;
8
+ ROZM_DELKA: number;
9
+ ROZM_SIRKA: number;
10
+ TYP_PS: number;
11
+ KOLME_PS: number;
12
+ POD_SKLON: number;
13
+ PRIC_SKLON: number;
14
+ TYP_POVRCH: number;
15
+ POSK_POVRC: number;
16
+ PES_ZONA: number;
17
+ MAT_POVRCH: number;
18
+ POSKYT: string;
19
+ };
20
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IZtpParkingJsonFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IZtpParkingJsonFeature.js","sourceRoot":"","sources":["../../../src/schema-definitions/datasources/IZtpParkingJsonFeature.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { JSONSchemaType } from "@golemio/core/dist/shared/ajv";
2
+ import { IZtpParkingJsonFeature } from "./IZtpParkingJsonFeature";
3
+ interface IZtpParkings {
4
+ type: string;
5
+ name: string;
6
+ features: IZtpParkingJsonFeature[];
7
+ }
8
+ interface ISchemaDefinition<T> {
9
+ name: string;
10
+ jsonSchema: JSONSchemaType<T>;
11
+ }
12
+ export declare const ZtpParkingsJsonSchema: ISchemaDefinition<IZtpParkings>;
13
+ export {};
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZtpParkingsJsonSchema = void 0;
4
+ exports.ZtpParkingsJsonSchema = {
5
+ name: "ZtpParkingsJsonSchema",
6
+ jsonSchema: {
7
+ type: "object",
8
+ properties: {
9
+ type: {
10
+ type: "string",
11
+ },
12
+ name: {
13
+ type: "string",
14
+ },
15
+ features: {
16
+ type: "array",
17
+ items: {
18
+ type: "object",
19
+ properties: {
20
+ type: {
21
+ type: "string",
22
+ },
23
+ geometry: {
24
+ type: "object",
25
+ properties: {
26
+ type: {
27
+ type: "string",
28
+ },
29
+ coordinates: {
30
+ type: "array",
31
+ items: {
32
+ type: "number",
33
+ },
34
+ },
35
+ },
36
+ required: ["type", "coordinates"],
37
+ additionalProperties: false,
38
+ },
39
+ properties: {
40
+ type: "object",
41
+ properties: {
42
+ OBJECTID: {
43
+ type: "number",
44
+ },
45
+ POCET_PS: {
46
+ type: "number",
47
+ },
48
+ ROZM_DELKA: {
49
+ type: "number",
50
+ },
51
+ ROZM_SIRKA: {
52
+ type: "number",
53
+ },
54
+ TYP_PS: {
55
+ type: "number",
56
+ },
57
+ KOLME_PS: {
58
+ type: "number",
59
+ },
60
+ POD_SKLON: {
61
+ type: "number",
62
+ },
63
+ PRIC_SKLON: {
64
+ type: "number",
65
+ },
66
+ TYP_POVRCH: {
67
+ type: "number",
68
+ },
69
+ POSK_POVRC: {
70
+ type: "number",
71
+ },
72
+ PES_ZONA: {
73
+ type: "number",
74
+ },
75
+ MAT_POVRCH: {
76
+ type: "number",
77
+ },
78
+ POSKYT: {
79
+ type: "string",
80
+ },
81
+ },
82
+ required: [
83
+ "OBJECTID",
84
+ "POCET_PS",
85
+ "ROZM_DELKA",
86
+ "ROZM_SIRKA",
87
+ "TYP_PS",
88
+ "KOLME_PS",
89
+ "POD_SKLON",
90
+ "PRIC_SKLON",
91
+ "TYP_POVRCH",
92
+ "POSK_POVRC",
93
+ "PES_ZONA",
94
+ "MAT_POVRCH",
95
+ "POSKYT",
96
+ ],
97
+ additionalProperties: false,
98
+ },
99
+ },
100
+ required: ["type", "geometry", "properties"],
101
+ additionalProperties: false,
102
+ },
103
+ },
104
+ },
105
+ required: ["type", "name", "features"],
106
+ additionalProperties: false,
107
+ },
108
+ };
109
+ //# sourceMappingURL=ZtpParkingsJsonSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZtpParkingsJsonSchema.js","sourceRoot":"","sources":["../../../src/schema-definitions/datasources/ZtpParkingsJsonSchema.ts"],"names":[],"mappings":";;;AAca,QAAA,qBAAqB,GAAoC;IAClE,IAAI,EAAE,uBAAuB;IAC7B,UAAU,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,IAAI,EAAE;gBACF,IAAI,EAAE,QAAQ;aACjB;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,QAAQ;aACjB;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACR,IAAI,EAAE;4BACF,IAAI,EAAE,QAAQ;yBACjB;wBACD,QAAQ,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACR,IAAI,EAAE;oCACF,IAAI,EAAE,QAAQ;iCACjB;gCACD,WAAW,EAAE;oCACT,IAAI,EAAE,OAAO;oCACb,KAAK,EAAE;wCACH,IAAI,EAAE,QAAQ;qCACjB;iCACJ;6BACJ;4BACD,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;4BACjC,oBAAoB,EAAE,KAAK;yBAC9B;wBACD,UAAU,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACR,QAAQ,EAAE;oCACN,IAAI,EAAE,QAAQ;iCACjB;gCACD,QAAQ,EAAE;oCACN,IAAI,EAAE,QAAQ;iCACjB;gCACD,UAAU,EAAE;oCACR,IAAI,EAAE,QAAQ;iCACjB;gCACD,UAAU,EAAE;oCACR,IAAI,EAAE,QAAQ;iCACjB;gCACD,MAAM,EAAE;oCACJ,IAAI,EAAE,QAAQ;iCACjB;gCACD,QAAQ,EAAE;oCACN,IAAI,EAAE,QAAQ;iCACjB;gCACD,SAAS,EAAE;oCACP,IAAI,EAAE,QAAQ;iCACjB;gCACD,UAAU,EAAE;oCACR,IAAI,EAAE,QAAQ;iCACjB;gCACD,UAAU,EAAE;oCACR,IAAI,EAAE,QAAQ;iCACjB;gCACD,UAAU,EAAE;oCACR,IAAI,EAAE,QAAQ;iCACjB;gCACD,QAAQ,EAAE;oCACN,IAAI,EAAE,QAAQ;iCACjB;gCACD,UAAU,EAAE;oCACR,IAAI,EAAE,QAAQ;iCACjB;gCAED,MAAM,EAAE;oCACJ,IAAI,EAAE,QAAQ;iCACjB;6BACJ;4BACD,QAAQ,EAAE;gCACN,UAAU;gCACV,UAAU;gCACV,YAAY;gCACZ,YAAY;gCACZ,QAAQ;gCACR,UAAU;gCACV,WAAW;gCACX,YAAY;gCACZ,YAAY;gCACZ,YAAY;gCACZ,UAAU;gCACV,YAAY;gCACZ,QAAQ;6BACX;4BAED,oBAAoB,EAAE,KAAK;yBAC9B;qBACJ;oBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC;oBAC5C,oBAAoB,EAAE,KAAK;iBAC9B;aACJ;SACJ;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC;QACtC,oBAAoB,EAAE,KAAK;KAC9B;CACJ,CAAC"}
@@ -25,6 +25,8 @@ Modul slouží k ukládání a poskytování informací o parkování.
25
25
 
26
26
  Data stahujeme pravidelně od IPR, TSK.
27
27
 
28
+ Pro ZTP parkoviště se z API se stahuje JSON z https://opendata.iprpraha.cz/CUR/DOP/DOP_TSK_Stani_ZTP_b/WGS_84/DOP_TSK_Stani_ZTP_b.json
29
+
28
30
  #### Zóny placeného stání
29
31
 
30
32
  Zóny placeného stání používají 2 datové zdroje - TSK a Opendata IPR, které mají přesnější geometrii.
@@ -160,7 +162,7 @@ Při transformaci dat lokací data obohacujeme o adresu parkoviště, která vyc
160
162
  - data modely
161
163
  - parkingsModel -> (schéma public) `parkings`
162
164
  - důležité informace pro zpracování dat ze zdroje TSKParkings
163
- - V budoucnu přibydou další hodnoty parking_type: `park_sharing` pro službu Mr. Parkit, `disabled_parking` pro ZTP parkoviště z IPR atp.
165
+ - V budoucnu přibydou další hodnoty parking_type: `park_sharing` pro službu Mr. Parkit atp.
164
166
  - Parametr `zone_type` je povinný pokud je `parking_type == on_street`. Jinak má být `NULL`
165
167
  - `zone_free` - placeholder pro Zóny neplaceného stání (zone_type), které se budou integrovat v budoucnu
166
168
 
@@ -206,6 +208,20 @@ Při transformaci dat lokací data obohacujeme o adresu parkoviště, která vyc
206
208
  - parkingsMeasurementsModel -> (schéma public) `parkings_measurements_part`
207
209
  - parkingsMeasurementsActualModel -> (schéma public) `parkings_measurements_actual`
208
210
 
211
+ ### ZtpParkingZonesWorker
212
+
213
+ #### *updateZtpParkings*
214
+
215
+ - vstupní rabbitmq fronta
216
+ - název: `dataplatform.parkings.updateZtpParkings`
217
+ - bez parametrů
218
+ - datové zdroje
219
+ - JSON stahovaný z IPR
220
+ - transformace
221
+ Mapování `IZtpParkingJsonFeature` na `IParking` + doplnění o adresu.
222
+ Získává se z Photon API metodou `GeocodeApi.getAddressByLatLngFromPhoton` v modulu Core.
223
+ - data modely
224
+ - parkingsModel -> (schéma public) `parkings`
209
225
 
210
226
  ### Legacy mongo modely
211
227
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/parkings",
3
- "version": "1.1.1-dev.567930847",
3
+ "version": "1.1.1-dev.570249156",
4
4
  "description": "Golemio Parkings Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",