@golemio/parkings 1.25.1 → 1.25.2-dev.2433806764

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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"}
@@ -1432,6 +1432,12 @@ components:
1432
1432
  has_occupancy_info:
1433
1433
  type: boolean
1434
1434
  description: 'True if average occupancy info calculated from measurements is available'
1435
+ area:
1436
+ type: number
1437
+ nullable: true
1438
+ description: 'Area of the parking lot in square meters.'
1439
+ address:
1440
+ $ref: '#/components/schemas/ParkingAddress'
1435
1441
  required:
1436
1442
  - id
1437
1443
  - primary_source
@@ -1641,6 +1647,7 @@ components:
1641
1647
  nullable: true
1642
1648
  items:
1643
1649
  type: string
1650
+ example: ["walk", "car"]
1644
1651
  level:
1645
1652
  type: number
1646
1653
  nullable: true
@@ -1666,47 +1673,41 @@ components:
1666
1673
  type: object
1667
1674
  title: Parking Payment
1668
1675
  properties:
1669
- properties:
1670
- type: object
1671
- properties:
1672
- web_url:
1673
- type: string
1674
- nullable: true
1675
- android_url:
1676
- type: string
1677
- nullable: true
1678
- ios_url:
1679
- type: string
1680
- nullable: true
1681
- discovery_url:
1682
- type: string
1683
- nullable: true
1676
+ web_url:
1677
+ type: string
1678
+ nullable: true
1679
+ android_url:
1680
+ type: string
1681
+ nullable: true
1682
+ ios_url:
1683
+ type: string
1684
+ nullable: true
1685
+ discovery_url:
1686
+ type: string
1687
+ nullable: true
1684
1688
  ParkingReservation:
1685
1689
  type: object
1686
1690
  title: Parking Reservation
1687
1691
  properties:
1688
- properties:
1689
- type: object
1690
- properties:
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
1692
+ reservation_type:
1693
+ type: string
1694
+ enum:
1695
+ - possible
1696
+ - not_possible
1697
+ - required
1698
+ nullable: true
1699
+ web_url:
1700
+ type: string
1701
+ nullable: true
1702
+ android_url:
1703
+ type: string
1704
+ nullable: true
1705
+ ios_url:
1706
+ type: string
1707
+ nullable: true
1708
+ discovery_url:
1709
+ type: string
1710
+ nullable: true
1710
1711
  ParkingOccupancyMeasurement:
1711
1712
  type: object
1712
1713
  title: Parking Occupancy
@@ -1751,15 +1752,15 @@ components:
1751
1752
  type: string
1752
1753
  nullable: true
1753
1754
  description: 'Formatted address of the parking location.'
1754
- country:
1755
+ address_country:
1755
1756
  type: string
1756
1757
  nullable: true
1757
1758
  description: 'Country of the parking location.'
1758
- locality:
1759
+ address_locality:
1759
1760
  type: string
1760
1761
  nullable: true
1761
1762
  description: 'Locality of the parking location.'
1762
- region:
1763
+ address_region:
1763
1764
  type: string
1764
1765
  nullable: true
1765
1766
  description: 'Region of the parking location.'
@@ -1771,10 +1772,6 @@ components:
1771
1772
  type: string
1772
1773
  nullable: true
1773
1774
  description: 'Street address of the parking location.'
1774
- area:
1775
- type: number
1776
- nullable: false
1777
- description: 'Area of the parking lot in square meters.'
1778
1775
  house_number:
1779
1776
  type: string
1780
1777
  nullable: true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/parkings",
3
- "version": "1.25.1",
3
+ "version": "1.25.2-dev.2433806764",
4
4
  "description": "Golemio Parkings Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",