@golemio/parkings 1.8.2-dev.1202833211 → 1.8.2-dev.1203186512

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 (47) hide show
  1. package/db/migrations/postgresql/20240227105006-opening-hours.js +53 -0
  2. package/db/migrations/postgresql/sqls/20240227105006-opening-hours-down.sql +1 -0
  3. package/db/migrations/postgresql/sqls/20240227105006-opening-hours-up.sql +10 -0
  4. package/dist/helpers/osm/MaxStayParser.d.ts +11 -0
  5. package/dist/helpers/osm/MaxStayParser.js +38 -0
  6. package/dist/helpers/osm/MaxStayParser.js.map +1 -0
  7. package/dist/helpers/osm/OpeningHoursParser.d.ts +18 -0
  8. package/dist/helpers/osm/OpeningHoursParser.js +76 -0
  9. package/dist/helpers/osm/OpeningHoursParser.js.map +1 -0
  10. package/dist/helpers/periods/DaysInWeekEnum.d.ts +13 -0
  11. package/dist/helpers/periods/DaysInWeekEnum.js +19 -0
  12. package/dist/helpers/periods/DaysInWeekEnum.js.map +1 -0
  13. package/dist/helpers/periods/PhTypesEnum.d.ts +4 -0
  14. package/dist/helpers/periods/PhTypesEnum.js +9 -0
  15. package/dist/helpers/periods/PhTypesEnum.js.map +1 -0
  16. package/dist/integration-engine/ioc/Di.js +20 -12
  17. package/dist/integration-engine/ioc/Di.js.map +1 -1
  18. package/dist/integration-engine/ioc/ModuleContainerToken.d.ts +3 -0
  19. package/dist/integration-engine/ioc/ModuleContainerToken.js +3 -0
  20. package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -1
  21. package/dist/integration-engine/repositories/OpenHoursRepository.d.ts +6 -0
  22. package/dist/integration-engine/repositories/OpenHoursRepository.js +60 -0
  23. package/dist/integration-engine/repositories/OpenHoursRepository.js.map +1 -0
  24. package/dist/integration-engine/transformations/isphk/IsphkOpeningHoursTransformation.d.ts +9 -0
  25. package/dist/integration-engine/transformations/isphk/IsphkOpeningHoursTransformation.js +42 -0
  26. package/dist/integration-engine/transformations/isphk/IsphkOpeningHoursTransformation.js.map +1 -0
  27. package/dist/integration-engine/transformations/osm/OsmOpeningHoursTransformation.d.ts +11 -0
  28. package/dist/integration-engine/transformations/osm/OsmOpeningHoursTransformation.js +53 -0
  29. package/dist/integration-engine/transformations/osm/OsmOpeningHoursTransformation.js.map +1 -0
  30. package/dist/integration-engine/workers/tasks/SaveIptoictParkingDataTask.d.ts +4 -1
  31. package/dist/integration-engine/workers/tasks/SaveIptoictParkingDataTask.js +13 -2
  32. package/dist/integration-engine/workers/tasks/SaveIptoictParkingDataTask.js.map +1 -1
  33. package/dist/integration-engine/workers/tasks/SaveOsmDataTask.d.ts +5 -1
  34. package/dist/integration-engine/workers/tasks/SaveOsmDataTask.js +16 -3
  35. package/dist/integration-engine/workers/tasks/SaveOsmDataTask.js.map +1 -1
  36. package/dist/schema-definitions/models/OpeningHoursModel.d.ts +12 -0
  37. package/dist/schema-definitions/models/OpeningHoursModel.js +26 -0
  38. package/dist/schema-definitions/models/OpeningHoursModel.js.map +1 -0
  39. package/dist/schema-definitions/models/interfaces/openingHours/IOpeningHours.d.ts +8 -0
  40. package/dist/schema-definitions/models/interfaces/openingHours/IOpeningHours.js +3 -0
  41. package/dist/schema-definitions/models/interfaces/openingHours/IOpeningHours.js.map +1 -0
  42. package/dist/schema-definitions/models/interfaces/openingHours/IOpeningHoursPeriod.d.ts +8 -0
  43. package/dist/schema-definitions/models/interfaces/openingHours/IOpeningHoursPeriod.js +3 -0
  44. package/dist/schema-definitions/models/interfaces/openingHours/IOpeningHoursPeriod.js.map +1 -0
  45. package/docs/assets/parkings_erd.png +0 -0
  46. package/docs/implementation-documentation.md +6 -2
  47. package/package.json +1 -1
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var dbm;
4
+ var type;
5
+ var seed;
6
+ var fs = require('fs');
7
+ var path = require('path');
8
+ var Promise;
9
+
10
+ /**
11
+ * We receive the dbmigrate dependency from dbmigrate initially.
12
+ * This enables us to not have to rely on NODE_PATH.
13
+ */
14
+ exports.setup = function(options, seedLink) {
15
+ dbm = options.dbmigrate;
16
+ type = dbm.dataType;
17
+ seed = seedLink;
18
+ Promise = options.Promise;
19
+ };
20
+
21
+ exports.up = function(db) {
22
+ var filePath = path.join(__dirname, 'sqls', '20240227105006-opening-hours-up.sql');
23
+ return new Promise( function( resolve, reject ) {
24
+ fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
25
+ if (err) return reject(err);
26
+ console.log('received data: ' + data);
27
+
28
+ resolve(data);
29
+ });
30
+ })
31
+ .then(function(data) {
32
+ return db.runSql(data);
33
+ });
34
+ };
35
+
36
+ exports.down = function(db) {
37
+ var filePath = path.join(__dirname, 'sqls', '20240227105006-opening-hours-down.sql');
38
+ return new Promise( function( resolve, reject ) {
39
+ fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
40
+ if (err) return reject(err);
41
+ console.log('received data: ' + data);
42
+
43
+ resolve(data);
44
+ });
45
+ })
46
+ .then(function(data) {
47
+ return db.runSql(data);
48
+ });
49
+ };
50
+
51
+ exports._meta = {
52
+ "version": 1
53
+ };
@@ -0,0 +1 @@
1
+ DROP TABLE parkings_opening_hours;
@@ -0,0 +1,10 @@
1
+ CREATE TABLE parkings_opening_hours (
2
+ parking_id varchar(255) NOT NULL,
3
+ "source" varchar(255) NOT NULL,
4
+ valid_from timestamptz NOT NULL DEFAULT to_timestamp(0::double precision),
5
+ valid_to timestamptz NULL,
6
+ periods_of_time json NOT NULL,
7
+ created_at timestamptz NULL,
8
+ updated_at timestamptz NULL,
9
+ CONSTRAINT parkings_opening_hours_pk PRIMARY KEY (parking_id, valid_from)
10
+ );
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Parsing strings based on https://wiki.openstreetmap.org/wiki/Key:maxstay
3
+ * Minimal implementation:
4
+ * - "unlimited", "none", "no"
5
+ * - "90 minutes"
6
+ * - "1 hour"; "5 hours", "1.5 hours"
7
+ * - "1 day"; "2 days"
8
+ */
9
+ export declare class MaxStayParser {
10
+ static parse(maxStay: string | null): number | null | undefined;
11
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ /**
3
+ * Parsing strings based on https://wiki.openstreetmap.org/wiki/Key:maxstay
4
+ * Minimal implementation:
5
+ * - "unlimited", "none", "no"
6
+ * - "90 minutes"
7
+ * - "1 hour"; "5 hours", "1.5 hours"
8
+ * - "1 day"; "2 days"
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.MaxStayParser = void 0;
12
+ class MaxStayParser {
13
+ static parse(maxStay) {
14
+ if (!maxStay) {
15
+ return null;
16
+ }
17
+ if (maxStay === "unlimited" || maxStay === "none" || maxStay === "no") {
18
+ return undefined;
19
+ }
20
+ const maxStayMatch = maxStay.match(/^(\d+(\.\d+)?)\s*(minute|hour|day)s?$/);
21
+ if (maxStayMatch) {
22
+ const value = parseFloat(maxStayMatch[1]);
23
+ const unit = maxStayMatch[3];
24
+ if (unit === "minute") {
25
+ return value;
26
+ }
27
+ if (unit === "hour") {
28
+ return value * 60;
29
+ }
30
+ if (unit === "day") {
31
+ return value * 60 * 24;
32
+ }
33
+ }
34
+ return null;
35
+ }
36
+ }
37
+ exports.MaxStayParser = MaxStayParser;
38
+ //# sourceMappingURL=MaxStayParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaxStayParser.js","sourceRoot":"","sources":["../../../src/helpers/osm/MaxStayParser.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,MAAa,aAAa;IACf,MAAM,CAAC,KAAK,CAAC,OAAsB;QACtC,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,IAAI,CAAC;SACf;QAED,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,IAAI,EAAE;YACnE,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAE5E,IAAI,YAAY,EAAE;YACd,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAE7B,IAAI,IAAI,KAAK,QAAQ,EAAE;gBACnB,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,IAAI,KAAK,MAAM,EAAE;gBACjB,OAAO,KAAK,GAAG,EAAE,CAAC;aACrB;YAED,IAAI,IAAI,KAAK,KAAK,EAAE;gBAChB,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;aAC1B;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA/BD,sCA+BC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Parsing strings based on https://wiki.openstreetmap.org/wiki/Key:opening_hours#Implementation
3
+ * Minimal implementation:
4
+ * - "24/7"
5
+ * - "09:00-22:00"
6
+ * - "Mo-Sa 09:00-19:00; Su 10:00-18:00"
7
+ * - "Mo-Fr 07:00-01:00"
8
+ */
9
+ import { IOpeningHoursPeriod } from "../../schema-definitions/models/interfaces/openingHours/IOpeningHoursPeriod";
10
+ export declare class OpeningHoursParser {
11
+ private readonly TWENTY_FOUR_SEVEN;
12
+ private readonly OSM_BASIC_FORMAT_REGEX;
13
+ private readonly OSM_FORMAT_REGEX;
14
+ private daysInWeek;
15
+ constructor();
16
+ parse(openingHours: string | null): Array<Partial<IOpeningHoursPeriod>> | null;
17
+ private generatePeriods;
18
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ /**
3
+ * Parsing strings based on https://wiki.openstreetmap.org/wiki/Key:opening_hours#Implementation
4
+ * Minimal implementation:
5
+ * - "24/7"
6
+ * - "09:00-22:00"
7
+ * - "Mo-Sa 09:00-19:00; Su 10:00-18:00"
8
+ * - "Mo-Fr 07:00-01:00"
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.OpeningHoursParser = void 0;
12
+ const DaysInWeekEnum_1 = require("../periods/DaysInWeekEnum");
13
+ const PhTypesEnum_1 = require("../periods/PhTypesEnum");
14
+ class OpeningHoursParser {
15
+ constructor() {
16
+ this.TWENTY_FOUR_SEVEN = "24/7";
17
+ this.OSM_BASIC_FORMAT_REGEX =
18
+ // eslint-disable-next-line max-len
19
+ /(?<element>(?<days>(Mo|Tu|We|Th|Fr|Sa|Su)([-,]?(Mo|Tu|We|Th|Fr|Sa|Su))*)*[ ]?(?<timeSpan>\d{2}:\d{2}-\d{2}:\d{2},?){1,})(; )?/gs;
20
+ this.OSM_FORMAT_REGEX =
21
+ // eslint-disable-next-line max-len
22
+ /^((?<element>(?<days>(Mo|Tu|We|Th|Fr|Sa|Su)([-,]?(Mo|Tu|We|Th|Fr|Sa|Su))*)*[ ]?(?<timeSpan>\d{2}:\d{2}-\d{2}:\d{2},?){1,})(; )?)+$/;
23
+ this.generatePeriods = (weekDays, startTime, endTime, ph) => {
24
+ const result = [];
25
+ for (const day of weekDays) {
26
+ for (const phType of ph) {
27
+ result.push({ day_in_week: day.toString(), start: startTime, end: endTime, ph: phType });
28
+ }
29
+ }
30
+ return result;
31
+ };
32
+ this.daysInWeek = Object.values(DaysInWeekEnum_1.DaysInWeekEnum);
33
+ }
34
+ // TODO dont forget to fill additional values for partial return type
35
+ parse(openingHours) {
36
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
37
+ const periods = [];
38
+ if (!openingHours) {
39
+ return null;
40
+ }
41
+ if (openingHours === this.TWENTY_FOUR_SEVEN) {
42
+ return this.generatePeriods(Object.values(DaysInWeekEnum_1.DaysInWeekEnum), "00:00", "23:59", Object.values(PhTypesEnum_1.PhTypes));
43
+ }
44
+ if (this.OSM_FORMAT_REGEX.test(openingHours) === false) {
45
+ return null;
46
+ }
47
+ const result = openingHours.matchAll(this.OSM_BASIC_FORMAT_REGEX);
48
+ for (const match of result) {
49
+ const isDayRange = (_b = (_a = match.groups) === null || _a === void 0 ? void 0 : _a.days) === null || _b === void 0 ? void 0 : _b.includes("-");
50
+ if (isDayRange) {
51
+ const days = (_d = (_c = match.groups) === null || _c === void 0 ? void 0 : _c.days) === null || _d === void 0 ? void 0 : _d.split("-");
52
+ const startDay = days[0];
53
+ const endDay = days[1];
54
+ //get all other days in between startDay and endDay
55
+ const startDayIndex = this.daysInWeek.indexOf(startDay);
56
+ const endDayIndex = this.daysInWeek.indexOf(endDay);
57
+ const daysInBetween = this.daysInWeek.slice(startDayIndex, endDayIndex + 1);
58
+ const timeSpan = (_e = match.groups) === null || _e === void 0 ? void 0 : _e.timeSpan.split("-");
59
+ const startTime = timeSpan[0];
60
+ const endTime = timeSpan[1];
61
+ periods.push(...this.generatePeriods(daysInBetween, startTime, endTime, Object.values(PhTypesEnum_1.PhTypes)));
62
+ }
63
+ else {
64
+ // single day or multiple days
65
+ const days = (_h = (_g = (_f = match.groups) === null || _f === void 0 ? void 0 : _f.days) === null || _g === void 0 ? void 0 : _g.split(",")) !== null && _h !== void 0 ? _h : Object.values(DaysInWeekEnum_1.DaysInWeekEnum);
66
+ const timeSpan = (_j = match.groups) === null || _j === void 0 ? void 0 : _j.timeSpan.split("-");
67
+ const startTime = timeSpan[0];
68
+ const endTime = timeSpan[1];
69
+ periods.push(...this.generatePeriods(days, startTime, endTime, Object.values(PhTypesEnum_1.PhTypes)));
70
+ }
71
+ }
72
+ return periods;
73
+ }
74
+ }
75
+ exports.OpeningHoursParser = OpeningHoursParser;
76
+ //# sourceMappingURL=OpeningHoursParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpeningHoursParser.js","sourceRoot":"","sources":["../../../src/helpers/osm/OpeningHoursParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare enum DaysInWeekEnum {
2
+ "monday" = "Mo",
3
+ "tuesday" = "Tu",
4
+ "wednesday" = "We",
5
+ "thursday" = "Th",
6
+ "friday" = "Fr",
7
+ "saturday" = "Sa",
8
+ "sunday" = "Su"
9
+ }
10
+ export declare enum OffWeekDays {
11
+ "saturday" = "Sa",
12
+ "sunday" = "Su"
13
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OffWeekDays = exports.DaysInWeekEnum = void 0;
4
+ var DaysInWeekEnum;
5
+ (function (DaysInWeekEnum) {
6
+ DaysInWeekEnum["monday"] = "Mo";
7
+ DaysInWeekEnum["tuesday"] = "Tu";
8
+ DaysInWeekEnum["wednesday"] = "We";
9
+ DaysInWeekEnum["thursday"] = "Th";
10
+ DaysInWeekEnum["friday"] = "Fr";
11
+ DaysInWeekEnum["saturday"] = "Sa";
12
+ DaysInWeekEnum["sunday"] = "Su";
13
+ })(DaysInWeekEnum || (exports.DaysInWeekEnum = DaysInWeekEnum = {}));
14
+ var OffWeekDays;
15
+ (function (OffWeekDays) {
16
+ OffWeekDays["saturday"] = "Sa";
17
+ OffWeekDays["sunday"] = "Su";
18
+ })(OffWeekDays || (exports.OffWeekDays = OffWeekDays = {}));
19
+ //# sourceMappingURL=DaysInWeekEnum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DaysInWeekEnum.js","sourceRoot":"","sources":["../../../src/helpers/periods/DaysInWeekEnum.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAQX;AARD,WAAY,cAAc;IACtB,+BAAe,CAAA;IACf,gCAAgB,CAAA;IAChB,kCAAkB,CAAA;IAClB,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,iCAAiB,CAAA;IACjB,+BAAe,CAAA;AACnB,CAAC,EARW,cAAc,8BAAd,cAAc,QAQzB;AAED,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,8BAAiB,CAAA;IACjB,4BAAe,CAAA;AACnB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB"}
@@ -0,0 +1,4 @@
1
+ export declare enum PhTypes {
2
+ "off" = "ph_off",
3
+ "only" = "ph_only"
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PhTypes = void 0;
4
+ var PhTypes;
5
+ (function (PhTypes) {
6
+ PhTypes["off"] = "ph_off";
7
+ PhTypes["only"] = "ph_only";
8
+ })(PhTypes || (exports.PhTypes = PhTypes = {}));
9
+ //# sourceMappingURL=PhTypesEnum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhTypesEnum.js","sourceRoot":"","sources":["../../../src/helpers/periods/PhTypesEnum.ts"],"names":[],"mappings":";;;AAAA,IAAY,OAGX;AAHD,WAAY,OAAO;IACf,yBAAgB,CAAA;IAChB,2BAAkB,CAAA;AACtB,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB"}
@@ -1,24 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ParkingsContainer = void 0;
4
+ const OpeningHoursParser_1 = require("../../helpers/osm/OpeningHoursParser");
4
5
  const TskTariffChecker_1 = require("../businessRules/TskTariffChecker");
5
6
  const ParkingProviderDataSourceFactory_1 = require("../datasources/ParkingProviderDataSourceFactory");
6
7
  const TskParkingDataSourceFactory_1 = require("../datasources/TskParkingDataSourceFactory");
8
+ const IptoictDataSource_1 = require("../datasources/manual/IptoictDataSource");
7
9
  const MrParkitDataSourceProvider_1 = require("../datasources/mr-parkit/MrParkitDataSourceProvider");
8
10
  const OsmDataSource_1 = require("../datasources/osm/OsmDataSource");
9
11
  const Smart4CityListDataSourceProvider_1 = require("../datasources/smart4city/Smart4CityListDataSourceProvider");
10
12
  const Smart4CityLocationDataSourceProvider_1 = require("../datasources/smart4city/Smart4CityLocationDataSourceProvider");
11
13
  const SmartCityListDatasourceCache_1 = require("../datasources/smart4city/SmartCityListDatasourceCache");
12
14
  const AverageOccupancyRepository_1 = require("../repositories/AverageOccupancyRepository");
15
+ const OpenHoursRepository_1 = require("../repositories/OpenHoursRepository");
13
16
  const ParkingMachinesRepository_1 = require("../repositories/ParkingMachinesRepository");
14
17
  const ParkingTariffsRepository_1 = require("../repositories/ParkingTariffsRepository");
15
18
  const ParkingsBusinessErrorsRepository_1 = require("../repositories/ParkingsBusinessErrorsRepository");
16
19
  const ParkingsLocationRepository_1 = require("../repositories/ParkingsLocationRepository");
20
+ const ParkingsMeasurementRepository_1 = require("../repositories/ParkingsMeasurementRepository");
21
+ const ParkingsMeasurementsActualRepository_1 = require("../repositories/ParkingsMeasurementsActualRepository");
17
22
  const ParkingsRepository_1 = require("../repositories/ParkingsRepository");
23
+ const ParkingsSecondaryRepository_1 = require("../repositories/ParkingsSecondaryRepository");
18
24
  const ParkingsRedisModel_1 = require("../repositories/redis/ParkingsRedisModel");
19
25
  const TskParkingMachinesTransformation_1 = require("../transformations/TskParkingMachinesTransformation");
20
- const GenerateSmart4CityTaskListTask_1 = require("../workers/tasks/GenerateSmart4CityTaskListTask");
26
+ const OsmOpeningHoursTransformation_1 = require("../transformations/osm/OsmOpeningHoursTransformation");
21
27
  const CalculateAverageOccupancyTask_1 = require("../workers/tasks/CalculateAverageOccupancyTask");
28
+ const GenerateSmart4CityTaskListTask_1 = require("../workers/tasks/GenerateSmart4CityTaskListTask");
29
+ const SaveIptoictParkingDataTask_1 = require("../workers/tasks/SaveIptoictParkingDataTask");
30
+ const SaveIsphkMeasurementsTask_1 = require("../workers/tasks/SaveIsphkMeasurementsTask");
22
31
  const SaveMrParkitDataTask_1 = require("../workers/tasks/SaveMrParkitDataTask");
23
32
  const SaveOsmDataTask_1 = require("../workers/tasks/SaveOsmDataTask");
24
33
  const UpdateSmart4CityLocationsTask_1 = require("../workers/tasks/UpdateSmart4CityLocationsTask");
@@ -27,12 +36,6 @@ const ioc_1 = require("@golemio/core/dist/integration-engine/ioc");
27
36
  const Di_1 = require("@golemio/core/dist/integration-engine/ioc/Di");
28
37
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
29
38
  const ModuleContainerToken_1 = require("./ModuleContainerToken");
30
- const ParkingsSecondaryRepository_1 = require("../repositories/ParkingsSecondaryRepository");
31
- const IptoictDataSource_1 = require("../datasources/manual/IptoictDataSource");
32
- const SaveIptoictParkingDataTask_1 = require("../workers/tasks/SaveIptoictParkingDataTask");
33
- const ParkingsMeasurementRepository_1 = require("../repositories/ParkingsMeasurementRepository");
34
- const ParkingsMeasurementsActualRepository_1 = require("../repositories/ParkingsMeasurementsActualRepository");
35
- const SaveIsphkMeasurementsTask_1 = require("../workers/tasks/SaveIsphkMeasurementsTask");
36
39
  //#region Initialization
37
40
  const parkingsContainer = Di_1.IntegrationEngineContainer.createChildContainer();
38
41
  exports.ParkingsContainer = parkingsContainer;
@@ -63,8 +66,15 @@ parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.
63
66
  parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.OsmDataSource, OsmDataSource_1.OsmDataSource);
64
67
  parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.IptoictDataSource, IptoictDataSource_1.IptoictDataSource);
65
68
  //#endregion
69
+ //#region Helpers
70
+ parkingsContainer
71
+ .register(ModuleContainerToken_1.ModuleContainerToken.TskTariffChecker, TskTariffChecker_1.TskTariffChecker)
72
+ .register(ModuleContainerToken_1.ModuleContainerToken.OsmOpeningHoursParser, OpeningHoursParser_1.OpeningHoursParser);
73
+ //#endregion
66
74
  //#region Transformation
67
- parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.TskParkingMachinesTransformation, TskParkingMachinesTransformation_1.TskParkingMachinesTransformation);
75
+ parkingsContainer
76
+ .register(ModuleContainerToken_1.ModuleContainerToken.TskParkingMachinesTransformation, TskParkingMachinesTransformation_1.TskParkingMachinesTransformation)
77
+ .register(ModuleContainerToken_1.ModuleContainerToken.OsmOpeningHoursTransformation, OsmOpeningHoursTransformation_1.OsmOpeningHoursTransformation);
68
78
  //#endregion
69
79
  //#region Repositories
70
80
  parkingsContainer
@@ -76,12 +86,10 @@ parkingsContainer
76
86
  .register(ModuleContainerToken_1.ModuleContainerToken.ParkingMachinesRepository, ParkingMachinesRepository_1.ParkingMachinesRepository)
77
87
  .register(ModuleContainerToken_1.ModuleContainerToken.AverageOccupancyRepository, AverageOccupancyRepository_1.AverageOccupancyRepository)
78
88
  .register(ModuleContainerToken_1.ModuleContainerToken.ParkingsMeasurementRepository, ParkingsMeasurementRepository_1.ParkingsMeasurementRepository)
79
- .register(ModuleContainerToken_1.ModuleContainerToken.ParkingsMeasurementsActualRepository, ParkingsMeasurementsActualRepository_1.ParkingsMeasurementsActualRepository);
89
+ .register(ModuleContainerToken_1.ModuleContainerToken.ParkingsMeasurementsActualRepository, ParkingsMeasurementsActualRepository_1.ParkingsMeasurementsActualRepository)
90
+ .register(ModuleContainerToken_1.ModuleContainerToken.OpenHoursRepository, OpenHoursRepository_1.OpenHoursRepository);
80
91
  parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.RedisModel, ParkingsRedisModel_1.ParkingsRedisModel);
81
92
  //#endregion
82
- //#region Helpers
83
- parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.TskTariffChecker, TskTariffChecker_1.TskTariffChecker);
84
- //#endregion
85
93
  //#region Tasks
86
94
  parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.SaveMrParkitDataTask, SaveMrParkitDataTask_1.SaveMrParkitDataTask);
87
95
  parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.GenerateSmart4CityTaskListTask, GenerateSmart4CityTaskListTask_1.GenerateSmart4CityTaskListTask);
@@ -1 +1 @@
1
- {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ declare const ModuleContainerToken: {
10
10
  AverageOccupancyRepository: symbol;
11
11
  ParkingsMeasurementRepository: symbol;
12
12
  ParkingsMeasurementsActualRepository: symbol;
13
+ OpenHoursRepository: symbol;
13
14
  TskParkingMachinesDataSource: symbol;
14
15
  TskParkingMachinesTransformation: symbol;
15
16
  TskParkingSectionLevel251DataSource: symbol;
@@ -28,6 +29,8 @@ declare const ModuleContainerToken: {
28
29
  UpdateSmart4CityMeasurementsTask: symbol;
29
30
  OsmDataSource: symbol;
30
31
  SaveOsmDataTask: symbol;
32
+ OsmOpeningHoursParser: symbol;
33
+ OsmOpeningHoursTransformation: symbol;
31
34
  IptoictDataSource: symbol;
32
35
  SaveIptoictParkingDataTask: symbol;
33
36
  SaveIsphkMeasurementsTask: symbol;
@@ -13,6 +13,7 @@ const ModuleContainerToken = {
13
13
  AverageOccupancyRepository: Symbol(),
14
14
  ParkingsMeasurementRepository: Symbol(),
15
15
  ParkingsMeasurementsActualRepository: Symbol(),
16
+ OpenHoursRepository: Symbol(),
16
17
  TskParkingMachinesDataSource: Symbol(),
17
18
  TskParkingMachinesTransformation: Symbol(),
18
19
  TskParkingSectionLevel251DataSource: Symbol(),
@@ -36,6 +37,8 @@ const ModuleContainerToken = {
36
37
  //#region OSM
37
38
  OsmDataSource: Symbol(),
38
39
  SaveOsmDataTask: Symbol(),
40
+ OsmOpeningHoursParser: Symbol(),
41
+ OsmOpeningHoursTransformation: Symbol(),
39
42
  //#endregion
40
43
  //#region IPTOICT
41
44
  IptoictDataSource: Symbol(),
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,gBAAgB,EAAE,MAAM,EAAE;IAC1B,UAAU,EAAE,MAAM,EAAE;IACpB,kBAAkB,EAAE,MAAM,EAAE;IAC5B,2BAA2B,EAAE,MAAM,EAAE;IACrC,0BAA0B,EAAE,MAAM,EAAE;IACpC,wBAAwB,EAAE,MAAM,EAAE;IAClC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,yBAAyB,EAAE,MAAM,EAAE;IACnC,0BAA0B,EAAE,MAAM,EAAE;IACpC,6BAA6B,EAAE,MAAM,EAAE;IACvC,oCAAoC,EAAE,MAAM,EAAE;IAE9C,4BAA4B,EAAE,MAAM,EAAE;IACtC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,mCAAmC,EAAE,MAAM,EAAE;IAC7C,mCAAmC,EAAE,MAAM,EAAE;IAC7C,4BAA4B,EAAE,MAAM,EAAE;IACtC,+BAA+B,EAAE,MAAM,EAAE;IAEzC,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,gCAAgC,EAAE,MAAM,EAAE;IAE1C,mBAAmB;IACnB,0BAA0B,EAAE,MAAM,EAAE;IACpC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,YAAY;IAEZ,oBAAoB;IACpB,gCAAgC,EAAE,MAAM,EAAE;IAC1C,oCAAoC,EAAE,MAAM,EAAE;IAC9C,4BAA4B,EAAE,MAAM,EAAE;IACtC,8BAA8B,EAAE,MAAM,EAAE;IACxC,6BAA6B,EAAE,MAAM,EAAE;IACvC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,YAAY;IAEZ,aAAa;IACb,aAAa,EAAE,MAAM,EAAE;IACvB,eAAe,EAAE,MAAM,EAAE;IACzB,YAAY;IAEZ,iBAAiB;IACjB,iBAAiB,EAAE,MAAM,EAAE;IAC3B,0BAA0B,EAAE,MAAM,EAAE;IACpC,yBAAyB,EAAE,MAAM,EAAE;IACnC,YAAY;IAEZ,2BAA2B;IAC3B,6BAA6B,EAAE,MAAM,EAAE;IACvC,YAAY;CACf,CAAC;AACO,oDAAoB"}
1
+ {"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,gBAAgB,EAAE,MAAM,EAAE;IAC1B,UAAU,EAAE,MAAM,EAAE;IACpB,kBAAkB,EAAE,MAAM,EAAE;IAC5B,2BAA2B,EAAE,MAAM,EAAE;IACrC,0BAA0B,EAAE,MAAM,EAAE;IACpC,wBAAwB,EAAE,MAAM,EAAE;IAClC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,yBAAyB,EAAE,MAAM,EAAE;IACnC,0BAA0B,EAAE,MAAM,EAAE;IACpC,6BAA6B,EAAE,MAAM,EAAE;IACvC,oCAAoC,EAAE,MAAM,EAAE;IAC9C,mBAAmB,EAAE,MAAM,EAAE;IAE7B,4BAA4B,EAAE,MAAM,EAAE;IACtC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,mCAAmC,EAAE,MAAM,EAAE;IAC7C,mCAAmC,EAAE,MAAM,EAAE;IAC7C,4BAA4B,EAAE,MAAM,EAAE;IACtC,+BAA+B,EAAE,MAAM,EAAE;IAEzC,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,gCAAgC,EAAE,MAAM,EAAE;IAE1C,mBAAmB;IACnB,0BAA0B,EAAE,MAAM,EAAE;IACpC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,YAAY;IAEZ,oBAAoB;IACpB,gCAAgC,EAAE,MAAM,EAAE;IAC1C,oCAAoC,EAAE,MAAM,EAAE;IAC9C,4BAA4B,EAAE,MAAM,EAAE;IACtC,8BAA8B,EAAE,MAAM,EAAE;IACxC,6BAA6B,EAAE,MAAM,EAAE;IACvC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,YAAY;IAEZ,aAAa;IACb,aAAa,EAAE,MAAM,EAAE;IACvB,eAAe,EAAE,MAAM,EAAE;IACzB,qBAAqB,EAAE,MAAM,EAAE;IAC/B,6BAA6B,EAAE,MAAM,EAAE;IACvC,YAAY;IAEZ,iBAAiB;IACjB,iBAAiB,EAAE,MAAM,EAAE;IAC3B,0BAA0B,EAAE,MAAM,EAAE;IACpC,yBAAyB,EAAE,MAAM,EAAE;IACnC,YAAY;IAEZ,2BAA2B;IAC3B,6BAA6B,EAAE,MAAM,EAAE;IACvC,YAAY;CACf,CAAC;AACO,oDAAoB"}
@@ -0,0 +1,6 @@
1
+ import { IOpeningHours } from "../../schema-definitions/models/interfaces/openingHours/IOpeningHours";
2
+ import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine";
3
+ export declare class OpenHoursRepository extends PostgresModel implements IModel {
4
+ constructor();
5
+ mergeOpenHours(openHours: IOpeningHours[], source: string[] | null): Promise<void>;
6
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.OpenHoursRepository = void 0;
22
+ const _sch_1 = require("../../schema-definitions");
23
+ const OpeningHoursModel_1 = require("../../schema-definitions/models/OpeningHoursModel");
24
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
25
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
26
+ const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
27
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
28
+ let OpenHoursRepository = exports.OpenHoursRepository = class OpenHoursRepository extends integration_engine_1.PostgresModel {
29
+ constructor() {
30
+ super("ParkingsOpenHoursRepository", {
31
+ pgTableName: OpeningHoursModel_1.OpeningHoursModel.tableName,
32
+ pgSchema: _sch_1.Parkings.pgSchema,
33
+ outputSequelizeAttributes: OpeningHoursModel_1.OpeningHoursModel.attributeModel,
34
+ savingType: "insertOrUpdate",
35
+ }, new golemio_validator_1.JSONSchemaValidator("ParkingsOpenHoursRepositoryValidator", {}));
36
+ }
37
+ mergeOpenHours(openHours, source) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const dateBeforeSaving = new Date();
40
+ yield this.bulkSave(openHours, ["periods_of_time", "updated_at"]);
41
+ if (source) {
42
+ yield this.sequelizeModel.destroy({
43
+ where: {
44
+ source: {
45
+ [sequelize_1.Op.in]: source,
46
+ },
47
+ updated_at: {
48
+ [sequelize_1.Op.lt]: dateBeforeSaving,
49
+ },
50
+ },
51
+ });
52
+ }
53
+ });
54
+ }
55
+ };
56
+ exports.OpenHoursRepository = OpenHoursRepository = __decorate([
57
+ (0, tsyringe_1.injectable)(),
58
+ __metadata("design:paramtypes", [])
59
+ ], OpenHoursRepository);
60
+ //# sourceMappingURL=OpenHoursRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenHoursRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/repositories/OpenHoursRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,mDAAgC;AAChC,yFAAkE;AAElE,8EAA8E;AAC9E,mFAAkF;AAClF,mEAAyD;AACzD,iEAAgE;AAGzD,IAAM,mBAAmB,iCAAzB,MAAM,mBAAoB,SAAQ,kCAAa;IAClD;QACI,KAAK,CACD,6BAA6B,EAC7B;YACI,WAAW,EAAE,qCAAiB,CAAC,SAAS;YACxC,QAAQ,EAAE,eAAQ,CAAC,QAAQ;YAC3B,yBAAyB,EAAE,qCAAiB,CAAC,cAAc;YAC3D,UAAU,EAAE,gBAAgB;SAC/B,EACD,IAAI,uCAAmB,CAAC,sCAAsC,EAAE,EAAE,CAAC,CACtE,CAAC;IACN,CAAC;IAEY,cAAc,CAAC,SAA0B,EAAE,MAAuB;;YAC3E,MAAM,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,QAAQ,CAAoB,SAAS,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC;YACrF,IAAI,MAAM,EAAE;gBACR,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC9B,KAAK,EAAE;wBACH,MAAM,EAAE;4BACJ,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,MAAM;yBAClB;wBACD,UAAU,EAAE;4BACR,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB;yBAC5B;qBACJ;iBACJ,CAAC,CAAC;aACN;QACL,CAAC;KAAA;CACJ,CAAA;8BA9BY,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;;GACA,mBAAmB,CA8B/B"}
@@ -0,0 +1,9 @@
1
+ import { IGenericFeature } from "../../datasources/interfaces/IGenericFeature";
2
+ import { IIptoictParkingProperties } from "../../../schema-definitions/datasources/Iptoict/interfaces/IIptoictParkingProperties";
3
+ import { IOpeningHours } from "../../../schema-definitions/models/interfaces/openingHours/IOpeningHours";
4
+ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
5
+ export declare class IsphkOpeningHoursTransformation extends AbstractTransformation<IGenericFeature<IIptoictParkingProperties>, IOpeningHours[]> {
6
+ name: string;
7
+ constructor();
8
+ protected transformInternal: (element: IGenericFeature<IIptoictParkingProperties>) => IOpeningHours[];
9
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.IsphkOpeningHoursTransformation = void 0;
13
+ const SourceEnum_1 = require("../../../helpers/SourceEnum");
14
+ const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
15
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
16
+ let IsphkOpeningHoursTransformation = exports.IsphkOpeningHoursTransformation = class IsphkOpeningHoursTransformation extends AbstractTransformation_1.AbstractTransformation {
17
+ constructor() {
18
+ super();
19
+ this.name = "IsphkOpeningHoursTransformation";
20
+ this.transformInternal = (element) => {
21
+ const result = [];
22
+ if (element.properties.opening_hours) {
23
+ for (const openingHour of element.properties.opening_hours) {
24
+ const transformed = {
25
+ parking_id: `${SourceEnum_1.SourceEnum.Isphk}-${element.properties.source_id}`,
26
+ source: SourceEnum_1.SourceEnum.Isphk,
27
+ valid_from: openingHour.valid_from,
28
+ valid_to: openingHour.valid_to,
29
+ periods_of_time: openingHour.periods_of_time,
30
+ };
31
+ result.push(transformed);
32
+ }
33
+ }
34
+ return result;
35
+ };
36
+ }
37
+ };
38
+ exports.IsphkOpeningHoursTransformation = IsphkOpeningHoursTransformation = __decorate([
39
+ (0, tsyringe_1.injectable)(),
40
+ __metadata("design:paramtypes", [])
41
+ ], IsphkOpeningHoursTransformation);
42
+ //# sourceMappingURL=IsphkOpeningHoursTransformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsphkOpeningHoursTransformation.js","sourceRoot":"","sources":["../../../../src/integration-engine/transformations/isphk/IsphkOpeningHoursTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4DAAiD;AAKjD,6GAA0G;AAC1G,iEAAgE;AAGzD,IAAM,+BAA+B,6CAArC,MAAM,+BAAgC,SAAQ,+CAGpD;IAGG;QACI,KAAK,EAAE,CAAC;QAHL,SAAI,GAAW,iCAAiC,CAAC;QAM9C,sBAAiB,GAAG,CAAC,OAAmD,EAAE,EAAE;YAClF,MAAM,MAAM,GAAoB,EAAE,CAAC;YAEnC,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE;gBAClC,KAAK,MAAM,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE;oBACxD,MAAM,WAAW,GAAkB;wBAC/B,UAAU,EAAE,GAAG,uBAAU,CAAC,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE;wBACjE,MAAM,EAAE,uBAAU,CAAC,KAAK;wBACxB,UAAU,EAAE,WAAW,CAAC,UAAU;wBAClC,QAAQ,EAAE,WAAW,CAAC,QAAQ;wBAC9B,eAAe,EAAE,WAAW,CAAC,eAAwC;qBACvD,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBAC5B;aACJ;YAED,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;IAnBF,CAAC;CAoBJ,CAAA;0CA5BY,+BAA+B;IAD3C,IAAA,qBAAU,GAAE;;GACA,+BAA+B,CA4B3C"}
@@ -0,0 +1,11 @@
1
+ import { OpeningHoursParser } from "../../../helpers/osm/OpeningHoursParser";
2
+ import { IGenericFeature } from "../../datasources/interfaces/IGenericFeature";
3
+ import { IOsmParkingProperties } from "../../../schema-definitions/datasources/osm/interfaces/IOsmParkingProperties";
4
+ import { IOpeningHours } from "../../../schema-definitions/models/interfaces/openingHours/IOpeningHours";
5
+ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
6
+ export declare class OsmOpeningHoursTransformation extends AbstractTransformation<IGenericFeature<IOsmParkingProperties>, IOpeningHours> {
7
+ private openingHoursParser;
8
+ name: string;
9
+ constructor(openingHoursParser: OpeningHoursParser);
10
+ protected transformInternal: (element: IGenericFeature<IOsmParkingProperties>) => IOpeningHours;
11
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.OsmOpeningHoursTransformation = void 0;
16
+ const SourceEnum_1 = require("../../../helpers/SourceEnum");
17
+ const MaxStayParser_1 = require("../../../helpers/osm/MaxStayParser");
18
+ const OpeningHoursParser_1 = require("../../../helpers/osm/OpeningHoursParser");
19
+ const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
20
+ const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
21
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
22
+ let OsmOpeningHoursTransformation = exports.OsmOpeningHoursTransformation = class OsmOpeningHoursTransformation extends AbstractTransformation_1.AbstractTransformation {
23
+ constructor(openingHoursParser) {
24
+ super();
25
+ this.openingHoursParser = openingHoursParser;
26
+ this.name = "OsmOpenHoursTransformation";
27
+ this.transformInternal = (element) => {
28
+ const periods = this.openingHoursParser.parse(element.properties.opening_hours);
29
+ const maxStay = MaxStayParser_1.MaxStayParser.parse(element.properties.maxstay);
30
+ if (periods !== null) {
31
+ for (const period of periods) {
32
+ if (maxStay !== undefined) {
33
+ period.maximum_duration = maxStay;
34
+ }
35
+ }
36
+ }
37
+ const transformed = {
38
+ parking_id: `${SourceEnum_1.SourceEnum.OSM}-${element.properties.osm_id}`,
39
+ source: SourceEnum_1.SourceEnum.OSM,
40
+ valid_from: "1970-01-01T00:00:00.000Z",
41
+ valid_to: null,
42
+ periods_of_time: periods,
43
+ };
44
+ return transformed;
45
+ };
46
+ }
47
+ };
48
+ exports.OsmOpeningHoursTransformation = OsmOpeningHoursTransformation = __decorate([
49
+ (0, tsyringe_1.injectable)(),
50
+ __param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.OsmOpeningHoursParser)),
51
+ __metadata("design:paramtypes", [OpeningHoursParser_1.OpeningHoursParser])
52
+ ], OsmOpeningHoursTransformation);
53
+ //# sourceMappingURL=OsmOpeningHoursTransformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OsmOpeningHoursTransformation.js","sourceRoot":"","sources":["../../../../src/integration-engine/transformations/osm/OsmOpeningHoursTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4DAAiD;AACjD,sEAA2D;AAC3D,gFAAqE;AAErE,yEAAoE;AAIpE,6GAA0G;AAC1G,iEAAwE;AAGjE,IAAM,6BAA6B,2CAAnC,MAAM,6BAA8B,SAAQ,+CAA6E;IAG5H,YAAgE,kBAA8C;QAC1G,KAAK,EAAE,CAAC;QAD4D,uBAAkB,GAAlB,kBAAkB,CAAoB;QAFvG,SAAI,GAAW,4BAA4B,CAAC;QAMzC,sBAAiB,GAAG,CAAC,OAA+C,EAAE,EAAE;YAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAChF,MAAM,OAAO,GAAG,6BAAa,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,OAAO,KAAK,IAAI,EAAE;gBAClB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;oBAC1B,IAAI,OAAO,KAAK,SAAS,EAAE;wBACvB,MAAM,CAAC,gBAAgB,GAAG,OAAO,CAAC;qBACrC;iBACJ;aACJ;YAED,MAAM,WAAW,GAAkB;gBAC/B,UAAU,EAAE,GAAG,uBAAU,CAAC,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE;gBAC5D,MAAM,EAAE,uBAAU,CAAC,GAAG;gBACtB,UAAU,EAAE,0BAA0B;gBACtC,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,OAAgC;aACpD,CAAC;YAEF,OAAO,WAAW,CAAC;QACvB,CAAC,CAAC;IAtBF,CAAC;CAuBJ,CAAA;wCA5BY,6BAA6B;IADzC,IAAA,qBAAU,GAAE;IAII,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,qBAAqB,CAAC,CAAA;qCAA6B,uCAAkB;GAHrG,6BAA6B,CA4BzC"}
@@ -2,13 +2,16 @@ import { IptoictDataSource } from "../../datasources/manual/IptoictDataSource";
2
2
  import { ParkingsLocationRepository } from "../../repositories/ParkingsLocationRepository";
3
3
  import { ParkingsRepository } from "../../repositories/ParkingsRepository";
4
4
  import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine";
5
+ import { OpenHoursRepository } from "../../repositories/OpenHoursRepository";
5
6
  export declare class SaveIptoictParkingDataTask extends AbstractEmptyTask {
6
7
  private iptoictDataSource;
7
8
  private parkingRepository;
8
9
  private parkingLocationRepository;
10
+ private openHoursRepository;
9
11
  readonly queueName = "saveIptoictParkingData";
10
12
  readonly queueTtl: number;
11
- constructor(iptoictDataSource: IptoictDataSource, parkingRepository: ParkingsRepository, parkingLocationRepository: ParkingsLocationRepository);
13
+ private readonly isphkOpeningHoursTransformation;
14
+ constructor(iptoictDataSource: IptoictDataSource, parkingRepository: ParkingsRepository, parkingLocationRepository: ParkingsLocationRepository, openHoursRepository: OpenHoursRepository);
12
15
  execute(): Promise<void>;
13
16
  private updateParkingData;
14
17
  private updateParkingLocations;
@@ -22,23 +22,28 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
22
22
  };
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
24
  exports.SaveIptoictParkingDataTask = void 0;
25
+ const SourceEnum_1 = require("../../../helpers/SourceEnum");
25
26
  const IptoictDataSource_1 = require("../../datasources/manual/IptoictDataSource");
26
27
  const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
27
28
  const ParkingsLocationRepository_1 = require("../../repositories/ParkingsLocationRepository");
28
29
  const ParkingsRepository_1 = require("../../repositories/ParkingsRepository");
29
30
  const IptoictParkingSpaceTransformation_1 = require("../../transformations/IptoictParkingSpaceTransformation");
30
31
  const IptoictParkingTransformation_1 = require("../../transformations/IptoictParkingTransformation");
32
+ const IsphkOpeningHoursTransformation_1 = require("../../transformations/isphk/IsphkOpeningHoursTransformation");
31
33
  const integration_engine_1 = require("@golemio/core/dist/integration-engine");
32
34
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
33
35
  const constants_1 = require("../constants");
36
+ const OpenHoursRepository_1 = require("../../repositories/OpenHoursRepository");
34
37
  let SaveIptoictParkingDataTask = exports.SaveIptoictParkingDataTask = class SaveIptoictParkingDataTask extends integration_engine_1.AbstractEmptyTask {
35
- constructor(iptoictDataSource, parkingRepository, parkingLocationRepository) {
38
+ constructor(iptoictDataSource, parkingRepository, parkingLocationRepository, openHoursRepository) {
36
39
  super(constants_1.NEW_PARKINGS_WORKER_NAME);
37
40
  this.iptoictDataSource = iptoictDataSource;
38
41
  this.parkingRepository = parkingRepository;
39
42
  this.parkingLocationRepository = parkingLocationRepository;
43
+ this.openHoursRepository = openHoursRepository;
40
44
  this.queueName = "saveIptoictParkingData";
41
45
  this.queueTtl = 1 * 60 * 60 * 1000; // 1 hour
46
+ this.isphkOpeningHoursTransformation = new IsphkOpeningHoursTransformation_1.IsphkOpeningHoursTransformation();
42
47
  }
43
48
  execute() {
44
49
  return __awaiter(this, void 0, void 0, function* () {
@@ -52,6 +57,10 @@ let SaveIptoictParkingDataTask = exports.SaveIptoictParkingDataTask = class Save
52
57
  const transformation = new IptoictParkingTransformation_1.IptoictParkingTransformation(new Date());
53
58
  const transformedData = transformation.transformArray(data);
54
59
  yield this.parkingRepository.bulkSave(transformedData);
60
+ const openingHours = data
61
+ .flatMap((parking) => this.isphkOpeningHoursTransformation.transformElement(parking))
62
+ .filter((oh) => oh.periods_of_time !== null);
63
+ yield this.openHoursRepository.mergeOpenHours(openingHours, [SourceEnum_1.SourceEnum.Isphk]);
55
64
  });
56
65
  }
57
66
  updateParkingLocations() {
@@ -68,8 +77,10 @@ exports.SaveIptoictParkingDataTask = SaveIptoictParkingDataTask = __decorate([
68
77
  __param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.IptoictDataSource)),
69
78
  __param(1, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkingsRepository)),
70
79
  __param(2, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkingsLocationRepository)),
80
+ __param(3, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.OpenHoursRepository)),
71
81
  __metadata("design:paramtypes", [IptoictDataSource_1.IptoictDataSource,
72
82
  ParkingsRepository_1.ParkingsRepository,
73
- ParkingsLocationRepository_1.ParkingsLocationRepository])
83
+ ParkingsLocationRepository_1.ParkingsLocationRepository,
84
+ OpenHoursRepository_1.OpenHoursRepository])
74
85
  ], SaveIptoictParkingDataTask);
75
86
  //# sourceMappingURL=SaveIptoictParkingDataTask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SaveIptoictParkingDataTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/SaveIptoictParkingDataTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,kFAA6E;AAC7E,yEAAoE;AACpE,8FAAyF;AACzF,8EAAyE;AACzE,+GAA0G;AAC1G,qGAAgG;AAChG,8EAA0E;AAC1E,iEAAwE;AACxE,4CAAwD;AAGjD,IAAM,0BAA0B,wCAAhC,MAAM,0BAA2B,SAAQ,sCAAiB;IAI7D,YACoD,iBAA4C,EAC3C,iBAA6C,EACrC,yBAA6D;QAEtH,KAAK,CAAC,oCAAwB,CAAC,CAAC;QAJwB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACnC,sBAAiB,GAAjB,iBAAiB,CAAoB;QAC7B,8BAAyB,GAAzB,yBAAyB,CAA4B;QAN1G,cAAS,GAAG,wBAAwB,CAAC;QACrC,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;IAQxD,CAAC;IAEY,OAAO;;YAChB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACxC,CAAC;KAAA;IAEa,iBAAiB;;YAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;YAC5D,MAAM,cAAc,GAAG,IAAI,2DAA4B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACpE,MAAM,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC3D,CAAC;KAAA;IAEa,sBAAsB;;YAChC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC;YACpE,MAAM,cAAc,GAAG,IAAI,qEAAiC,EAAE,CAAC;YAC/D,MAAM,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACnE,CAAC;KAAA;CACJ,CAAA;qCA9BY,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,iBAAiB,CAAC,CAAA;IAC9C,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,kBAAkB,CAAC,CAAA;IAC/C,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,0BAA0B,CAAC,CAAA;qCAFmB,qCAAiB;QAChB,uCAAkB;QACF,uDAA0B;GAPjH,0BAA0B,CA8BtC"}
1
+ {"version":3,"file":"SaveIptoictParkingDataTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/SaveIptoictParkingDataTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAAiD;AAEjD,kFAA6E;AAC7E,yEAAoE;AACpE,8FAAyF;AACzF,8EAAyE;AACzE,+GAA0G;AAC1G,qGAAgG;AAChG,iHAA4G;AAE5G,8EAA0E;AAC1E,iEAAwE;AACxE,4CAAwD;AACxD,gFAA2E;AAGpE,IAAM,0BAA0B,wCAAhC,MAAM,0BAA2B,SAAQ,sCAAiB;IAK7D,YACoD,iBAA4C,EAC3C,iBAA6C,EACrC,yBAA6D,EACpE,mBAAgD;QAElG,KAAK,CAAC,oCAAwB,CAAC,CAAC;QALwB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACnC,sBAAiB,GAAjB,iBAAiB,CAAoB;QAC7B,8BAAyB,GAAzB,yBAAyB,CAA4B;QAC5D,wBAAmB,GAAnB,mBAAmB,CAAqB;QARtF,cAAS,GAAG,wBAAwB,CAAC;QACrC,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;QACvC,oCAA+B,GAAG,IAAI,iEAA+B,EAAE,CAAC;IASzF,CAAC;IAEY,OAAO;;YAChB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACxC,CAAC;KAAA;IAEa,iBAAiB;;YAC3B,MAAM,IAAI,GAAsD,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;YAC/G,MAAM,cAAc,GAAG,IAAI,2DAA4B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACpE,MAAM,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAEvD,MAAM,YAAY,GAAG,IAAI;iBACpB,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;iBACpF,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC;YAEjD,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,uBAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACpF,CAAC;KAAA;IAEa,sBAAsB;;YAChC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC;YACpE,MAAM,cAAc,GAAG,IAAI,qEAAiC,EAAE,CAAC;YAC/D,MAAM,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACnE,CAAC;KAAA;CACJ,CAAA;qCAtCY,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAOJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,iBAAiB,CAAC,CAAA;IAC9C,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,kBAAkB,CAAC,CAAA;IAC/C,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,0BAA0B,CAAC,CAAA;IACvD,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,mBAAmB,CAAC,CAAA;qCAH0B,qCAAiB;QAChB,uCAAkB;QACF,uDAA0B;QACvC,yCAAmB;GAT7F,0BAA0B,CAsCtC"}
@@ -1,16 +1,20 @@
1
1
  import { OsmDataSource } from "../../datasources/osm/OsmDataSource";
2
+ import { OpenHoursRepository } from "../../repositories/OpenHoursRepository";
2
3
  import { ParkingsLocationRepository } from "../../repositories/ParkingsLocationRepository";
3
4
  import { ParkingsSecondaryRepository } from "../../repositories/ParkingsSecondaryRepository";
5
+ import { OsmOpeningHoursTransformation } from "../../transformations/osm/OsmOpeningHoursTransformation";
4
6
  import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
5
7
  import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine/workers/AbstractEmptyTask";
6
8
  export declare class SaveOsmDataTask extends AbstractEmptyTask {
7
9
  private osmDataSource;
8
10
  private parkingSecondaryRepository;
9
11
  private parkingLocationRepository;
12
+ private osmOpeningHoursTransformation;
13
+ private openHoursRepository;
10
14
  private logger;
11
15
  readonly queueName = "saveOsmDataTask";
12
16
  readonly queueTtl: number;
13
- constructor(osmDataSource: OsmDataSource, parkingSecondaryRepository: ParkingsSecondaryRepository, parkingLocationRepository: ParkingsLocationRepository, logger: ILogger);
17
+ constructor(osmDataSource: OsmDataSource, parkingSecondaryRepository: ParkingsSecondaryRepository, parkingLocationRepository: ParkingsLocationRepository, osmOpeningHoursTransformation: OsmOpeningHoursTransformation, openHoursRepository: OpenHoursRepository, logger: ILogger);
14
18
  protected execute(): Promise<void>;
15
19
  private updateParkingsData;
16
20
  private updateParkingsLocationData;
@@ -24,20 +24,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
24
24
  exports.SaveOsmDataTask = void 0;
25
25
  const OsmDataSource_1 = require("../../datasources/osm/OsmDataSource");
26
26
  const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
27
+ const OpenHoursRepository_1 = require("../../repositories/OpenHoursRepository");
27
28
  const ParkingsLocationRepository_1 = require("../../repositories/ParkingsLocationRepository");
28
29
  const ParkingsSecondaryRepository_1 = require("../../repositories/ParkingsSecondaryRepository");
30
+ const OsmOpeningHoursTransformation_1 = require("../../transformations/osm/OsmOpeningHoursTransformation");
29
31
  const OsmParkingSpaceTransformation_1 = require("../../transformations/osm/OsmParkingSpaceTransformation");
30
32
  const OsmParkingTransformation_1 = require("../../transformations/osm/OsmParkingTransformation");
31
33
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
32
34
  const AbstractEmptyTask_1 = require("@golemio/core/dist/integration-engine/workers/AbstractEmptyTask");
33
35
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
34
36
  const constants_1 = require("../constants");
37
+ const SourceEnum_1 = require("../../../helpers/SourceEnum");
35
38
  let SaveOsmDataTask = exports.SaveOsmDataTask = class SaveOsmDataTask extends AbstractEmptyTask_1.AbstractEmptyTask {
36
- constructor(osmDataSource, parkingSecondaryRepository, parkingLocationRepository, logger) {
39
+ constructor(osmDataSource, parkingSecondaryRepository, parkingLocationRepository, osmOpeningHoursTransformation, openHoursRepository, logger) {
37
40
  super(constants_1.NEW_PARKINGS_WORKER_NAME);
38
41
  this.osmDataSource = osmDataSource;
39
42
  this.parkingSecondaryRepository = parkingSecondaryRepository;
40
43
  this.parkingLocationRepository = parkingLocationRepository;
44
+ this.osmOpeningHoursTransformation = osmOpeningHoursTransformation;
45
+ this.openHoursRepository = openHoursRepository;
41
46
  this.logger = logger;
42
47
  this.queueName = "saveOsmDataTask";
43
48
  this.queueTtl = 15 * 60 * 1000; // 15min
@@ -54,6 +59,10 @@ let SaveOsmDataTask = exports.SaveOsmDataTask = class SaveOsmDataTask extends Ab
54
59
  const transformation = new OsmParkingTransformation_1.OsmParkingTransformation(new Date());
55
60
  const transformedParkings = transformation.transformArray(parkings);
56
61
  yield this.parkingSecondaryRepository.bulkSave(transformedParkings);
62
+ const openingHours = this.osmOpeningHoursTransformation
63
+ .transformArray(parkings)
64
+ .filter((oh) => oh.periods_of_time !== null);
65
+ yield this.openHoursRepository.mergeOpenHours(openingHours, [SourceEnum_1.SourceEnum.OSM]);
57
66
  });
58
67
  }
59
68
  updateParkingsLocationData() {
@@ -70,9 +79,13 @@ exports.SaveOsmDataTask = SaveOsmDataTask = __decorate([
70
79
  __param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.OsmDataSource)),
71
80
  __param(1, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkingsSecondaryRepository)),
72
81
  __param(2, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkingsLocationRepository)),
73
- __param(3, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
82
+ __param(3, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.OsmOpeningHoursTransformation)),
83
+ __param(4, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.OpenHoursRepository)),
84
+ __param(5, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
74
85
  __metadata("design:paramtypes", [OsmDataSource_1.OsmDataSource,
75
86
  ParkingsSecondaryRepository_1.ParkingsSecondaryRepository,
76
- ParkingsLocationRepository_1.ParkingsLocationRepository, Object])
87
+ ParkingsLocationRepository_1.ParkingsLocationRepository,
88
+ OsmOpeningHoursTransformation_1.OsmOpeningHoursTransformation,
89
+ OpenHoursRepository_1.OpenHoursRepository, Object])
77
90
  ], SaveOsmDataTask);
78
91
  //# sourceMappingURL=SaveOsmDataTask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SaveOsmDataTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/SaveOsmDataTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uEAAkE;AAClE,yEAAoE;AACpE,8FAAyF;AACzF,gGAA2F;AAC3F,2GAAsG;AACtG,iGAA4F;AAC5F,wEAAqE;AAErE,uGAAoG;AACpG,iEAAwE;AACxE,4CAAwD;AAGjD,IAAM,eAAe,6BAArB,MAAM,eAAgB,SAAQ,qCAAiB;IAIlD,YACgD,aAAoC,EACtB,0BAA+D,EAChE,yBAA6D,EAC5F,MAAuB;QAEjD,KAAK,CAAC,oCAAwB,CAAC,CAAC;QALoB,kBAAa,GAAb,aAAa,CAAe;QACd,+BAA0B,GAA1B,0BAA0B,CAA6B;QACxD,8BAAyB,GAAzB,yBAAyB,CAA4B;QACpF,WAAM,GAAN,MAAM,CAAS;QAPrC,cAAS,GAAG,iBAAiB,CAAC;QAC9B,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ;IASnD,CAAC;IAEe,OAAO;;YACnB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAC5C,CAAC;KAAA;IAEa,kBAAkB;;YAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YAC5D,MAAM,cAAc,GAAG,IAAI,mDAAwB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,mBAAmB,GAAG,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACpE,MAAM,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACxE,CAAC;KAAA;IAEa,0BAA0B;;YACpC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,CAAC;YAC5E,MAAM,cAAc,GAAG,IAAI,6DAA6B,EAAE,CAAC;YAC3D,MAAM,2BAA2B,GAAG,cAAc,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YACpF,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;QAC/E,CAAC;KAAA;CACJ,CAAA;0BA/BY,eAAe;IAD3B,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,aAAa,CAAC,CAAA;IAC1C,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,2BAA2B,CAAC,CAAA;IACxD,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,0BAA0B,CAAC,CAAA;IACvD,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCAH0C,6BAAa;QACc,yDAA2B;QAC7B,uDAA0B;GAPjH,eAAe,CA+B3B"}
1
+ {"version":3,"file":"SaveOsmDataTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/SaveOsmDataTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uEAAkE;AAClE,yEAAoE;AACpE,gFAA2E;AAC3E,8FAAyF;AACzF,gGAA2F;AAC3F,2GAAsG;AACtG,2GAAsG;AACtG,iGAA4F;AAC5F,wEAAqE;AAErE,uGAAoG;AACpG,iEAAwE;AACxE,4CAAwD;AACxD,4DAAiD;AAG1C,IAAM,eAAe,6BAArB,MAAM,eAAgB,SAAQ,qCAAiB;IAIlD,YACgD,aAAoC,EACtB,0BAA+D,EAChE,yBAA6D,EAEtH,6BAAoE,EAClB,mBAAgD,EACxE,MAAuB;QAEjD,KAAK,CAAC,oCAAwB,CAAC,CAAC;QARoB,kBAAa,GAAb,aAAa,CAAe;QACd,+BAA0B,GAA1B,0BAA0B,CAA6B;QACxD,8BAAyB,GAAzB,yBAAyB,CAA4B;QAE9G,kCAA6B,GAA7B,6BAA6B,CAA+B;QACV,wBAAmB,GAAnB,mBAAmB,CAAqB;QAChE,WAAM,GAAN,MAAM,CAAS;QAVrC,cAAS,GAAG,iBAAiB,CAAC;QAC9B,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ;IAYnD,CAAC;IAEe,OAAO;;YACnB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAC5C,CAAC;KAAA;IAEa,kBAAkB;;YAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YAC5D,MAAM,cAAc,GAAG,IAAI,mDAAwB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,mBAAmB,GAAG,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACpE,MAAM,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAEpE,MAAM,YAAY,GAAG,IAAI,CAAC,6BAA6B;iBAClD,cAAc,CAAC,QAAQ,CAAC;iBACxB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,uBAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAClF,CAAC;KAAA;IAEa,0BAA0B;;YACpC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,CAAC;YAC5E,MAAM,cAAc,GAAG,IAAI,6DAA6B,EAAE,CAAC;YAC3D,MAAM,2BAA2B,GAAG,cAAc,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YACpF,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;QAC/E,CAAC;KAAA;CACJ,CAAA;0BAvCY,eAAe;IAD3B,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,aAAa,CAAC,CAAA;IAC1C,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,2BAA2B,CAAC,CAAA;IACxD,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,0BAA0B,CAAC,CAAA;IACvD,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,6BAA6B,CAAC,CAAA;IAE1D,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,mBAAmB,CAAC,CAAA;IAChD,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCAN0C,6BAAa;QACc,yDAA2B;QAC7B,uDAA0B;QAE/E,6DAA6B;QACW,yCAAmB;GAV7F,eAAe,CAuC3B"}
@@ -0,0 +1,12 @@
1
+ import { Model, ModelAttributes } from "@golemio/core/dist/shared/sequelize";
2
+ import { IOpeningHours } from "./interfaces/openingHours/IOpeningHours";
3
+ import { IOpeningHoursPeriod } from "./interfaces/openingHours/IOpeningHoursPeriod";
4
+ export declare class OpeningHoursModel extends Model<IOpeningHours> implements IOpeningHours {
5
+ static tableName: string;
6
+ parking_id: string;
7
+ source: string;
8
+ valid_from: string;
9
+ valid_to: string | null;
10
+ periods_of_time: IOpeningHoursPeriod[];
11
+ static attributeModel: ModelAttributes<OpeningHoursModel>;
12
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpeningHoursModel = void 0;
4
+ const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
5
+ class OpeningHoursModel extends sequelize_1.Model {
6
+ }
7
+ exports.OpeningHoursModel = OpeningHoursModel;
8
+ OpeningHoursModel.tableName = "parkings_opening_hours";
9
+ OpeningHoursModel.attributeModel = {
10
+ parking_id: {
11
+ primaryKey: true,
12
+ type: sequelize_1.DataTypes.STRING,
13
+ },
14
+ source: {
15
+ type: sequelize_1.DataTypes.STRING,
16
+ },
17
+ valid_from: {
18
+ primaryKey: true,
19
+ type: sequelize_1.DataTypes.DATE,
20
+ },
21
+ valid_to: {
22
+ type: sequelize_1.DataTypes.DATE,
23
+ },
24
+ periods_of_time: sequelize_1.DataTypes.JSON,
25
+ };
26
+ //# sourceMappingURL=OpeningHoursModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpeningHoursModel.js","sourceRoot":"","sources":["../../../src/schema-definitions/models/OpeningHoursModel.ts"],"names":[],"mappings":";;;AAAA,mEAAwF;AAIxF,MAAa,iBAAkB,SAAQ,iBAAoB;;AAA3D,8CA0BC;AAzBiB,2BAAS,GAAG,wBAAwB,CAAC;AAQrC,gCAAc,GAAuC;IAC/D,UAAU,EAAE;QACR,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,qBAAS,CAAC,MAAM;KACzB;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM;KACzB;IACD,UAAU,EAAE;QACR,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,qBAAS,CAAC,IAAI;KACvB;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,IAAI;KACvB;IACD,eAAe,EAAE,qBAAS,CAAC,IAAI;CAClC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { IOpeningHoursPeriod } from "./IOpeningHoursPeriod";
2
+ export interface IOpeningHours {
3
+ parking_id: string;
4
+ source: string;
5
+ valid_from: string;
6
+ valid_to: string | null;
7
+ periods_of_time: IOpeningHoursPeriod[];
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IOpeningHours.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IOpeningHours.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/models/interfaces/openingHours/IOpeningHours.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export interface IOpeningHoursPeriod {
2
+ day_in_week: string;
3
+ start: string;
4
+ end: string;
5
+ ph: string;
6
+ maximum_duration: number | null;
7
+ disc_parking: boolean | null;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IOpeningHoursPeriod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IOpeningHoursPeriod.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/models/interfaces/openingHours/IOpeningHoursPeriod.ts"],"names":[],"mappings":""}
Binary file
@@ -339,12 +339,14 @@ Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje
339
339
  - zvlášť endpoint pro parkoviště a parkovací místa
340
340
  - geojson formát
341
341
  - transformace
342
- - [MrParkitGarageTransformation](../src/integration-engine/workers/tasks/osm/OsmParkingTransformation.ts) - transformace parkovišť
343
- - [MrParkitGarageTransformation](../src/integration-engine/workers/tasks/osm/OsmParkingSpaceTransformation.ts) - transformace lokací
342
+ - [OsmParkingTransformation](../src/integration-engine/transformations/osm/OsmParkingTransformation.ts) - transformace parkovišť
343
+ - [OsmParkingSpace](../src/integration-engine/transformations/osm/OsmParkingSpaceTransformation.ts) - transformace lokací
344
+ - [OsmOpeningHoursTransformaton](../src/integration-engine/transformations/osm/OsmOpeningHoursTransformaton.ts) - transformace otvíracích dob
344
345
  - data modely
345
346
  - parkingsModel -> (schéma parkings) `parkings_secondary`
346
347
  - `parkings` a `parkings_secondary` tabulky jsou ve vztahu rodič a potomek
347
348
  - parkingsLocationModel -> (schéma parkings) `parkings_location`
349
+ - parkingsOpeningHoursModel -> (schéma parkings) `parkings_opening_hours`
348
350
 
349
351
  #### Task _SaveIptoictParkingDataTask_
350
352
 
@@ -359,10 +361,12 @@ Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje
359
361
  - transformace
360
362
  - [IptoictParkingSpaceTransformation](../src/integration-engine/transformations/IptoictParkingSpaceTransformation.ts) - transformace lokací parkovišť
361
363
  - [IptoictParkingTransformation](../src/integration-engine/transformations/IptoictParkingTransformation.ts) - transformace parkovišť
364
+ - [IsphkOpeningHoursTransformation](../src/integration-engine/transformations/IsphkOpeningHoursTransformation.ts) - transformace otvíracích dob
362
365
  - data modely
363
366
  - parkingsModel -> (schéma parkings) `parkings_secondary`
364
367
  - `parkings` a `parkings_secondary` tabulky jsou ve vztahu rodič a potomek
365
368
  - parkingsLocationModel -> (schéma parkings) `parkings_location`
369
+ - parkingsOpeningHoursModel -> (schéma parkings) `parkings_opening_hours`
366
370
 
367
371
  #### Task _SaveIsphkMeasurementsTask_
368
372
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/parkings",
3
- "version": "1.8.2-dev.1202833211",
3
+ "version": "1.8.2-dev.1203186512",
4
4
  "description": "Golemio Parkings Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",