@golemio/parkings 1.3.1 → 1.4.0-rc.782854163

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 (155) hide show
  1. package/db/example/00_clear_test_data.sql +1 -0
  2. package/db/example/03_tsk_measurements_for_legacy_endpoints.sql +35 -0
  3. package/db/example/99_refresh_views.sql +1 -0
  4. package/db/migrations/postgresql/20230127010432-tsk-view-for-legacy-parking-endpoints.js +53 -0
  5. package/db/migrations/postgresql/sqls/20230127010432-tsk-view-for-legacy-parking-endpoints-down.sql +2 -0
  6. package/db/migrations/postgresql/sqls/20230127010432-tsk-view-for-legacy-parking-endpoints-up.sql +40 -0
  7. package/dist/integration-engine/ParkingsWorker.d.ts +5 -13
  8. package/dist/integration-engine/ParkingsWorker.js +66 -189
  9. package/dist/integration-engine/ParkingsWorker.js.map +1 -1
  10. package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesTransformation.js +0 -6
  11. package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesTransformation.js.map +1 -1
  12. package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesWorker.js +12 -2
  13. package/dist/integration-engine/ZtpParkingZones/ZtpParkingZonesWorker.js.map +1 -1
  14. package/dist/integration-engine/helpers/GeodataHelper.d.ts +1 -3
  15. package/dist/integration-engine/helpers/GeodataHelper.js +1 -20
  16. package/dist/integration-engine/helpers/GeodataHelper.js.map +1 -1
  17. package/dist/integration-engine/helpers/LocationBuilderHelper.d.ts +1 -1
  18. package/dist/integration-engine/helpers/LocationBuilderHelper.js +4 -11
  19. package/dist/integration-engine/helpers/LocationBuilderHelper.js.map +1 -1
  20. package/dist/integration-engine/index.d.ts +4 -4
  21. package/dist/integration-engine/index.js +4 -4
  22. package/dist/integration-engine/index.js.map +1 -1
  23. package/dist/integration-engine/queueDefinitions.js +10 -39
  24. package/dist/integration-engine/queueDefinitions.js.map +1 -1
  25. package/dist/integration-engine/{models/ParkingTariffsModel.d.ts → repositories/ParkingTariffsRepository.d.ts} +1 -1
  26. package/dist/integration-engine/repositories/ParkingTariffsRepository.js +18 -0
  27. package/dist/integration-engine/repositories/ParkingTariffsRepository.js.map +1 -0
  28. package/dist/integration-engine/repositories/ParkingsLocationRepository.d.ts +6 -0
  29. package/dist/integration-engine/repositories/ParkingsLocationRepository.js +40 -0
  30. package/dist/integration-engine/repositories/ParkingsLocationRepository.js.map +1 -0
  31. package/dist/integration-engine/{models/ParkingsModel.d.ts → repositories/ParkingsRepository.d.ts} +1 -1
  32. package/dist/integration-engine/{models/ParkingsModel.js → repositories/ParkingsRepository.js} +8 -8
  33. package/dist/integration-engine/repositories/ParkingsRepository.js.map +1 -0
  34. package/dist/integration-engine/repositories/TskAverageOccupancyRepository.d.ts +8 -0
  35. package/dist/integration-engine/repositories/TskAverageOccupancyRepository.js +41 -0
  36. package/dist/integration-engine/repositories/TskAverageOccupancyRepository.js.map +1 -0
  37. package/dist/integration-engine/tasks/UpdateStaticTariffsTask.d.ts +3 -3
  38. package/dist/integration-engine/tasks/UpdateStaticTariffsTask.js.map +1 -1
  39. package/dist/integration-engine/{IPRParkingTransformation.d.ts → transformations/IPRParkingTransformation.d.ts} +0 -0
  40. package/dist/integration-engine/{IPRParkingTransformation.js → transformations/IPRParkingTransformation.js} +1 -1
  41. package/dist/integration-engine/transformations/IPRParkingTransformation.js.map +1 -0
  42. package/dist/integration-engine/{KoridParkingConfigTransformation.d.ts → transformations/KoridParkingConfigTransformation.d.ts} +1 -1
  43. package/dist/integration-engine/{KoridParkingConfigTransformation.js → transformations/KoridParkingConfigTransformation.js} +2 -5
  44. package/dist/integration-engine/transformations/KoridParkingConfigTransformation.js.map +1 -0
  45. package/dist/integration-engine/{KoridParkingDataTransformation.d.ts → transformations/KoridParkingDataTransformation.d.ts} +1 -1
  46. package/dist/integration-engine/{KoridParkingDataTransformation.js → transformations/KoridParkingDataTransformation.js} +2 -2
  47. package/dist/integration-engine/transformations/KoridParkingDataTransformation.js.map +1 -0
  48. package/dist/integration-engine/{ParkingLotsTransformation.d.ts → transformations/ParkingLotsTransformation.d.ts} +1 -1
  49. package/dist/integration-engine/{ParkingLotsTransformation.js → transformations/ParkingLotsTransformation.js} +1 -1
  50. package/dist/integration-engine/transformations/ParkingLotsTransformation.js.map +1 -0
  51. package/dist/integration-engine/transformations/StaticTariffsMatcher.d.ts +2 -2
  52. package/dist/integration-engine/transformations/StaticTariffsMatcher.js.map +1 -1
  53. package/dist/integration-engine/{TSKParkingTariffTransformation.d.ts → transformations/TSKParkingTariffTransformation.d.ts} +1 -1
  54. package/dist/integration-engine/{TSKParkingTariffTransformation.js → transformations/TSKParkingTariffTransformation.js} +1 -1
  55. package/dist/integration-engine/transformations/TSKParkingTariffTransformation.js.map +1 -0
  56. package/dist/integration-engine/{TSKParkingTransformation.d.ts → transformations/TSKParkingTransformation.d.ts} +1 -1
  57. package/dist/integration-engine/{TSKParkingTransformation.js → transformations/TSKParkingTransformation.js} +1 -1
  58. package/dist/integration-engine/transformations/TSKParkingTransformation.js.map +1 -0
  59. package/dist/integration-engine/workers/StaticTariffsWorker.js +4 -4
  60. package/dist/integration-engine/workers/StaticTariffsWorker.js.map +1 -1
  61. package/dist/integration-engine/workers/UpdateAddressWorker.d.ts +6 -0
  62. package/dist/integration-engine/workers/UpdateAddressWorker.js +19 -0
  63. package/dist/integration-engine/workers/UpdateAddressWorker.js.map +1 -0
  64. package/dist/integration-engine/workers/schemas/PointSchema.d.ts +5 -0
  65. package/dist/integration-engine/workers/schemas/PointSchema.js +27 -0
  66. package/dist/integration-engine/workers/schemas/PointSchema.js.map +1 -0
  67. package/dist/integration-engine/workers/schemas/UpdateAddressAndNameSchema.d.ts +7 -0
  68. package/dist/integration-engine/workers/schemas/UpdateAddressAndNameSchema.js +22 -0
  69. package/dist/integration-engine/workers/schemas/UpdateAddressAndNameSchema.js.map +1 -0
  70. package/dist/integration-engine/workers/schemas/UpdateAddressSchema.d.ts +9 -0
  71. package/dist/integration-engine/workers/schemas/UpdateAddressSchema.js +29 -0
  72. package/dist/integration-engine/workers/schemas/UpdateAddressSchema.js.map +1 -0
  73. package/dist/integration-engine/workers/tasks/UpdateAddressAndNameTask.d.ts +13 -0
  74. package/dist/integration-engine/workers/tasks/UpdateAddressAndNameTask.js +41 -0
  75. package/dist/integration-engine/workers/tasks/UpdateAddressAndNameTask.js.map +1 -0
  76. package/dist/integration-engine/workers/tasks/UpdateAddressTask.d.ts +12 -0
  77. package/dist/integration-engine/workers/tasks/UpdateAddressTask.js +40 -0
  78. package/dist/integration-engine/workers/tasks/UpdateAddressTask.js.map +1 -0
  79. package/dist/integration-engine/workers/tasks/UpdateLocationAddressTask.d.ts +12 -0
  80. package/dist/integration-engine/workers/tasks/UpdateLocationAddressTask.js +40 -0
  81. package/dist/integration-engine/workers/tasks/UpdateLocationAddressTask.js.map +1 -0
  82. package/dist/output-gateway/data-access/TskAverageOccupancyRepository.d.ts +6 -0
  83. package/dist/output-gateway/data-access/TskAverageOccupancyRepository.js +21 -0
  84. package/dist/output-gateway/data-access/TskAverageOccupancyRepository.js.map +1 -0
  85. package/dist/output-gateway/data-access/TskDistrictsRepository.d.ts +6 -0
  86. package/dist/output-gateway/data-access/TskDistrictsRepository.js +21 -0
  87. package/dist/output-gateway/data-access/TskDistrictsRepository.js.map +1 -0
  88. package/dist/output-gateway/data-access/TskParkingLotsRepository.d.ts +16 -0
  89. package/dist/output-gateway/data-access/TskParkingLotsRepository.js +152 -0
  90. package/dist/output-gateway/data-access/TskParkingLotsRepository.js.map +1 -0
  91. package/dist/output-gateway/data-access/helpers/TskFeatureMapper.d.ts +11 -0
  92. package/dist/output-gateway/data-access/helpers/TskFeatureMapper.js +42 -0
  93. package/dist/output-gateway/data-access/helpers/TskFeatureMapper.js.map +1 -0
  94. package/dist/output-gateway/data-access/interfaces/ITskParkingLotFeature.d.ts +33 -0
  95. package/dist/output-gateway/data-access/interfaces/ITskParkingLotFeature.js +3 -0
  96. package/dist/output-gateway/data-access/interfaces/ITskParkingLotFeature.js.map +1 -0
  97. package/dist/output-gateway/index.d.ts +1 -0
  98. package/dist/output-gateway/index.js +1 -0
  99. package/dist/output-gateway/index.js.map +1 -1
  100. package/dist/output-gateway/models/ParkingsLocationModel.js +2 -2
  101. package/dist/output-gateway/models/ParkingsLocationModel.js.map +1 -1
  102. package/dist/output-gateway/models/ParkingsMeasurementsModels.d.ts +6 -1
  103. package/dist/output-gateway/models/ParkingsMeasurementsModels.js +58 -3
  104. package/dist/output-gateway/models/ParkingsMeasurementsModels.js.map +1 -1
  105. package/dist/output-gateway/models/ParkingsModel.js +9 -9
  106. package/dist/output-gateway/models/ParkingsModel.js.map +1 -1
  107. package/dist/output-gateway/models/ParkingsTariffsModel.js +2 -2
  108. package/dist/output-gateway/models/ParkingsTariffsModel.js.map +1 -1
  109. package/dist/output-gateway/models/helpers/DetailAttributesHelper.js +7 -7
  110. package/dist/output-gateway/models/helpers/DetailAttributesHelper.js.map +1 -1
  111. package/dist/output-gateway/models/index.js +2 -2
  112. package/dist/output-gateway/models/index.js.map +1 -1
  113. package/dist/output-gateway/models/interfaces/TskMeasurementsInterfaces.d.ts +15 -0
  114. package/dist/output-gateway/models/interfaces/TskMeasurementsInterfaces.js +3 -0
  115. package/dist/output-gateway/models/interfaces/TskMeasurementsInterfaces.js.map +1 -0
  116. package/dist/output-gateway/routers/TskParkingLotsLegacyRouter.d.ts +12 -0
  117. package/dist/output-gateway/routers/TskParkingLotsLegacyRouter.js +49 -0
  118. package/dist/output-gateway/routers/TskParkingLotsLegacyRouter.js.map +1 -0
  119. package/dist/schema-definitions/Parkomats.d.ts +23 -23
  120. package/dist/schema-definitions/index.d.ts +129 -140
  121. package/dist/schema-definitions/index.js +29 -79
  122. package/dist/schema-definitions/index.js.map +1 -1
  123. package/dist/schema-definitions/models/TskAverageOccupancyModel.d.ts +8 -0
  124. package/dist/schema-definitions/models/TskAverageOccupancyModel.js +16 -0
  125. package/dist/schema-definitions/models/TskAverageOccupancyModel.js.map +1 -0
  126. package/dist/schema-definitions/models/TskDistrictsModel.d.ts +8 -0
  127. package/dist/schema-definitions/models/TskDistrictsModel.js +16 -0
  128. package/dist/schema-definitions/models/TskDistrictsModel.js.map +1 -0
  129. package/dist/schema-definitions/models/index.d.ts +2 -0
  130. package/dist/schema-definitions/models/index.js +19 -0
  131. package/dist/schema-definitions/models/index.js.map +1 -0
  132. package/dist/schema-definitions/models/interfaces/ITskAverageOccupancyModel.d.ts +7 -0
  133. package/dist/schema-definitions/models/interfaces/ITskAverageOccupancyModel.js +3 -0
  134. package/dist/schema-definitions/models/interfaces/ITskAverageOccupancyModel.js.map +1 -0
  135. package/dist/schema-definitions/models/interfaces/ITskDistrictsModel.d.ts +4 -0
  136. package/dist/schema-definitions/models/interfaces/ITskDistrictsModel.js +3 -0
  137. package/dist/schema-definitions/models/interfaces/ITskDistrictsModel.js.map +1 -0
  138. package/docs/implementation-documentation.md +28 -15
  139. package/package.json +6 -9
  140. package/db/example/mongo_data/dataplatform/parkings.bson +0 -0
  141. package/db/example/mongo_data/dataplatform/parkings.metadata.json +0 -1
  142. package/db/example/mongo_data/dataplatform/parkings_history.bson +0 -0
  143. package/db/example/mongo_data/dataplatform/parkings_history.metadata.json +0 -1
  144. package/dist/integration-engine/IPRParkingTransformation.js.map +0 -1
  145. package/dist/integration-engine/KoridParkingConfigTransformation.js.map +0 -1
  146. package/dist/integration-engine/KoridParkingDataTransformation.js.map +0 -1
  147. package/dist/integration-engine/ParkingLotsTransformation.js.map +0 -1
  148. package/dist/integration-engine/ParkingsTransformation.d.ts +0 -9
  149. package/dist/integration-engine/ParkingsTransformation.js +0 -105
  150. package/dist/integration-engine/ParkingsTransformation.js.map +0 -1
  151. package/dist/integration-engine/TSKParkingTariffTransformation.js.map +0 -1
  152. package/dist/integration-engine/TSKParkingTransformation.js.map +0 -1
  153. package/dist/integration-engine/models/ParkingTariffsModel.js +0 -18
  154. package/dist/integration-engine/models/ParkingTariffsModel.js.map +0 -1
  155. package/dist/integration-engine/models/ParkingsModel.js.map +0 -1
@@ -0,0 +1,27 @@
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.PointSchema = void 0;
13
+ const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
14
+ class PointSchema {
15
+ }
16
+ __decorate([
17
+ (0, class_validator_1.IsString)(),
18
+ __metadata("design:type", String)
19
+ ], PointSchema.prototype, "type", void 0);
20
+ __decorate([
21
+ (0, class_validator_1.ArrayMinSize)(2),
22
+ (0, class_validator_1.ArrayMaxSize)(2),
23
+ (0, class_validator_1.IsNumber)({}, { each: true }),
24
+ __metadata("design:type", Array)
25
+ ], PointSchema.prototype, "coordinates", void 0);
26
+ exports.PointSchema = PointSchema;
27
+ //# sourceMappingURL=PointSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PointSchema.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/schemas/PointSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+EAA2G;AAG3G,MAAa,WAAW;CAQvB;AANG;IADC,IAAA,0BAAQ,GAAE;;yCACI;AAKf;IAHC,IAAA,8BAAY,EAAC,CAAC,CAAC;IACf,IAAA,8BAAY,EAAC,CAAC,CAAC;IACf,IAAA,0BAAQ,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;gDACN;AAP3B,kCAQC"}
@@ -0,0 +1,7 @@
1
+ import { IUpdateAddressInput, UpdateAddressValidationSchema } from "./UpdateAddressSchema";
2
+ export interface IUpdateAddressAndNameInput extends IUpdateAddressInput {
3
+ name: string;
4
+ }
5
+ export declare class UpdateAddressAndNameValidationSchema extends UpdateAddressValidationSchema {
6
+ name: number;
7
+ }
@@ -0,0 +1,22 @@
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.UpdateAddressAndNameValidationSchema = void 0;
13
+ const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
14
+ const UpdateAddressSchema_1 = require("./UpdateAddressSchema");
15
+ class UpdateAddressAndNameValidationSchema extends UpdateAddressSchema_1.UpdateAddressValidationSchema {
16
+ }
17
+ __decorate([
18
+ (0, class_validator_1.IsString)(),
19
+ __metadata("design:type", Number)
20
+ ], UpdateAddressAndNameValidationSchema.prototype, "name", void 0);
21
+ exports.UpdateAddressAndNameValidationSchema = UpdateAddressAndNameValidationSchema;
22
+ //# sourceMappingURL=UpdateAddressAndNameSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateAddressAndNameSchema.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/schemas/UpdateAddressAndNameSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+EAAqE;AACrE,+DAA6G;AAM7G,MAAa,oCAAqC,SAAQ,mDAA6B;CAGtF;AADG;IADC,IAAA,0BAAQ,GAAE;;kEACG;AAFlB,oFAGC"}
@@ -0,0 +1,9 @@
1
+ import { Point } from "@golemio/core/dist/shared/geojson";
2
+ export interface IUpdateAddressInput {
3
+ id: string;
4
+ point: Point;
5
+ }
6
+ export declare class UpdateAddressValidationSchema implements IUpdateAddressInput {
7
+ id: string;
8
+ point: Point;
9
+ }
@@ -0,0 +1,29 @@
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.UpdateAddressValidationSchema = void 0;
13
+ const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
14
+ const class_transformer_1 = require("@golemio/core/dist/shared/class-transformer");
15
+ const PointSchema_1 = require("./PointSchema");
16
+ class UpdateAddressValidationSchema {
17
+ }
18
+ __decorate([
19
+ (0, class_validator_1.IsString)(),
20
+ __metadata("design:type", String)
21
+ ], UpdateAddressValidationSchema.prototype, "id", void 0);
22
+ __decorate([
23
+ (0, class_validator_1.IsObject)(),
24
+ (0, class_validator_1.ValidateNested)(),
25
+ (0, class_transformer_1.Type)(() => PointSchema_1.PointSchema),
26
+ __metadata("design:type", Object)
27
+ ], UpdateAddressValidationSchema.prototype, "point", void 0);
28
+ exports.UpdateAddressValidationSchema = UpdateAddressValidationSchema;
29
+ //# sourceMappingURL=UpdateAddressSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateAddressSchema.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/schemas/UpdateAddressSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+EAA+F;AAC/F,mFAAmE;AAEnE,+CAA8D;AAO9D,MAAa,6BAA6B;CAQzC;AANG;IADC,IAAA,0BAAQ,GAAE;;yDACC;AAKZ;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,yBAAW,CAAC;;4DACV;AAPlB,sEAQC"}
@@ -0,0 +1,13 @@
1
+ import { AbstractTask } from "@golemio/core/dist/integration-engine";
2
+ import { IUpdateAddressInput, UpdateAddressValidationSchema } from "../schemas/UpdateAddressSchema";
3
+ import { IUpdateAddressAndNameInput } from "../schemas/UpdateAddressAndNameSchema";
4
+ export declare class UpdateAddressAndNameTask extends AbstractTask<IUpdateAddressInput> {
5
+ readonly queueName = "updateAddressAndName";
6
+ readonly queueTtl: number;
7
+ readonly schema: typeof UpdateAddressValidationSchema;
8
+ private log;
9
+ private geocodeApi;
10
+ private repository;
11
+ constructor(queuePrefix: string);
12
+ protected execute(data: IUpdateAddressAndNameInput): Promise<void>;
13
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UpdateAddressAndNameTask = void 0;
13
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
14
+ const ioc_1 = require("@golemio/core/dist/integration-engine/ioc");
15
+ const ParkingsRepository_1 = require("../../repositories/ParkingsRepository");
16
+ const UpdateAddressSchema_1 = require("../schemas/UpdateAddressSchema");
17
+ class UpdateAddressAndNameTask extends integration_engine_1.AbstractTask {
18
+ constructor(queuePrefix) {
19
+ super(queuePrefix);
20
+ this.queueName = "updateAddressAndName";
21
+ this.queueTtl = 59 * 60 * 1000; // 59 minutes
22
+ this.schema = UpdateAddressSchema_1.UpdateAddressValidationSchema;
23
+ this.log = ioc_1.IntegrationEngineContainer.resolve(ioc_1.ContainerToken.Logger);
24
+ this.geocodeApi = ioc_1.IntegrationEngineContainer.resolve(ioc_1.ContainerToken.GeocodeApi);
25
+ this.repository = new ParkingsRepository_1.ParkingsRepository();
26
+ }
27
+ execute(data) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ try {
30
+ const address = yield this.geocodeApi.getAddressByLatLngFromPhoton(data.point.coordinates[1], data.point.coordinates[0]);
31
+ const name = `${data.name} ${address.street_address}, ${address.address_region}`;
32
+ yield this.repository.update({ address, name }, { where: { id: data.id }, fields: ["address", "name"] });
33
+ }
34
+ catch (err) {
35
+ this.log.error(`Error while updating address: ${err}`);
36
+ }
37
+ });
38
+ }
39
+ }
40
+ exports.UpdateAddressAndNameTask = UpdateAddressAndNameTask;
41
+ //# sourceMappingURL=UpdateAddressAndNameTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateAddressAndNameTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/UpdateAddressAndNameTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAAqE;AAErE,mEAAuG;AAEvG,8EAAyE;AACzE,wEAA6G;AAG7G,MAAa,wBAAyB,SAAQ,iCAAiC;IAQ3E,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QARP,cAAS,GAAG,sBAAsB,CAAC;QACnC,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QACxC,WAAM,GAAG,mDAA6B,CAAC;QAOnD,IAAI,CAAC,GAAG,GAAG,gCAA0B,CAAC,OAAO,CAAC,oBAAc,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,gCAA0B,CAAC,OAAO,CAAC,oBAAc,CAAC,UAAU,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,GAAG,IAAI,uCAAkB,EAAE,CAAC;IAC/C,CAAC;IACe,OAAO,CAAC,IAAgC;;YACpD,IAAI;gBACA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAC9D,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EACzB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAC5B,CAAC;gBACF,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC;gBACjF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;aAC5G;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;aAC1D;QACL,CAAC;KAAA;CACJ;AA1BD,4DA0BC"}
@@ -0,0 +1,12 @@
1
+ import { AbstractTask } from "@golemio/core/dist/integration-engine";
2
+ import { IUpdateAddressInput, UpdateAddressValidationSchema } from "../schemas/UpdateAddressSchema";
3
+ export declare class UpdateAddressTask extends AbstractTask<IUpdateAddressInput> {
4
+ readonly queueName = "updateAddress";
5
+ readonly queueTtl: number;
6
+ readonly schema: typeof UpdateAddressValidationSchema;
7
+ private log;
8
+ private geocodeApi;
9
+ private repository;
10
+ constructor(queuePrefix: string);
11
+ protected execute(data: IUpdateAddressInput): Promise<void>;
12
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UpdateAddressTask = void 0;
13
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
14
+ const ioc_1 = require("@golemio/core/dist/integration-engine/ioc");
15
+ const ParkingsRepository_1 = require("../../repositories/ParkingsRepository");
16
+ const UpdateAddressSchema_1 = require("../schemas/UpdateAddressSchema");
17
+ class UpdateAddressTask extends integration_engine_1.AbstractTask {
18
+ constructor(queuePrefix) {
19
+ super(queuePrefix);
20
+ this.queueName = "updateAddress";
21
+ this.queueTtl = 59 * 60 * 1000; // 59 minutes
22
+ this.schema = UpdateAddressSchema_1.UpdateAddressValidationSchema;
23
+ this.log = ioc_1.IntegrationEngineContainer.resolve(ioc_1.ContainerToken.Logger);
24
+ this.geocodeApi = ioc_1.IntegrationEngineContainer.resolve(ioc_1.ContainerToken.GeocodeApi);
25
+ this.repository = new ParkingsRepository_1.ParkingsRepository();
26
+ }
27
+ execute(data) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ try {
30
+ const address = yield this.geocodeApi.getAddressByLatLngFromPhoton(data.point.coordinates[1], data.point.coordinates[0]);
31
+ yield this.repository.update({ address }, { where: { id: data.id }, fields: ["address"] });
32
+ }
33
+ catch (err) {
34
+ this.log.error(`Error while updating address: ${err}`);
35
+ }
36
+ });
37
+ }
38
+ }
39
+ exports.UpdateAddressTask = UpdateAddressTask;
40
+ //# sourceMappingURL=UpdateAddressTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateAddressTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/UpdateAddressTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAAqE;AAErE,mEAAuG;AAEvG,8EAAyE;AACzE,wEAA6G;AAE7G,MAAa,iBAAkB,SAAQ,iCAAiC;IAQpE,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QARP,cAAS,GAAG,eAAe,CAAC;QAC5B,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QACxC,WAAM,GAAG,mDAA6B,CAAC;QAOnD,IAAI,CAAC,GAAG,GAAG,gCAA0B,CAAC,OAAO,CAAC,oBAAc,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,gCAA0B,CAAC,OAAO,CAAC,oBAAc,CAAC,UAAU,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,GAAG,IAAI,uCAAkB,EAAE,CAAC;IAC/C,CAAC;IACe,OAAO,CAAC,IAAyB;;YAC7C,IAAI;gBACA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAC9D,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EACzB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAC5B,CAAC;gBACF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;aAC9F;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;aAC1D;QACL,CAAC;KAAA;CACJ;AAzBD,8CAyBC"}
@@ -0,0 +1,12 @@
1
+ import { AbstractTask } from "@golemio/core/dist/integration-engine";
2
+ import { IUpdateAddressInput, UpdateAddressValidationSchema } from "../schemas/UpdateAddressSchema";
3
+ export declare class UpdateLocationAddressTask extends AbstractTask<IUpdateAddressInput> {
4
+ readonly queueName = "updateLocationAddress";
5
+ readonly queueTtl: number;
6
+ readonly schema: typeof UpdateAddressValidationSchema;
7
+ private log;
8
+ private geocodeApi;
9
+ private repository;
10
+ constructor(queuePrefix: string);
11
+ protected execute(data: IUpdateAddressInput): Promise<void>;
12
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UpdateLocationAddressTask = void 0;
13
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
14
+ const ioc_1 = require("@golemio/core/dist/integration-engine/ioc");
15
+ const UpdateAddressSchema_1 = require("../schemas/UpdateAddressSchema");
16
+ const ParkingsLocationRepository_1 = require("../../repositories/ParkingsLocationRepository");
17
+ class UpdateLocationAddressTask extends integration_engine_1.AbstractTask {
18
+ constructor(queuePrefix) {
19
+ super(queuePrefix);
20
+ this.queueName = "updateLocationAddress";
21
+ this.queueTtl = 59 * 60 * 1000; // 59 minutes
22
+ this.schema = UpdateAddressSchema_1.UpdateAddressValidationSchema;
23
+ this.log = ioc_1.IntegrationEngineContainer.resolve(ioc_1.ContainerToken.Logger);
24
+ this.geocodeApi = ioc_1.IntegrationEngineContainer.resolve(ioc_1.ContainerToken.GeocodeApi);
25
+ this.repository = new ParkingsLocationRepository_1.ParkingsLocationRepository();
26
+ }
27
+ execute(data) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ try {
30
+ const address = yield this.geocodeApi.getAddressByLatLngFromPhoton(data.point.coordinates[1], data.point.coordinates[0]);
31
+ yield this.repository.update({ address }, { where: { id: data.id }, fields: ["address"] });
32
+ }
33
+ catch (err) {
34
+ this.log.error(`Error while updating address: ${err}`);
35
+ }
36
+ });
37
+ }
38
+ }
39
+ exports.UpdateLocationAddressTask = UpdateLocationAddressTask;
40
+ //# sourceMappingURL=UpdateLocationAddressTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateLocationAddressTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/UpdateLocationAddressTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAAqE;AAErE,mEAAuG;AAGvG,wEAA6G;AAC7G,8FAAyF;AAEzF,MAAa,yBAA0B,SAAQ,iCAAiC;IAQ5E,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QARP,cAAS,GAAG,uBAAuB,CAAC;QACpC,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QACxC,WAAM,GAAG,mDAA6B,CAAC;QAOnD,IAAI,CAAC,GAAG,GAAG,gCAA0B,CAAC,OAAO,CAAC,oBAAc,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,gCAA0B,CAAC,OAAO,CAAC,oBAAc,CAAC,UAAU,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,GAAG,IAAI,uDAA0B,EAAE,CAAC;IACvD,CAAC;IACe,OAAO,CAAC,IAAyB;;YAC7C,IAAI;gBACA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAC9D,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EACzB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAC5B,CAAC;gBACF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;aAC9F;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;aAC1D;QACL,CAAC;KAAA;CACJ;AAzBD,8DAyBC"}
@@ -0,0 +1,6 @@
1
+ import { SequelizeModel } from "@golemio/core/dist/output-gateway";
2
+ export declare class TskAverageOccupancyRepository extends SequelizeModel {
3
+ constructor();
4
+ GetAll(): Promise<void>;
5
+ GetOne(_id: unknown): Promise<void>;
6
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TskAverageOccupancyRepository = void 0;
4
+ const _sch_1 = require("../../schema-definitions");
5
+ const models_1 = require("../../schema-definitions/models");
6
+ const output_gateway_1 = require("@golemio/core/dist/output-gateway");
7
+ class TskAverageOccupancyRepository extends output_gateway_1.SequelizeModel {
8
+ constructor() {
9
+ super("TskAverageOccupancyRepository", models_1.TskAverageOccupancyModel.tableName, models_1.TskAverageOccupancyModel.attributeModel, {
10
+ schema: _sch_1.Parkings.pgSchema,
11
+ });
12
+ }
13
+ GetAll() {
14
+ return Promise.resolve();
15
+ }
16
+ GetOne(_id) {
17
+ return Promise.resolve();
18
+ }
19
+ }
20
+ exports.TskAverageOccupancyRepository = TskAverageOccupancyRepository;
21
+ //# sourceMappingURL=TskAverageOccupancyRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TskAverageOccupancyRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/data-access/TskAverageOccupancyRepository.ts"],"names":[],"mappings":";;;AAAA,mDAAgC;AAChC,4DAAuD;AACvD,sEAAmE;AAEnE,MAAa,6BAA8B,SAAQ,+BAAc;IAC7D;QACI,KAAK,CAAC,+BAA+B,EAAE,iCAAwB,CAAC,SAAS,EAAE,iCAAwB,CAAC,cAAc,EAAE;YAChH,MAAM,EAAE,eAAQ,CAAC,QAAQ;SAC5B,CAAC,CAAC;IACP,CAAC;IAED,MAAM;QACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,GAAY;QACf,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ;AAdD,sEAcC"}
@@ -0,0 +1,6 @@
1
+ import { SequelizeModel } from "@golemio/core/dist/output-gateway";
2
+ export declare class TskDistrictsRepository extends SequelizeModel {
3
+ constructor();
4
+ GetAll(): Promise<void>;
5
+ GetOne(_id: unknown): Promise<void>;
6
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TskDistrictsRepository = void 0;
4
+ const _sch_1 = require("../../schema-definitions");
5
+ const models_1 = require("../../schema-definitions/models");
6
+ const output_gateway_1 = require("@golemio/core/dist/output-gateway");
7
+ class TskDistrictsRepository extends output_gateway_1.SequelizeModel {
8
+ constructor() {
9
+ super("TskDistrictsRepository", models_1.TskDistrictsModel.tableName, models_1.TskDistrictsModel.attributeModel, {
10
+ schema: _sch_1.Parkings.pgSchema,
11
+ });
12
+ }
13
+ GetAll() {
14
+ return Promise.resolve();
15
+ }
16
+ GetOne(_id) {
17
+ return Promise.resolve();
18
+ }
19
+ }
20
+ exports.TskDistrictsRepository = TskDistrictsRepository;
21
+ //# sourceMappingURL=TskDistrictsRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TskDistrictsRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/data-access/TskDistrictsRepository.ts"],"names":[],"mappings":";;;AAAA,mDAAgC;AAChC,4DAAgD;AAChD,sEAAmE;AAEnE,MAAa,sBAAuB,SAAQ,+BAAc;IACtD;QACI,KAAK,CAAC,wBAAwB,EAAE,0BAAiB,CAAC,SAAS,EAAE,0BAAiB,CAAC,cAAc,EAAE;YAC3F,MAAM,EAAE,eAAQ,CAAC,QAAQ;SAC5B,CAAC,CAAC;IACP,CAAC;IAED,MAAM;QACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,GAAY;QACf,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ;AAdD,wDAcC"}
@@ -0,0 +1,16 @@
1
+ import { IGeoJsonAllFilterParameters, IGeoJSONFeatureCollection, IPropertyResponseModel, SequelizeModel } from "@golemio/core/dist/output-gateway";
2
+ import { IGeoJsonModel } from "@golemio/core/dist/output-gateway/models/interfaces/IGeoJsonModel";
3
+ import { ITskParkingLotFeature } from "./interfaces/ITskParkingLotFeature";
4
+ export declare class TskParkingLotsRepository extends SequelizeModel implements IGeoJsonModel {
5
+ private readonly measurementsRepository;
6
+ private readonly tskDistrictsRepository;
7
+ private readonly tskAverageRepository;
8
+ constructor();
9
+ GetAll: (options?: IGeoJsonAllFilterParameters) => Promise<IGeoJSONFeatureCollection>;
10
+ GetOne: (id: string) => Promise<ITskParkingLotFeature | undefined>;
11
+ IsPrimaryIdNumber(_idKey: string): Promise<boolean>;
12
+ PrimaryIdentifierSelection(id: string): object;
13
+ GetProperties: () => Promise<IPropertyResponseModel[]>;
14
+ private get attributeOptions();
15
+ private get includeOptions();
16
+ }
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TskParkingLotsRepository = void 0;
16
+ const _sch_1 = require("../../schema-definitions");
17
+ const output_gateway_1 = require("@golemio/core/dist/output-gateway");
18
+ const sequelize_1 = __importDefault(require("@golemio/core/dist/shared/sequelize"));
19
+ const ParkingsMeasurementsModels_1 = require("../models/ParkingsMeasurementsModels");
20
+ const TskFeatureMapper_1 = require("./helpers/TskFeatureMapper");
21
+ const TskAverageOccupancyRepository_1 = require("./TskAverageOccupancyRepository");
22
+ const TskDistrictsRepository_1 = require("./TskDistrictsRepository");
23
+ class TskParkingLotsRepository extends output_gateway_1.SequelizeModel {
24
+ constructor() {
25
+ super(_sch_1.Parkings.name, _sch_1.Parkings.parkings.pgTableName, _sch_1.Parkings.parkings.outputSequelizeAttributes, {
26
+ schema: _sch_1.Parkings.pgSchema,
27
+ });
28
+ this.GetAll = (options = {}) => __awaiter(this, void 0, void 0, function* () {
29
+ let whereAttributes = {
30
+ source: { [sequelize_1.default.Op.in]: ["tsk", "TSK"] },
31
+ [sequelize_1.default.Op.and]: [sequelize_1.default.where(sequelize_1.default.fn("ST_GeometryType", sequelize_1.default.col("location")), "ST_Point")],
32
+ };
33
+ let order = [];
34
+ if (options.updatedSince) {
35
+ whereAttributes.updated_at = {
36
+ [sequelize_1.default.Op.gt]: options === null || options === void 0 ? void 0 : options.updatedSince,
37
+ };
38
+ }
39
+ if (options.lat && options.lng) {
40
+ if (options.range) {
41
+ whereAttributes.range = sequelize_1.default.where(sequelize_1.default.fn("ST_DWithin", sequelize_1.default.col("location"), sequelize_1.default.cast(sequelize_1.default.fn("ST_SetSRID", sequelize_1.default.fn("ST_MakePoint", options.lng, options.lat), 4326), "geography"), options.range, true), "true");
42
+ }
43
+ order.push(sequelize_1.default.fn("ST_Distance", sequelize_1.default.col("location"), sequelize_1.default.cast(sequelize_1.default.fn("ST_SetSRID", sequelize_1.default.fn("ST_MakePoint", options.lng, options.lat), 4326), "geography")));
44
+ }
45
+ const result = yield this.sequelizeModel.findAll({
46
+ attributes: this.attributeOptions,
47
+ include: [
48
+ ...this.includeOptions,
49
+ {
50
+ as: "tsk_districts",
51
+ model: this.tskDistrictsRepository.sequelizeModel,
52
+ attributes: [],
53
+ where: options.districts && options.districts.length > 0
54
+ ? {
55
+ district: options.districts,
56
+ }
57
+ : undefined,
58
+ },
59
+ ],
60
+ where: whereAttributes,
61
+ limit: options === null || options === void 0 ? void 0 : options.limit,
62
+ offset: Number.isInteger(options === null || options === void 0 ? void 0 : options.offset) ? options === null || options === void 0 ? void 0 : options.offset : undefined,
63
+ order,
64
+ });
65
+ return (0, output_gateway_1.buildGeojsonFeatureCollection)(result.map((record) => {
66
+ return TskFeatureMapper_1.TskFeatureMapper.formatOutput(record);
67
+ }));
68
+ });
69
+ this.GetOne = (id) => __awaiter(this, void 0, void 0, function* () {
70
+ const result = yield this.sequelizeModel.findOne({
71
+ attributes: this.attributeOptions,
72
+ where: {
73
+ source_id: id,
74
+ source: {
75
+ [sequelize_1.default.Op.in]: ["tsk", "TSK"],
76
+ },
77
+ [sequelize_1.default.Op.and]: [sequelize_1.default.where(sequelize_1.default.fn("ST_GeometryType", sequelize_1.default.col("location")), "ST_Point")],
78
+ },
79
+ include: [
80
+ ...this.includeOptions,
81
+ {
82
+ as: "tsk_districts",
83
+ model: this.tskDistrictsRepository.sequelizeModel,
84
+ attributes: [],
85
+ },
86
+ ],
87
+ });
88
+ return result && TskFeatureMapper_1.TskFeatureMapper.formatOutput(result);
89
+ });
90
+ this.GetProperties = () => __awaiter(this, void 0, void 0, function* () {
91
+ return [];
92
+ });
93
+ this.measurementsRepository = new ParkingsMeasurementsModels_1.ParkingsMeasurementsModels(_sch_1.Parkings.measurementsActual);
94
+ this.tskDistrictsRepository = new TskDistrictsRepository_1.TskDistrictsRepository();
95
+ this.tskAverageRepository = new TskAverageOccupancyRepository_1.TskAverageOccupancyRepository();
96
+ this.sequelizeModel.hasOne(this.measurementsRepository.sequelizeModel, {
97
+ as: "measurements",
98
+ foreignKey: "source_id",
99
+ sourceKey: "source_id",
100
+ });
101
+ this.sequelizeModel.hasOne(this.tskDistrictsRepository.sequelizeModel, {
102
+ as: "tsk_districts",
103
+ foreignKey: "source_id",
104
+ sourceKey: "source_id",
105
+ });
106
+ this.sequelizeModel.hasOne(this.tskAverageRepository.sequelizeModel, {
107
+ as: "tsk_average_occupancy",
108
+ foreignKey: "source_id",
109
+ sourceKey: "source_id",
110
+ });
111
+ }
112
+ IsPrimaryIdNumber(_idKey) {
113
+ return Promise.resolve(false);
114
+ }
115
+ PrimaryIdentifierSelection(id) {
116
+ return { id };
117
+ }
118
+ get attributeOptions() {
119
+ return [
120
+ "location",
121
+ "parking_type",
122
+ [sequelize_1.default.col("parkings.source_id"), "id"],
123
+ "name",
124
+ [sequelize_1.default.col("measurements.available_spot_number"), "num_of_free_places"],
125
+ [sequelize_1.default.col("measurements.occupied_spot_number"), "num_of_taken_places"],
126
+ "updated_at",
127
+ [sequelize_1.default.col("parkings.total_spot_number"), "total_num_of_places"],
128
+ "address",
129
+ [sequelize_1.default.col("tsk_average_occupancy.average_occupancy"), "average_occupancy"],
130
+ [sequelize_1.default.col("tsk_districts.district"), "district"],
131
+ [sequelize_1.default.col("parkings.date_modified"), "last_updated"],
132
+ [sequelize_1.default.col("web_app_payment_url"), "payment_link"],
133
+ ];
134
+ }
135
+ get includeOptions() {
136
+ return [
137
+ {
138
+ as: "measurements",
139
+ model: this.measurementsRepository.sequelizeModel,
140
+ attributes: [],
141
+ },
142
+ {
143
+ as: "tsk_average_occupancy",
144
+ model: this.tskAverageRepository.sequelizeModel,
145
+ attributes: [],
146
+ required: true,
147
+ },
148
+ ];
149
+ }
150
+ }
151
+ exports.TskParkingLotsRepository = TskParkingLotsRepository;
152
+ //# sourceMappingURL=TskParkingLotsRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TskParkingLotsRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/data-access/TskParkingLotsRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Model } from "@golemio/core/dist/shared/sequelize";
2
+ import { ITskParkingLotFeature } from "../interfaces/ITskParkingLotFeature";
3
+ export declare enum ParkingTypeEnum {
4
+ ParkAndRide = "park_and_ride",
5
+ ParkPaidPrivate = "park_paid_private"
6
+ }
7
+ export declare class TskFeatureMapper {
8
+ static formatOutput(record: Model): ITskParkingLotFeature | undefined;
9
+ private static createParkingTypeObject;
10
+ private static getPaymentAttributes;
11
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.TskFeatureMapper = exports.ParkingTypeEnum = void 0;
15
+ const output_gateway_1 = require("@golemio/core/dist/output-gateway");
16
+ var ParkingTypeEnum;
17
+ (function (ParkingTypeEnum) {
18
+ ParkingTypeEnum["ParkAndRide"] = "park_and_ride";
19
+ ParkingTypeEnum["ParkPaidPrivate"] = "park_paid_private";
20
+ })(ParkingTypeEnum = exports.ParkingTypeEnum || (exports.ParkingTypeEnum = {}));
21
+ class TskFeatureMapper {
22
+ static formatOutput(record) {
23
+ const _a = record.get({ plain: true }), { parking_type, id, last_updated, payment_link } = _a, rest = __rest(_a, ["parking_type", "id", "last_updated", "payment_link"]);
24
+ return (0, output_gateway_1.buildGeojsonFeatureType)("location", Object.assign(Object.assign({ parking_type: this.createParkingTypeObject(parking_type), id: Number.isNaN(parseInt(id)) ? id : parseInt(id), last_updated: last_updated ? parseInt(last_updated) : null }, rest), this.getPaymentAttributes(payment_link)));
25
+ }
26
+ static createParkingTypeObject(parkingType) {
27
+ return parkingType === ParkingTypeEnum.ParkAndRide
28
+ ? { description: "P+R parkoviště", id: 1 }
29
+ : { description: "placené parkoviště", id: 2 };
30
+ }
31
+ static getPaymentAttributes(paymentLink) {
32
+ if (!paymentLink) {
33
+ return {};
34
+ }
35
+ return {
36
+ payment_link: paymentLink,
37
+ payment_shortname: paymentLink.split("?shortname=").pop(),
38
+ };
39
+ }
40
+ }
41
+ exports.TskFeatureMapper = TskFeatureMapper;
42
+ //# sourceMappingURL=TskFeatureMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TskFeatureMapper.js","sourceRoot":"","sources":["../../../../src/output-gateway/data-access/helpers/TskFeatureMapper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sEAA4E;AAI5E,IAAY,eAGX;AAHD,WAAY,eAAe;IACvB,gDAA6B,CAAA;IAC7B,wDAAqC,CAAA;AACzC,CAAC,EAHW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAG1B;AAED,MAAa,gBAAgB;IAClB,MAAM,CAAC,YAAY,CAAC,MAAa;QACpC,MAAM,KAA4D,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAvF,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,YAAY,OAAyC,EAApC,IAAI,cAAvD,sDAAyD,CAA8B,CAAC;QAC9F,OAAO,IAAA,wCAAuB,EAAC,UAAU,gCACrC,YAAY,EAAE,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,EACxD,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAClD,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,IACvD,IAAI,GACJ,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,EACnB,CAAC;IAChC,CAAC;IAEO,MAAM,CAAC,uBAAuB,CAAC,WAA4B;QAI/D,OAAO,WAAW,KAAK,eAAe,CAAC,WAAW;YAC9C,CAAC,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,EAAE;YAC1C,CAAC,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,WAA0B;QAI1D,IAAI,CAAC,WAAW,EAAE;YACd,OAAO,EAAE,CAAC;SACb;QAED,OAAO;YACH,YAAY,EAAE,WAAW;YACzB,iBAAiB,EAAE,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE;SAC5D,CAAC;IACN,CAAC;CACJ;AAlCD,4CAkCC"}