@golemio/parkings 1.25.0 → 1.25.1-dev.2404804329

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.
@@ -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', '20260211120930-tsk-v2-name-street-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', '20260211120930-tsk-v2-name-street-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,56 @@
1
+ DROP VIEW v_parkings_api_v2;
2
+
3
+ CREATE VIEW v_parkings_api_v2 AS
4
+ SELECT
5
+ -- all original columns except those we override
6
+ p.id,
7
+ p.source,
8
+ p.source_id,
9
+ p.data_provider,
10
+ p.date_modified,
11
+ p.address,
12
+ p.location,
13
+ p.area_served,
14
+ p.total_spot_number,
15
+ p.create_batch_id,
16
+ p.created_at,
17
+ p.created_by,
18
+ p.update_batch_id,
19
+ p.updated_at,
20
+ p.updated_by,
21
+ p.valid_from,
22
+ p.valid_to,
23
+ p.parking_type,
24
+ p.centroid,
25
+ p."security",
26
+ p.max_vehicle_dimensions,
27
+ p.covered,
28
+ p.contact,
29
+ p.parking_policy,
30
+ p.sanitized_location,
31
+ p.area,
32
+ p.address_updated_at,
33
+ p.active,
34
+ -- overrides for tsk_v2
35
+ CASE WHEN p.source = 'tsk_v2' THEN p.name ELSE p.source_id END AS source_id_mapped,
36
+ CASE
37
+ WHEN p.source = 'tsk_v2' THEN COALESCE(p.address->>'street_address', p.name)
38
+ ELSE p.name
39
+ END AS name,
40
+ CASE
41
+ WHEN p.source = 'tsk_v2' AND p.category = 'violet' THEN 'zone_mixed'
42
+ WHEN p.source = 'tsk_v2' AND p.category = 'blue' THEN 'zone_residential'
43
+ WHEN p.source = 'tsk_v2' AND p.category = 'orange' THEN 'zone_visitors'
44
+ WHEN p.source = 'tsk_v2' THEN 'zone_other'
45
+ ELSE p.zone_type
46
+ END AS zone_type,
47
+ CASE
48
+ WHEN p.source = 'tsk_v2' AND p.category = 'violet' THEN 'zone_mixed'
49
+ WHEN p.source = 'tsk_v2' AND p.category = 'blue' THEN 'zone_residential'
50
+ WHEN p.source = 'tsk_v2' AND p.category = 'orange' THEN 'zone_visitors'
51
+ WHEN p.source = 'tsk_v2' THEN 'zone_other'
52
+ ELSE p.category
53
+ END AS category
54
+ FROM parkings p
55
+ JOIN parking_sources ps ON p.source = ps.source
56
+ WHERE p.active = true and ps.legacy_api_allowed = true;
@@ -0,0 +1,53 @@
1
+ DROP VIEW v_parkings_api_v2;
2
+
3
+ CREATE VIEW v_parkings_api_v2 AS
4
+ SELECT
5
+ -- all original columns except those we override
6
+ p.id,
7
+ p.source,
8
+ p.source_id,
9
+ p.data_provider,
10
+ p.date_modified,
11
+ p.address,
12
+ p.location,
13
+ p.area_served,
14
+ p.total_spot_number,
15
+ p.create_batch_id,
16
+ p.created_at,
17
+ p.created_by,
18
+ p.update_batch_id,
19
+ p.updated_at,
20
+ p.updated_by,
21
+ p.valid_from,
22
+ p.valid_to,
23
+ p.parking_type,
24
+ p.centroid,
25
+ p."security",
26
+ p.max_vehicle_dimensions,
27
+ p.covered,
28
+ p.contact,
29
+ p.parking_policy,
30
+ p.sanitized_location,
31
+ p.area,
32
+ p.address_updated_at,
33
+ p.active,
34
+ -- overrides for tsk_v2
35
+ CASE WHEN p.source = 'tsk_v2' THEN SPLIT_PART(p.name, '; ', 1) ELSE p.source_id END AS source_id_mapped,
36
+ p.name,
37
+ CASE
38
+ WHEN p.source = 'tsk_v2' AND p.category = 'violet' THEN 'zone_mixed'
39
+ WHEN p.source = 'tsk_v2' AND p.category = 'blue' THEN 'zone_residential'
40
+ WHEN p.source = 'tsk_v2' AND p.category = 'orange' THEN 'zone_visitors'
41
+ WHEN p.source = 'tsk_v2' THEN 'zone_other'
42
+ ELSE p.zone_type
43
+ END AS zone_type,
44
+ CASE
45
+ WHEN p.source = 'tsk_v2' AND p.category = 'violet' THEN 'zone_mixed'
46
+ WHEN p.source = 'tsk_v2' AND p.category = 'blue' THEN 'zone_residential'
47
+ WHEN p.source = 'tsk_v2' AND p.category = 'orange' THEN 'zone_visitors'
48
+ WHEN p.source = 'tsk_v2' THEN 'zone_other'
49
+ ELSE p.category
50
+ END AS category
51
+ FROM parkings p
52
+ JOIN parking_sources ps ON p.source = ps.source
53
+ WHERE p.active = true and ps.legacy_api_allowed = true;
@@ -0,0 +1,7 @@
1
+ import { ITskParkingSectionLevel } from "../../schema-definitions/datasources/interfaces/ITskParkingSectionLevel";
2
+ /**
3
+ * Groups section items by their parent section (idSection) and determines the unified street name.
4
+ * - If all items in a section share the same non-null streetNameValid, that value is used.
5
+ * - Otherwise (multiple streets, any null), the section gets no street name.
6
+ */
7
+ export declare function buildStreetNameMap(sectionItems: ITskParkingSectionLevel[]): Map<string, string | null>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildStreetNameMap = void 0;
4
+ /**
5
+ * Groups section items by their parent section (idSection) and determines the unified street name.
6
+ * - If all items in a section share the same non-null streetNameValid, that value is used.
7
+ * - Otherwise (multiple streets, any null), the section gets no street name.
8
+ */
9
+ function buildStreetNameMap(sectionItems) {
10
+ const grouped = new Map();
11
+ for (const item of sectionItems) {
12
+ const existing = grouped.get(item.idSection);
13
+ if (existing) {
14
+ existing.add(item.streetNameValid);
15
+ }
16
+ else {
17
+ grouped.set(item.idSection, new Set([item.streetNameValid]));
18
+ }
19
+ }
20
+ const result = new Map();
21
+ for (const [idSection, streetNames] of grouped) {
22
+ result.set(idSection, streetNames.size === 1 && !streetNames.has(null) ? streetNames.values().next().value : null);
23
+ }
24
+ return result;
25
+ }
26
+ exports.buildStreetNameMap = buildStreetNameMap;
27
+ //# sourceMappingURL=StreetNameHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreetNameHelper.js","sourceRoot":"","sources":["../../../src/integration-engine/helpers/StreetNameHelper.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,YAAuC;IACtE,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;QAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACtC;aAAM;YACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;SAChE;KACJ;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,OAAO,EAAE;QAC5C,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KACtH;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAjBD,gDAiBC"}
@@ -4,9 +4,11 @@ import { IParkingTariffRelation } from "../../schema-definitions/models/interfac
4
4
  import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
5
5
  export declare class TskParkingSectionTransformation extends AbstractTransformation<ITskParkingSection, IParking> {
6
6
  private transformationDate;
7
+ private streetNameMap;
7
8
  name: string;
8
- constructor(transformationDate: Date);
9
+ constructor(transformationDate: Date, streetNameMap: Map<string, string | null>);
9
10
  protected transformInternal: (section: ITskParkingSection) => IParking;
10
11
  transformParkingTariffsRelation: (sections: ITskParkingSection[]) => IParkingTariffRelation[];
12
+ private buildName;
11
13
  private getSectionCat;
12
14
  }
@@ -18,9 +18,10 @@ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
18
18
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
19
19
  const wkt_1 = require("@terraformer/wkt");
20
20
  let TskParkingSectionTransformation = exports.TskParkingSectionTransformation = class TskParkingSectionTransformation extends AbstractTransformation_1.AbstractTransformation {
21
- constructor(transformationDate) {
21
+ constructor(transformationDate, streetNameMap) {
22
22
  super();
23
23
  this.transformationDate = transformationDate;
24
+ this.streetNameMap = streetNameMap;
24
25
  this.name = "TskParkingSectionTransformation";
25
26
  this.transformInternal = (section) => {
26
27
  const location = (0, wkt_1.wktToGeoJSON)(section.borderWKT);
@@ -34,7 +35,7 @@ let TskParkingSectionTransformation = exports.TskParkingSectionTransformation =
34
35
  source_id: section.idSection,
35
36
  data_provider: "www.tsk-praha.cz",
36
37
  location,
37
- name: section.sectionCode,
38
+ name: this.buildName(section),
38
39
  total_spot_number: section.projectedCapacity,
39
40
  category: this.getSectionCat(section.sectionCat),
40
41
  valid_from,
@@ -61,6 +62,13 @@ let TskParkingSectionTransformation = exports.TskParkingSectionTransformation =
61
62
  return parkingTariffsIdPairs;
62
63
  };
63
64
  }
65
+ buildName(section) {
66
+ const streetName = this.streetNameMap.get(section.idSection);
67
+ if (streetName) {
68
+ return `${section.sectionCode}; ${streetName}`;
69
+ }
70
+ return section.sectionCode;
71
+ }
64
72
  getSectionCat(catNo) {
65
73
  switch (catNo) {
66
74
  case 1:
@@ -80,6 +88,6 @@ let TskParkingSectionTransformation = exports.TskParkingSectionTransformation =
80
88
  };
81
89
  exports.TskParkingSectionTransformation = TskParkingSectionTransformation = __decorate([
82
90
  (0, tsyringe_1.injectable)(),
83
- __metadata("design:paramtypes", [Date])
91
+ __metadata("design:paramtypes", [Date, Map])
84
92
  ], TskParkingSectionTransformation);
85
93
  //# sourceMappingURL=TskParkingSectionTransformation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TskParkingSectionTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/TskParkingSectionTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mEAA2D;AAC3D,4DAA8D;AAI9D,wDAAsD;AACtD,6GAA0G;AAE1G,6EAAwE;AACxE,iEAAgE;AAChE,0CAAgD;AAGzC,IAAM,+BAA+B,6CAArC,MAAM,+BAAgC,SAAQ,+CAAoD;IAGrG,YAAoB,kBAAwB;QACxC,KAAK,EAAE,CAAC;QADQ,uBAAkB,GAAlB,kBAAkB,CAAM;QAF5C,SAAI,GAAW,iCAAiC,CAAC;QAMvC,sBAAiB,GAAG,CAAC,OAA2B,EAAY,EAAE;YACpE,MAAM,QAAQ,GAAG,IAAA,kBAAY,EAAC,OAAO,CAAC,SAAS,CAAoB,CAAC;YACpE,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS;gBAChC,CAAC,CAAC,kBAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC,WAAW,EAAE;gBAClF,CAAC,CAAC,IAAI,CAAC;YACX,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAEzH,OAAO;gBACH,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW;gBACjC,MAAM,EAAE,uBAAU,CAAC,MAAM;gBACzB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,aAAa,EAAE,kBAAkB;gBACjC,QAAQ;gBACR,IAAI,EAAE,OAAO,CAAC,WAAW;gBACzB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC;gBAChD,UAAU;gBACV,QAAQ;gBACR,YAAY,EAAE,WAAW;gBACzB,SAAS,EAAE,MAAM;gBACjB,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBACpD,QAAQ,EAAE,IAAA,iCAAiB,EAAC,QAAQ,CAAC;gBACrC,cAAc,EAAE,MAAM;gBACtB,MAAM,EAAE,IAAI;aACf,CAAC;QACN,CAAC,CAAC;QAEK,oCAA+B,GAAG,CAAC,QAA8B,EAA4B,EAAE;YAClG,MAAM,qBAAqB,GAAG,EAAE,CAAC;YACjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC5B,IAAI,OAAO,CAAC,QAAQ,EAAE;oBAClB,qBAAqB,CAAC,IAAI,CAAC;wBACvB,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW;wBACzC,SAAS,EAAE,OAAO,CAAC,QAAQ;wBAC3B,MAAM,EAAE,uBAAU,CAAC,MAAM;qBAC5B,CAAC,CAAC;iBACN;aACJ;YAED,OAAO,qBAAqB,CAAC;QACjC,CAAC,CAAC;IA1CF,CAAC;IA4CO,aAAa,CAAC,KAAa;QAC/B,QAAQ,KAAK,EAAE;YACX,KAAK,CAAC;gBACF,OAAO,MAAM,CAAC;YAClB,KAAK,CAAC;gBACF,OAAO,QAAQ,CAAC;YACpB,KAAK,CAAC;gBACF,OAAO,QAAQ,CAAC;YACpB,KAAK,CAAC;gBACF,OAAO,OAAO,CAAC;YACnB,KAAK,CAAC;gBACF,OAAO,OAAO,CAAC;YACnB;gBACI,MAAM,IAAI,6BAAY,CAAC,4BAA4B,KAAK,wBAAwB,CAAC,CAAC;SACzF;IACL,CAAC;CACJ,CAAA;0CAjEY,+BAA+B;IAD3C,IAAA,qBAAU,GAAE;qCAI+B,IAAI;GAHnC,+BAA+B,CAiE3C"}
1
+ {"version":3,"file":"TskParkingSectionTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/TskParkingSectionTransformation.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,10 @@ class TskParkingWorker extends integration_engine_1.AbstractWorker {
15
15
  constructor() {
16
16
  super();
17
17
  this.name = "TskParkingWorker";
18
- const saveTskParkingSectionsTask = new SaveTskParkingSectionsTask_1.SaveTskParkingSectionsTask(this.getQueuePrefix(), Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.TskParkingSectionsDataSource), Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingsRepository), Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingTariffRelationsRepository), ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.SimpleConfig));
18
+ const saveTskParkingSectionsTask = new SaveTskParkingSectionsTask_1.SaveTskParkingSectionsTask(this.getQueuePrefix(), Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.TskParkingSectionsDataSource), [
19
+ Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.TskParkingSectionLevel251DataSource),
20
+ Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.TskParkingSectionLevel253DataSource),
21
+ ], Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingsRepository), Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingTariffRelationsRepository), ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.SimpleConfig), ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.Logger));
19
22
  const saveTskParkingSectionLevel251Task = new SaveTskParkingSectionLevelTask_1.SaveTskParkingSectionLevelTask("saveTskParkingSectionLevel251", this.getQueuePrefix(), Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.TskParkingSectionLevel251DataSource), new TskParkingSectionLevelTransformation_1.TskParkingSectionLevelTransformation(), Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingsLocationRepository), ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.SimpleConfig));
20
23
  const saveTskParkingSectionLevel253Task = new SaveTskParkingSectionLevelTask_1.SaveTskParkingSectionLevelTask("saveTskParkingSectionLevel253", this.getQueuePrefix(), Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.TskParkingSectionLevel253DataSource), new TskParkingSectionLevelTransformation_1.TskParkingSectionLevelTransformation("disabled"), Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingsLocationRepository), ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.SimpleConfig));
21
24
  const saveTskParkingMachinesTask = new SaveTskParkingMachinesTask_1.SaveTskParkingMachinesTask(this.getQueuePrefix(), Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.TskParkingMachinesDataSource), Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.TskParkingMachinesTransformation), Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingMachinesRepository), Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingTariffRelationsRepository));
@@ -1 +1 @@
1
- {"version":3,"file":"TskParkingWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/TskParkingWorker.ts"],"names":[],"mappings":";;;AAAA,kCAA+C;AAC/C,sEAAoE;AACpE,kHAAgH;AAChH,mFAA0F;AAC1F,2FAAkG;AAClG,mFAA0F;AAC1F,2FAAkG;AAElG,wEAAqE;AACrE,8EAAuE;AACvE,mEAAuF;AAEvF,MAAa,gBAAiB,SAAQ,mCAAc;IAGhD;QACI,KAAK,EAAE,CAAC;QAHO,SAAI,GAAW,kBAAkB,CAAC;QAKjD,MAAM,0BAA0B,GAAG,IAAI,uDAA0B,CAC7D,IAAI,CAAC,cAAc,EAAE,EACrB,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,4BAA4B,CAAC,EAC5E,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,kBAAkB,CAAC,EAClE,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,gCAAgC,CAAC,EAChF,gCAA0B,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAC5E,CAAC;QAEF,MAAM,iCAAiC,GAAG,IAAI,+DAA8B,CACxE,+BAA+B,EAC/B,IAAI,CAAC,cAAc,EAAE,EACrB,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,mCAAmC,CAAC,EACnF,IAAI,2EAAoC,EAAE,EAC1C,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,0BAA0B,CAAC,EAC1E,gCAA0B,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAC5E,CAAC;QAEF,MAAM,iCAAiC,GAAG,IAAI,+DAA8B,CACxE,+BAA+B,EAC/B,IAAI,CAAC,cAAc,EAAE,EACrB,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,mCAAmC,CAAC,EACnF,IAAI,2EAAoC,CAAC,UAAU,CAAC,EACpD,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,0BAA0B,CAAC,EAC1E,gCAA0B,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAC5E,CAAC;QAEF,MAAM,0BAA0B,GAAG,IAAI,uDAA0B,CAC7D,IAAI,CAAC,cAAc,EAAE,EACrB,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,4BAA4B,CAAC,EAC5E,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,gCAAgC,CAAC,EAChF,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,yBAAyB,CAAC,EACzE,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,gCAAgC,CAAC,CACnF,CAAC;QAEF,MAAM,8BAA8B,GAAG,IAAI,+DAA8B,CACrE,IAAI,CAAC,cAAc,EAAE,EACrB,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,gCAAgC,CAAC,EAChF,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,wBAAwB,CAAC,CAC3E,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,8BAA8B,CAAC,CAAC;IACtD,CAAC;CACJ;AApDD,4CAoDC"}
1
+ {"version":3,"file":"TskParkingWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/TskParkingWorker.ts"],"names":[],"mappings":";;;AAAA,kCAA+C;AAC/C,sEAAoE;AACpE,kHAAgH;AAChH,mFAA0F;AAC1F,2FAAkG;AAClG,mFAA0F;AAC1F,2FAAkG;AAGlG,wEAAqE;AACrE,8EAAuE;AACvE,mEAAuF;AAEvF,MAAa,gBAAiB,SAAQ,mCAAc;IAGhD;QACI,KAAK,EAAE,CAAC;QAHO,SAAI,GAAW,kBAAkB,CAAC;QAKjD,MAAM,0BAA0B,GAAG,IAAI,uDAA0B,CAC7D,IAAI,CAAC,cAAc,EAAE,EACrB,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,4BAA4B,CAAC,EAC5E;YACI,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,mCAAmC,CAAC;YACnF,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,mCAAmC,CAAC;SACtF,EACD,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,kBAAkB,CAAC,EAClE,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,gCAAgC,CAAC,EAChF,gCAA0B,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,EACzE,gCAA0B,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CAChE,CAAC;QAEF,MAAM,iCAAiC,GAAG,IAAI,+DAA8B,CACxE,+BAA+B,EAC/B,IAAI,CAAC,cAAc,EAAE,EACrB,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,mCAAmC,CAAC,EACnF,IAAI,2EAAoC,EAAE,EAC1C,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,0BAA0B,CAAC,EAC1E,gCAA0B,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAC5E,CAAC;QAEF,MAAM,iCAAiC,GAAG,IAAI,+DAA8B,CACxE,+BAA+B,EAC/B,IAAI,CAAC,cAAc,EAAE,EACrB,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,mCAAmC,CAAC,EACnF,IAAI,2EAAoC,CAAC,UAAU,CAAC,EACpD,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,0BAA0B,CAAC,EAC1E,gCAA0B,CAAC,OAAO,CAAgB,qBAAS,CAAC,YAAY,CAAC,CAC5E,CAAC;QAEF,MAAM,0BAA0B,GAAG,IAAI,uDAA0B,CAC7D,IAAI,CAAC,cAAc,EAAE,EACrB,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,4BAA4B,CAAC,EAC5E,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,gCAAgC,CAAC,EAChF,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,yBAAyB,CAAC,EACzE,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,gCAAgC,CAAC,CACnF,CAAC;QAEF,MAAM,8BAA8B,GAAG,IAAI,+DAA8B,CACrE,IAAI,CAAC,cAAc,EAAE,EACrB,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,gCAAgC,CAAC,EAChF,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,wBAAwB,CAAC,CAC3E,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,8BAA8B,CAAC,CAAC;IACtD,CAAC;CACJ;AAzDD,4CAyDC"}
@@ -3,13 +3,18 @@ import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine";
3
3
  import { DataSource } from "@golemio/core/dist/integration-engine/datasources";
4
4
  import { ParkingsRepository } from "../../repositories/ParkingsRepository";
5
5
  import { ITskParkingSection } from "../../../schema-definitions/datasources/interfaces/ITskParkingSection";
6
+ import { ITskParkingSectionLevel } from "../../../schema-definitions/datasources/interfaces/ITskParkingSectionLevel";
6
7
  import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
8
+ import { ILogger } from "@golemio/core/dist/helpers";
7
9
  export declare class SaveTskParkingSectionsTask extends AbstractEmptyTask {
8
10
  private dataSource;
11
+ private sectionLevelDataSources;
9
12
  private parkingsRepository;
10
13
  private parkingTariffRelationsRepository;
11
14
  private config;
15
+ private log;
12
16
  readonly queueName = "saveTskParkingSections";
13
- constructor(queuePrefix: string, dataSource: DataSource<ITskParkingSection[]>, parkingsRepository: ParkingsRepository, parkingTariffRelationsRepository: ParkingTariffRelationsRepository, config: ISimpleConfig);
17
+ constructor(queuePrefix: string, dataSource: DataSource<ITskParkingSection[]>, sectionLevelDataSources: Array<DataSource<ITskParkingSectionLevel[]>>, parkingsRepository: ParkingsRepository, parkingTariffRelationsRepository: ParkingTariffRelationsRepository, config: ISimpleConfig, log: ILogger);
14
18
  execute(): Promise<void>;
19
+ private fetchStreetNameMap;
15
20
  }
@@ -2,26 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SaveTskParkingSectionsTask = void 0;
4
4
  const integration_engine_1 = require("@golemio/core/dist/integration-engine");
5
+ const StreetNameHelper_1 = require("../../helpers/StreetNameHelper");
5
6
  const TskParkingSectionTransformation_1 = require("../../transformations/TskParkingSectionTransformation");
6
7
  const UpdateAddressWorker_1 = require("../UpdateAddressWorker");
7
8
  const SourceEnum_1 = require("../../../helpers/constants/SourceEnum");
8
9
  const TskParkingFilter_1 = require("../../transformations/TskParkingFilter");
9
10
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
10
11
  class SaveTskParkingSectionsTask extends integration_engine_1.AbstractEmptyTask {
11
- constructor(queuePrefix, dataSource, parkingsRepository, parkingTariffRelationsRepository, config) {
12
+ constructor(queuePrefix, dataSource, sectionLevelDataSources, parkingsRepository, parkingTariffRelationsRepository, config, log) {
12
13
  super(queuePrefix);
13
14
  this.dataSource = dataSource;
15
+ this.sectionLevelDataSources = sectionLevelDataSources;
14
16
  this.parkingsRepository = parkingsRepository;
15
17
  this.parkingTariffRelationsRepository = parkingTariffRelationsRepository;
16
18
  this.config = config;
19
+ this.log = log;
17
20
  this.queueName = "saveTskParkingSections";
18
21
  }
19
22
  async execute() {
20
23
  try {
21
24
  const processingDate = new Date();
25
+ const streetNameMap = await this.fetchStreetNameMap();
22
26
  const sourceData = await this.dataSource.getAll();
23
27
  const filteredData = sourceData.filter((parking) => TskParkingFilter_1.TskParkingFilter.isWithinValidityPeriod(parking));
24
- const transformation = new TskParkingSectionTransformation_1.TskParkingSectionTransformation(processingDate);
28
+ const transformation = new TskParkingSectionTransformation_1.TskParkingSectionTransformation(processingDate, streetNameMap);
25
29
  const transformedParkings = transformation.transformArray(filteredData);
26
30
  await this.parkingsRepository.saveActiveParkingsWithoutAddress(transformedParkings, SourceEnum_1.SourceEnum.TSK_V2);
27
31
  const transformedParkingTariffsRelationData = transformation.transformParkingTariffsRelation(filteredData);
@@ -36,6 +40,18 @@ class SaveTskParkingSectionsTask extends integration_engine_1.AbstractEmptyTask
36
40
  throw new golemio_errors_1.GeneralError("Error while saving TSK parking sections", this.constructor.name, error);
37
41
  }
38
42
  }
43
+ async fetchStreetNameMap() {
44
+ try {
45
+ const results = await Promise.all(this.sectionLevelDataSources.map((ds) => ds.getAll()));
46
+ const sectionLevelData = results.flat();
47
+ const filtered = sectionLevelData.filter((item) => TskParkingFilter_1.TskParkingFilter.isWithinValidityPeriod(item));
48
+ return (0, StreetNameHelper_1.buildStreetNameMap)(filtered);
49
+ }
50
+ catch (error) {
51
+ this.log.error(new golemio_errors_1.GeneralError(`Error while fetching ${SourceEnum_1.SourceEnum.TSK_V2} street name map`, this.constructor.name, error));
52
+ return new Map();
53
+ }
54
+ }
39
55
  }
40
56
  exports.SaveTskParkingSectionsTask = SaveTskParkingSectionsTask;
41
57
  //# sourceMappingURL=SaveTskParkingSectionsTask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SaveTskParkingSectionsTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/SaveTskParkingSectionsTask.ts"],"names":[],"mappings":";;;AACA,8EAAwF;AAIxF,2GAAsG;AACtG,gEAAsE;AAEtE,sEAA2D;AAC3D,6EAAwE;AACxE,6EAA8F;AAE9F,MAAa,0BAA2B,SAAQ,sCAAiB;IAG7D,YACI,WAAmB,EACX,UAA4C,EAC5C,kBAAsC,EACtC,gCAAkE,EAClE,MAAqB;QAE7B,KAAK,CAAC,WAAW,CAAC,CAAC;QALX,eAAU,GAAV,UAAU,CAAkC;QAC5C,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,qCAAgC,GAAhC,gCAAgC,CAAkC;QAClE,WAAM,GAAN,MAAM,CAAe;QAPjB,cAAS,GAAG,wBAAwB,CAAC;IAUrD,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,IAAI;YACA,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;YAClC,MAAM,UAAU,GAAyB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACxE,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,mCAAgB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;YACtG,MAAM,cAAc,GAAG,IAAI,iEAA+B,CAAC,cAAc,CAAC,CAAC;YAC3E,MAAM,mBAAmB,GAAG,cAAc,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAExE,MAAM,IAAI,CAAC,kBAAkB,CAAC,gCAAgC,CAAC,mBAAmB,EAAE,uBAAU,CAAC,MAAM,CAAC,CAAC;YACvG,MAAM,qCAAqC,GAAG,cAAc,CAAC,+BAA+B,CAAC,YAAY,CAAC,CAAC;YAC3G,MAAM,IAAI,CAAC,gCAAgC,CAAC,oBAAoB,CAC5D,qCAAqC,EACrC,uBAAU,CAAC,MAAM,EACjB,cAAc,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,0BAA0B,CAAC,CAAC;YAC1E,MAAM,iCAAY,CAAC,qBAAqB,CACpC,QAAQ,GAAG,GAAG,GAAG,yCAAmB,CAAC,UAAU,CAAC,WAAW,EAAE,EAC7D,gCAAgC,EAChC,EAAE,CACL,CAAC;SACL;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,KAAK,YAAY,qCAAoB,EAAE;gBACvC,MAAM,KAAK,CAAC;aACf;YACD,MAAM,IAAI,6BAAY,CAAC,yCAAyC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACnG;IACL,CAAC;CACJ;AA1CD,gEA0CC"}
1
+ {"version":3,"file":"SaveTskParkingSectionsTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/SaveTskParkingSectionsTask.ts"],"names":[],"mappings":"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"}
@@ -1431,6 +1431,12 @@ components:
1431
1431
  has_occupancy_info:
1432
1432
  type: boolean
1433
1433
  description: 'True if average occupancy info calculated from measurements is available'
1434
+ area:
1435
+ type: number
1436
+ nullable: true
1437
+ description: 'Area of the parking lot in square meters.'
1438
+ address:
1439
+ $ref: '#/components/schemas/ParkingAddress'
1434
1440
  required:
1435
1441
  - id
1436
1442
  - primary_source
@@ -1640,6 +1646,7 @@ components:
1640
1646
  nullable: true
1641
1647
  items:
1642
1648
  type: string
1649
+ example: ["walk", "car"]
1643
1650
  level:
1644
1651
  type: number
1645
1652
  nullable: true
@@ -1665,47 +1672,41 @@ components:
1665
1672
  type: object
1666
1673
  title: Parking Payment
1667
1674
  properties:
1668
- properties:
1669
- type: object
1670
- properties:
1671
- web_url:
1672
- type: string
1673
- nullable: true
1674
- android_url:
1675
- type: string
1676
- nullable: true
1677
- ios_url:
1678
- type: string
1679
- nullable: true
1680
- discovery_url:
1681
- type: string
1682
- nullable: true
1675
+ web_url:
1676
+ type: string
1677
+ nullable: true
1678
+ android_url:
1679
+ type: string
1680
+ nullable: true
1681
+ ios_url:
1682
+ type: string
1683
+ nullable: true
1684
+ discovery_url:
1685
+ type: string
1686
+ nullable: true
1683
1687
  ParkingReservation:
1684
1688
  type: object
1685
1689
  title: Parking Reservation
1686
1690
  properties:
1687
- properties:
1688
- type: object
1689
- properties:
1690
- reservation_type:
1691
- type: string
1692
- enum:
1693
- - possible
1694
- - not_possible
1695
- - required
1696
- nullable: true
1697
- web_url:
1698
- type: string
1699
- nullable: true
1700
- android_url:
1701
- type: string
1702
- nullable: true
1703
- ios_url:
1704
- type: string
1705
- nullable: true
1706
- discovery_url:
1707
- type: string
1708
- nullable: true
1691
+ reservation_type:
1692
+ type: string
1693
+ enum:
1694
+ - possible
1695
+ - not_possible
1696
+ - required
1697
+ nullable: true
1698
+ web_url:
1699
+ type: string
1700
+ nullable: true
1701
+ android_url:
1702
+ type: string
1703
+ nullable: true
1704
+ ios_url:
1705
+ type: string
1706
+ nullable: true
1707
+ discovery_url:
1708
+ type: string
1709
+ nullable: true
1709
1710
  ParkingOccupancyMeasurement:
1710
1711
  type: object
1711
1712
  title: Parking Occupancy
@@ -1750,15 +1751,15 @@ components:
1750
1751
  type: string
1751
1752
  nullable: true
1752
1753
  description: 'Formatted address of the parking location.'
1753
- country:
1754
+ address_country:
1754
1755
  type: string
1755
1756
  nullable: true
1756
1757
  description: 'Country of the parking location.'
1757
- locality:
1758
+ address_locality:
1758
1759
  type: string
1759
1760
  nullable: true
1760
1761
  description: 'Locality of the parking location.'
1761
- region:
1762
+ address_region:
1762
1763
  type: string
1763
1764
  nullable: true
1764
1765
  description: 'Region of the parking location.'
@@ -1770,10 +1771,6 @@ components:
1770
1771
  type: string
1771
1772
  nullable: true
1772
1773
  description: 'Street address of the parking location.'
1773
- area:
1774
- type: number
1775
- nullable: false
1776
- description: 'Area of the parking lot in square meters.'
1777
1774
  house_number:
1778
1775
  type: string
1779
1776
  nullable: true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/parkings",
3
- "version": "1.25.0",
3
+ "version": "1.25.1-dev.2404804329",
4
4
  "description": "Golemio Parkings Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",