@golemio/parkings 1.7.11-dev.1185129708 → 1.7.11-dev.1187905601

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 (87) hide show
  1. package/db/example/00_clear_test_data.sql +1 -0
  2. package/db/example/04_tsk_parking_v2.sql +6 -0
  3. package/db/example/98_calculate_occupancy.sql +1 -0
  4. package/db/migrations/postgresql/20240205151926-average-occupancy.js +53 -0
  5. package/db/migrations/postgresql/sqls/20240205151926-average-occupancy-down.sql +3 -0
  6. package/db/migrations/postgresql/sqls/20240205151926-average-occupancy-up.sql +66 -0
  7. package/dist/integration-engine/ioc/Di.js +5 -1
  8. package/dist/integration-engine/ioc/Di.js.map +1 -1
  9. package/dist/integration-engine/ioc/ModuleContainerToken.d.ts +2 -0
  10. package/dist/integration-engine/ioc/ModuleContainerToken.js +4 -0
  11. package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -1
  12. package/dist/integration-engine/repositories/AverageOccupancyRepository.d.ts +9 -0
  13. package/dist/integration-engine/repositories/AverageOccupancyRepository.js +41 -0
  14. package/dist/integration-engine/repositories/AverageOccupancyRepository.js.map +1 -0
  15. package/dist/integration-engine/workers/NewParkingsWorker.js +1 -0
  16. package/dist/integration-engine/workers/NewParkingsWorker.js.map +1 -1
  17. package/dist/integration-engine/workers/schemas/Smart4CityTaskTypeSchema.js.map +1 -1
  18. package/dist/integration-engine/workers/tasks/CalculateAverageOccupancyTask.d.ts +9 -0
  19. package/dist/integration-engine/workers/tasks/CalculateAverageOccupancyTask.js +57 -0
  20. package/dist/integration-engine/workers/tasks/CalculateAverageOccupancyTask.js.map +1 -0
  21. package/dist/output-gateway/controllers/v3/V3ParkingController.d.ts +5 -1
  22. package/dist/output-gateway/controllers/v3/V3ParkingController.js +19 -3
  23. package/dist/output-gateway/controllers/v3/V3ParkingController.js.map +1 -1
  24. package/dist/output-gateway/controllers/v3/V3ParkingMeasurementsController.d.ts +10 -0
  25. package/dist/output-gateway/controllers/v3/V3ParkingMeasurementsController.js +56 -0
  26. package/dist/output-gateway/controllers/v3/V3ParkingMeasurementsController.js.map +1 -0
  27. package/dist/output-gateway/data-access/ParkingAverageOccupancyRepository.d.ts +12 -0
  28. package/dist/output-gateway/data-access/ParkingAverageOccupancyRepository.js +87 -0
  29. package/dist/output-gateway/data-access/ParkingAverageOccupancyRepository.js.map +1 -0
  30. package/dist/output-gateway/data-access/ParkingLatestMeasurementRepository.d.ts +8 -0
  31. package/dist/output-gateway/data-access/ParkingLatestMeasurementRepository.js +72 -0
  32. package/dist/output-gateway/data-access/ParkingLatestMeasurementRepository.js.map +1 -0
  33. package/dist/output-gateway/data-access/ParkingMeasurementRepository.d.ts +6 -0
  34. package/dist/output-gateway/data-access/ParkingMeasurementRepository.js +33 -0
  35. package/dist/output-gateway/data-access/ParkingMeasurementRepository.js.map +1 -0
  36. package/dist/output-gateway/data-access/ParkingRepository.d.ts +6 -4
  37. package/dist/output-gateway/data-access/ParkingRepository.js +44 -3
  38. package/dist/output-gateway/data-access/ParkingRepository.js.map +1 -1
  39. package/dist/output-gateway/data-access/interfaces/IParkingMeasurementsDto.d.ts +4 -0
  40. package/dist/output-gateway/data-access/interfaces/IParkingMeasurementsDto.js +3 -0
  41. package/dist/output-gateway/data-access/interfaces/IParkingMeasurementsDto.js.map +1 -0
  42. package/dist/output-gateway/helpers/params/IParkingMeasurementsParams.d.ts +5 -0
  43. package/dist/output-gateway/helpers/params/IParkingMeasurementsParams.js +3 -0
  44. package/dist/output-gateway/helpers/params/IParkingMeasurementsParams.js.map +1 -0
  45. package/dist/output-gateway/index.js +3 -4
  46. package/dist/output-gateway/index.js.map +1 -1
  47. package/dist/output-gateway/ioc/Di.js +6 -0
  48. package/dist/output-gateway/ioc/Di.js.map +1 -1
  49. package/dist/output-gateway/ioc/ModuleContainerToken.d.ts +3 -0
  50. package/dist/output-gateway/ioc/ModuleContainerToken.js +3 -0
  51. package/dist/output-gateway/ioc/ModuleContainerToken.js.map +1 -1
  52. package/dist/output-gateway/routers/index.d.ts +1 -0
  53. package/dist/output-gateway/routers/index.js +1 -0
  54. package/dist/output-gateway/routers/index.js.map +1 -1
  55. package/dist/output-gateway/routers/v3/V3ParkingMeasurementsRouter.d.ts +3 -0
  56. package/dist/output-gateway/routers/v3/V3ParkingMeasurementsRouter.js +45 -0
  57. package/dist/output-gateway/routers/v3/V3ParkingMeasurementsRouter.js.map +1 -0
  58. package/dist/output-gateway/routers/v3/V3ParkingRouter.js +1 -0
  59. package/dist/output-gateway/routers/v3/V3ParkingRouter.js.map +1 -1
  60. package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingMeasurementsDto.d.ts +15 -0
  61. package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingMeasurementsDto.js +3 -0
  62. package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingMeasurementsDto.js.map +1 -0
  63. package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.d.ts +9 -4
  64. package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.js +13 -0
  65. package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.js.map +1 -1
  66. package/dist/output-gateway/transformations/v3/ParkingMeasurementDtoTransformation.d.ts +7 -0
  67. package/dist/output-gateway/transformations/v3/ParkingMeasurementDtoTransformation.js +27 -0
  68. package/dist/output-gateway/transformations/v3/ParkingMeasurementDtoTransformation.js.map +1 -0
  69. package/dist/schema-definitions/index.d.ts +5 -0
  70. package/dist/schema-definitions/index.js +5 -0
  71. package/dist/schema-definitions/index.js.map +1 -1
  72. package/dist/schema-definitions/models/ParkingAverageOccupancyModel.d.ts +15 -0
  73. package/dist/schema-definitions/models/ParkingAverageOccupancyModel.js +32 -0
  74. package/dist/schema-definitions/models/ParkingAverageOccupancyModel.js.map +1 -0
  75. package/dist/schema-definitions/models/ParkingMeasurementsModel.d.ts +15 -0
  76. package/dist/schema-definitions/models/ParkingMeasurementsModel.js +26 -0
  77. package/dist/schema-definitions/models/ParkingMeasurementsModel.js.map +1 -0
  78. package/dist/schema-definitions/models/interfaces/IParking.d.ts +2 -1
  79. package/dist/schema-definitions/models/interfaces/IParkingAverageOccupancy.d.ts +10 -0
  80. package/dist/schema-definitions/models/interfaces/IParkingAverageOccupancy.js +3 -0
  81. package/dist/schema-definitions/models/interfaces/IParkingAverageOccupancy.js.map +1 -0
  82. package/dist/schema-definitions/models/interfaces/IParkingMeasurements.d.ts +10 -0
  83. package/dist/schema-definitions/models/interfaces/IParkingMeasurements.js +3 -0
  84. package/dist/schema-definitions/models/interfaces/IParkingMeasurements.js.map +1 -0
  85. package/docs/implementation-documentation.md +30 -3
  86. package/docs/openapi-output.yaml +177 -11
  87. package/package.json +1 -1
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ var __importDefault = (this && this.__importDefault) || function (mod) {
24
+ return (mod && mod.__esModule) ? mod : { "default": mod };
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.ParkingAverageOccupancyRepository = void 0;
28
+ const CachedParkingSourcesRepository_1 = require("../../helpers/data-access/CachedParkingSourcesRepository");
29
+ const ModuleContainerToken_1 = require("../ioc/ModuleContainerToken");
30
+ const _sch_1 = require("../../schema-definitions");
31
+ const ParkingAverageOccupancyModel_1 = require("../../schema-definitions/models/ParkingAverageOccupancyModel");
32
+ const SequelizeModel_1 = require("@golemio/core/dist/output-gateway/models/SequelizeModel");
33
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
34
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
35
+ const sequelize_1 = __importDefault(require("@golemio/core/dist/shared/sequelize"));
36
+ let ParkingAverageOccupancyRepository = exports.ParkingAverageOccupancyRepository = class ParkingAverageOccupancyRepository extends SequelizeModel_1.SequelizeModel {
37
+ constructor(cachedParkingSourcesRepository) {
38
+ super("ParkingAverageOccupancyRepository", ParkingAverageOccupancyModel_1.ParkingAverageOccupancyModel.tableName, ParkingAverageOccupancyModel_1.ParkingAverageOccupancyModel.attributeModel, {
39
+ schema: _sch_1.Parkings.pgSchema,
40
+ });
41
+ this.cachedParkingSourcesRepository = cachedParkingSourcesRepository;
42
+ }
43
+ GetOccupancy(id, sources) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ try {
46
+ const where = {
47
+ parking_id: id,
48
+ source: { [sequelize_1.default.Op.in]: sources },
49
+ };
50
+ const results = yield this.sequelizeModel.findAll({
51
+ attributes: [
52
+ ...ParkingAverageOccupancyModel_1.ParkingAverageOccupancyModel.rawAttributesModel,
53
+ [sequelize_1.default.fn("ROUND", sequelize_1.default.col("average_occupancy")), "average_occupancy"],
54
+ [sequelize_1.default.fn("LPAD", sequelize_1.default.literal("hour::text"), 2, "0"), "hour"],
55
+ ],
56
+ where,
57
+ order: [
58
+ ["source", "ASC"],
59
+ ["source_id", "ASC"],
60
+ ["day_of_week", "ASC"],
61
+ ["hour", "ASC"],
62
+ ],
63
+ raw: true,
64
+ });
65
+ if (results.length === 0) {
66
+ return null;
67
+ }
68
+ return results;
69
+ }
70
+ catch (err) {
71
+ throw new golemio_errors_1.GeneralError("Database error: GetOne", this.name, err, 500);
72
+ }
73
+ });
74
+ }
75
+ GetAll() {
76
+ throw new Error("Not implemented");
77
+ }
78
+ GetOne() {
79
+ throw new Error("Not implemented");
80
+ }
81
+ };
82
+ exports.ParkingAverageOccupancyRepository = ParkingAverageOccupancyRepository = __decorate([
83
+ (0, tsyringe_1.injectable)(),
84
+ __param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.CachedParkingSourcesRepository)),
85
+ __metadata("design:paramtypes", [CachedParkingSourcesRepository_1.CachedParkingSourcesRepository])
86
+ ], ParkingAverageOccupancyRepository);
87
+ //# sourceMappingURL=ParkingAverageOccupancyRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParkingAverageOccupancyRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/data-access/ParkingAverageOccupancyRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6GAAqG;AACrG,sEAAoE;AACpE,mDAAgC;AAGhC,+GAAwF;AACxF,4FAAyF;AACzF,iEAAwE;AACxE,6EAAwE;AACxE,oFAA4D;AAGrD,IAAM,iCAAiC,+CAAvC,MAAM,iCAAkC,SAAQ,+BAAc;IACjE,YAEY,8BAA8D;QAEtE,KAAK,CACD,mCAAmC,EACnC,2DAA4B,CAAC,SAAS,EACtC,2DAA4B,CAAC,cAAc,EAC3C;YACI,MAAM,EAAE,eAAQ,CAAC,QAAQ;SAC5B,CACJ,CAAC;QATM,mCAA8B,GAA9B,8BAA8B,CAAgC;IAU1E,CAAC;IAEY,YAAY,CACrB,EAAU,EACV,OAAiB;;YAEjB,IAAI;gBACA,MAAM,KAAK,GAAiD;oBACxD,UAAU,EAAE,EAAE;oBACd,MAAM,EAAE,EAAE,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;iBACzC,CAAC;gBAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC9C,UAAU,EAAE;wBACR,GAAG,2DAA4B,CAAC,kBAAkB;wBAClD,CAAC,mBAAS,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,EAAE,mBAAmB,CAAC;wBAChF,CAAC,mBAAS,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAS,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC;qBAC1E;oBACD,KAAK;oBACL,KAAK,EAAE;wBACH,CAAC,QAAQ,EAAE,KAAK,CAAC;wBACjB,CAAC,WAAW,EAAE,KAAK,CAAC;wBACpB,CAAC,aAAa,EAAE,KAAK,CAAC;wBACtB,CAAC,MAAM,EAAE,KAAK,CAAC;qBAClB;oBACD,GAAG,EAAE,IAAI;iBACZ,CAAC,CAAC;gBAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;oBACtB,OAAO,IAAI,CAAC;iBACf;gBAED,OAAO,OAAO,CAAC;aAClB;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,wBAAwB,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aACzE;QACL,CAAC;KAAA;IAEM,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;CACJ,CAAA;4CA1DY,iCAAiC;IAD7C,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,8BAA8B,CAAC,CAAA;qCACpB,+DAA8B;GAHjE,iCAAiC,CA0D7C"}
@@ -0,0 +1,8 @@
1
+ import { IParkingLatestMeasurements } from "./interfaces/IParkingMeasurementsDto";
2
+ import { IParkingMeasurementsParams } from "../helpers/params/IParkingMeasurementsParams";
3
+ import { SequelizeModel } from "@golemio/core/dist/output-gateway/models/SequelizeModel";
4
+ export declare class ParkingLatestMeasurementRepository extends SequelizeModel {
5
+ constructor();
6
+ GetAll(params: IParkingMeasurementsParams): Promise<IParkingLatestMeasurements[]>;
7
+ GetOne(): never;
8
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21
+ return (mod && mod.__esModule) ? mod : { "default": mod };
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.ParkingLatestMeasurementRepository = void 0;
25
+ const _sch_1 = require("../../schema-definitions");
26
+ const SequelizeModel_1 = require("@golemio/core/dist/output-gateway/models/SequelizeModel");
27
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
28
+ const sequelize_1 = __importDefault(require("@golemio/core/dist/shared/sequelize"));
29
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
30
+ let ParkingLatestMeasurementRepository = exports.ParkingLatestMeasurementRepository = class ParkingLatestMeasurementRepository extends SequelizeModel_1.SequelizeModel {
31
+ constructor() {
32
+ super("ParkingLatestMeasurementRepository", _sch_1.Parkings.latestMeasurements.pgTableName, _sch_1.Parkings.latestMeasurements.outputSequelizeAttributes, {
33
+ schema: _sch_1.Parkings.pgSchema,
34
+ });
35
+ }
36
+ GetAll(params) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ try {
39
+ let where = {
40
+ source: { [sequelize_1.default.Op.in]: params.primarySource },
41
+ };
42
+ if (params.primarySourceId) {
43
+ where.source_id = { [sequelize_1.default.Op.in]: params.primarySourceId };
44
+ }
45
+ return yield this.sequelizeModel.findAll({
46
+ attributes: {
47
+ include: ["updated_at"],
48
+ },
49
+ where,
50
+ order: [
51
+ ["source", "ASC"],
52
+ ["source_id", "ASC"],
53
+ ["date_modified", "DESC"],
54
+ ],
55
+ limit: params.limit,
56
+ offset: params.offset,
57
+ });
58
+ }
59
+ catch (err) {
60
+ throw new golemio_errors_1.GeneralError("Database error: GetAll", this.name, err, 500);
61
+ }
62
+ });
63
+ }
64
+ GetOne() {
65
+ throw new Error("Not implemented");
66
+ }
67
+ };
68
+ exports.ParkingLatestMeasurementRepository = ParkingLatestMeasurementRepository = __decorate([
69
+ (0, tsyringe_1.injectable)(),
70
+ __metadata("design:paramtypes", [])
71
+ ], ParkingLatestMeasurementRepository);
72
+ //# sourceMappingURL=ParkingLatestMeasurementRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParkingLatestMeasurementRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/data-access/ParkingLatestMeasurementRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAEA,mDAAgC;AAChC,4FAAyF;AACzF,6EAAwE;AACxE,oFAA4D;AAC5D,iEAAgE;AAGzD,IAAM,kCAAkC,gDAAxC,MAAM,kCAAmC,SAAQ,+BAAc;IAClE;QACI,KAAK,CACD,oCAAoC,EACpC,eAAQ,CAAC,kBAAkB,CAAC,WAAW,EACvC,eAAQ,CAAC,kBAAkB,CAAC,yBAAyB,EACrD;YACI,MAAM,EAAE,eAAQ,CAAC,QAAQ;SAC5B,CACJ,CAAC;IACN,CAAC;IAEY,MAAM,CAAC,MAAkC;;YAClD,IAAI;gBACA,IAAI,KAAK,GAAuD;oBAC5D,MAAM,EAAE,EAAE,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,aAAa,EAAE;iBACtD,CAAC;gBAEF,IAAI,MAAM,CAAC,eAAe,EAAE;oBACxB,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;iBACnE;gBAED,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBACrC,UAAU,EAAE;wBACR,OAAO,EAAE,CAAC,YAAY,CAAC;qBAC1B;oBACD,KAAK;oBACL,KAAK,EAAE;wBACH,CAAC,QAAQ,EAAE,KAAK,CAAC;wBACjB,CAAC,WAAW,EAAE,KAAK,CAAC;wBACpB,CAAC,eAAe,EAAE,MAAM,CAAC;qBAC5B;oBACD,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;iBACxB,CAAC,CAAC;aACN;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,wBAAwB,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aACzE;QACL,CAAC;KAAA;IAEM,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;CACJ,CAAA;6CA3CY,kCAAkC;IAD9C,IAAA,qBAAU,GAAE;;GACA,kCAAkC,CA2C9C"}
@@ -0,0 +1,6 @@
1
+ import { SequelizeModel } from "@golemio/core/dist/output-gateway/models/SequelizeModel";
2
+ export declare class ParkingMeasurementRepository extends SequelizeModel {
3
+ constructor();
4
+ GetAll(): never;
5
+ GetOne(): never;
6
+ }
@@ -0,0 +1,33 @@
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.ParkingMeasurementRepository = void 0;
13
+ const _sch_1 = require("../../schema-definitions");
14
+ const SequelizeModel_1 = require("@golemio/core/dist/output-gateway/models/SequelizeModel");
15
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
16
+ let ParkingMeasurementRepository = exports.ParkingMeasurementRepository = class ParkingMeasurementRepository extends SequelizeModel_1.SequelizeModel {
17
+ constructor() {
18
+ super("ParkingMeasurementRepository", _sch_1.Parkings.measurements.pgTableName, _sch_1.Parkings.measurements.outputSequelizeAttributes, {
19
+ schema: _sch_1.Parkings.pgSchema,
20
+ });
21
+ }
22
+ GetAll() {
23
+ throw new Error("Not implemented");
24
+ }
25
+ GetOne() {
26
+ throw new Error("Not implemented");
27
+ }
28
+ };
29
+ exports.ParkingMeasurementRepository = ParkingMeasurementRepository = __decorate([
30
+ (0, tsyringe_1.injectable)(),
31
+ __metadata("design:paramtypes", [])
32
+ ], ParkingMeasurementRepository);
33
+ //# sourceMappingURL=ParkingMeasurementRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParkingMeasurementRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/data-access/ParkingMeasurementRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAgC;AAChC,4FAAyF;AACzF,iEAAgE;AAGzD,IAAM,4BAA4B,0CAAlC,MAAM,4BAA6B,SAAQ,+BAAc;IAC5D;QACI,KAAK,CACD,8BAA8B,EAC9B,eAAQ,CAAC,YAAY,CAAC,WAAW,EACjC,eAAQ,CAAC,YAAY,CAAC,yBAAyB,EAC/C;YACI,MAAM,EAAE,eAAQ,CAAC,QAAQ;SAC5B,CACJ,CAAC;IACN,CAAC;IAEM,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;CACJ,CAAA;uCAnBY,4BAA4B;IADxC,IAAA,qBAAU,GAAE;;GACA,4BAA4B,CAmBxC"}
@@ -1,14 +1,16 @@
1
1
  import { CachedParkingSourcesRepository } from "../../helpers/data-access/CachedParkingSourcesRepository";
2
+ import { ParkingAverageOccupancyRepository } from "./ParkingAverageOccupancyRepository";
2
3
  import { IParkingParams } from "../helpers/params/IParkingParams";
3
4
  import { ParkingsLocationModel } from "../models/ParkingsLocationModel";
4
- import { IParkingWithLocation } from "../../schema-definitions/models/interfaces/IParking";
5
+ import { IParkingWithLocationAndOccupancyInfo } from "../../schema-definitions/models/interfaces/IParking";
5
6
  import { SequelizeModel } from "@golemio/core/dist/output-gateway";
6
7
  export declare class ParkingRepository extends SequelizeModel {
8
+ private averageOccupancyRepository;
7
9
  private cachedParkingSourcesRepository;
8
10
  private locationModel;
9
- constructor(locationModel: ParkingsLocationModel, cachedParkingSourcesRepository: CachedParkingSourcesRepository);
11
+ constructor(locationModel: ParkingsLocationModel, averageOccupancyRepository: ParkingAverageOccupancyRepository, cachedParkingSourcesRepository: CachedParkingSourcesRepository);
10
12
  associate(): void;
11
- GetAll(params: IParkingParams): Promise<IParkingWithLocation[]>;
12
- GetOne(id: string): Promise<IParkingWithLocation | null>;
13
+ GetAll(params: IParkingParams): Promise<IParkingWithLocationAndOccupancyInfo[]>;
14
+ GetOne(id: string): Promise<IParkingWithLocationAndOccupancyInfo | null>;
13
15
  private prepareWhereConditions;
14
16
  }
@@ -24,6 +24,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
24
24
  exports.ParkingRepository = void 0;
25
25
  const SourceEnum_1 = require("../../helpers/SourceEnum");
26
26
  const CachedParkingSourcesRepository_1 = require("../../helpers/data-access/CachedParkingSourcesRepository");
27
+ const ParkingAverageOccupancyRepository_1 = require("./ParkingAverageOccupancyRepository");
27
28
  const ModuleContainerToken_1 = require("../ioc/ModuleContainerToken");
28
29
  const ParkingsLocationModel_1 = require("../models/ParkingsLocationModel");
29
30
  const _sch_1 = require("../../schema-definitions");
@@ -32,10 +33,11 @@ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
32
33
  const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
33
34
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
34
35
  let ParkingRepository = exports.ParkingRepository = class ParkingRepository extends output_gateway_1.SequelizeModel {
35
- constructor(locationModel, cachedParkingSourcesRepository) {
36
+ constructor(locationModel, averageOccupancyRepository, cachedParkingSourcesRepository) {
36
37
  super("OGParkingRepository", _sch_1.Parkings.parkings.pgTableName, _sch_1.Parkings.parkings.outputSequelizeAttributes, {
37
38
  schema: _sch_1.Parkings.pgSchema,
38
39
  });
40
+ this.averageOccupancyRepository = averageOccupancyRepository;
39
41
  this.cachedParkingSourcesRepository = cachedParkingSourcesRepository;
40
42
  this.locationModel = locationModel;
41
43
  this.associate();
@@ -46,6 +48,11 @@ let ParkingRepository = exports.ParkingRepository = class ParkingRepository exte
46
48
  foreignKey: "source_id",
47
49
  sourceKey: "source_id",
48
50
  });
51
+ this.sequelizeModel.hasOne(this.averageOccupancyRepository.sequelizeModel, {
52
+ as: "parking_average_occupancy",
53
+ foreignKey: "source_id",
54
+ sourceKey: "source_id",
55
+ });
49
56
  }
50
57
  GetAll(params) {
51
58
  return __awaiter(this, void 0, void 0, function* () {
@@ -65,10 +72,25 @@ let ParkingRepository = exports.ParkingRepository = class ParkingRepository exte
65
72
  [sequelize_1.Op.eq]: sequelize_1.Sequelize.col(`${_sch_1.Parkings.parkings.pgTableName}.source_id`),
66
73
  },
67
74
  },
68
- required: false,
75
+ required: true,
69
76
  subQuery: false,
70
77
  where: whereLocation,
71
78
  },
79
+ {
80
+ model: this.averageOccupancyRepository.sequelizeModel,
81
+ as: "parking_average_occupancy",
82
+ attributes: ["source_id"],
83
+ on: {
84
+ source: {
85
+ [sequelize_1.Op.eq]: sequelize_1.Sequelize.col(`${_sch_1.Parkings.parkings.pgTableName}.source`),
86
+ },
87
+ source_id: {
88
+ [sequelize_1.Op.eq]: sequelize_1.Sequelize.col(`${_sch_1.Parkings.parkings.pgTableName}.source_id`),
89
+ },
90
+ },
91
+ required: false,
92
+ subQuery: false,
93
+ },
72
94
  ],
73
95
  where,
74
96
  limit: params.limit,
@@ -83,6 +105,7 @@ let ParkingRepository = exports.ParkingRepository = class ParkingRepository exte
83
105
  return result.map((element) => {
84
106
  const result = element.dataValues;
85
107
  result.parking_locations = result.parking_locations.map((location) => location.dataValues);
108
+ result.parking_average_occupancy = !!result.parking_average_occupancy;
86
109
  return result;
87
110
  });
88
111
  }
@@ -108,6 +131,21 @@ let ParkingRepository = exports.ParkingRepository = class ParkingRepository exte
108
131
  [sequelize_1.Op.eq]: sequelize_1.Sequelize.col(`${_sch_1.Parkings.parkings.pgTableName}.source_id`),
109
132
  },
110
133
  },
134
+ required: true,
135
+ subQuery: false,
136
+ },
137
+ {
138
+ model: this.averageOccupancyRepository.sequelizeModel,
139
+ as: "parking_average_occupancy",
140
+ attributes: ["source_id"],
141
+ on: {
142
+ source: {
143
+ [sequelize_1.Op.eq]: sequelize_1.Sequelize.col(`${_sch_1.Parkings.parkings.pgTableName}.source`),
144
+ },
145
+ source_id: {
146
+ [sequelize_1.Op.eq]: sequelize_1.Sequelize.col(`${_sch_1.Parkings.parkings.pgTableName}.source_id`),
147
+ },
148
+ },
111
149
  required: false,
112
150
  subQuery: false,
113
151
  },
@@ -122,6 +160,7 @@ let ParkingRepository = exports.ParkingRepository = class ParkingRepository exte
122
160
  }
123
161
  const resultData = result.dataValues;
124
162
  resultData.parking_locations = resultData.parking_locations.map((location) => location.dataValues);
163
+ resultData.parking_average_occupancy = !!resultData.parking_average_occupancy;
125
164
  return resultData;
126
165
  }
127
166
  catch (err) {
@@ -172,8 +211,10 @@ let ParkingRepository = exports.ParkingRepository = class ParkingRepository exte
172
211
  exports.ParkingRepository = ParkingRepository = __decorate([
173
212
  (0, tsyringe_1.injectable)(),
174
213
  __param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkingsLocationModel)),
175
- __param(1, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.CachedParkingSourcesRepository)),
214
+ __param(1, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkingAverageOccupancyRepository)),
215
+ __param(2, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.CachedParkingSourcesRepository)),
176
216
  __metadata("design:paramtypes", [ParkingsLocationModel_1.ParkingsLocationModel,
217
+ ParkingAverageOccupancyRepository_1.ParkingAverageOccupancyRepository,
177
218
  CachedParkingSourcesRepository_1.CachedParkingSourcesRepository])
178
219
  ], ParkingRepository);
179
220
  //# sourceMappingURL=ParkingRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParkingRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/data-access/ParkingRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParkingRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/data-access/ParkingRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { IParkingMeasurements } from "../../../schema-definitions/models/interfaces/IParkingMeasurements";
2
+ export interface IParkingLatestMeasurements extends IParkingMeasurements {
3
+ updated_at: Date;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IParkingMeasurementsDto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IParkingMeasurementsDto.js","sourceRoot":"","sources":["../../../../src/output-gateway/data-access/interfaces/IParkingMeasurementsDto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { IPaginationParams } from "./IPaginationParams";
2
+ export interface IParkingMeasurementsParams extends IPaginationParams {
3
+ primarySource: string[];
4
+ primarySourceId?: string[];
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IParkingMeasurementsParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IParkingMeasurementsParams.js","sourceRoot":"","sources":["../../../../src/output-gateway/helpers/params/IParkingMeasurementsParams.ts"],"names":[],"mappings":""}
@@ -16,15 +16,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.routers = void 0;
18
18
  const routers_1 = require("./routers");
19
- const V3ParkingRouter_1 = require("./routers/v3/V3ParkingRouter");
20
- const V3ParkingTariffsRouter_1 = require("./routers/v3/V3ParkingTariffsRouter");
21
19
  __exportStar(require("./models"), exports);
22
20
  __exportStar(require("./routers"), exports);
23
21
  exports.routers = [
24
22
  routers_1.v1ParkingRouter,
25
23
  routers_1.v2ParkingRouter,
26
24
  routers_1.v3ParkingMachinesRouter,
27
- V3ParkingRouter_1.v3ParkingRouter,
28
- V3ParkingTariffsRouter_1.v3ParkingTariffRouter, //
25
+ routers_1.v3ParkingRouter,
26
+ routers_1.v3ParkingTariffRouter,
27
+ routers_1.v3ParkingMeasurementsRouter,
29
28
  ];
30
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/output-gateway/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAAwF;AACxF,kEAA+D;AAC/D,gFAA4E;AAE5E,2CAAyB;AACzB,4CAA0B;AAEb,QAAA,OAAO,GAAG;IACnB,yBAAe;IACf,yBAAe;IACf,iCAAuB;IACvB,iCAAe;IACf,8CAAqB,EAAE,EAAE;CAC5B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/output-gateway/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAOqB;AAErB,2CAAyB;AACzB,4CAA0B;AAEb,QAAA,OAAO,GAAG;IACnB,yBAAe;IACf,yBAAe;IACf,iCAAuB;IACvB,yBAAe;IACf,+BAAqB;IACrB,qCAA2B;CAC9B,CAAC"}
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ParkingsContainer = void 0;
4
4
  const CachedParkingSourcesRepository_1 = require("../../helpers/data-access/CachedParkingSourcesRepository");
5
+ const ParkingAverageOccupancyRepository_1 = require("../data-access/ParkingAverageOccupancyRepository");
6
+ const ParkingLatestMeasurementRepository_1 = require("../data-access/ParkingLatestMeasurementRepository");
7
+ const ParkingMeasurementRepository_1 = require("../data-access/ParkingMeasurementRepository");
5
8
  const ParkingRepository_1 = require("../data-access/ParkingRepository");
6
9
  const PrimarySourceValidator_1 = require("../routers/v3/helpers/PrimarySourceValidator");
7
10
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
@@ -23,6 +26,9 @@ parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.CachedPar
23
26
  });
24
27
  parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.ParkingRepository, ParkingRepository_1.ParkingRepository);
25
28
  parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.ParkingMachinesRepository, ParkingMachinesRepository_1.ParkingMachinesRepository);
29
+ parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.ParkingMeasurementRepository, ParkingMeasurementRepository_1.ParkingMeasurementRepository);
30
+ parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.ParkingLatestMeasurementRepository, ParkingLatestMeasurementRepository_1.ParkingLatestMeasurementRepository);
31
+ parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.ParkingAverageOccupancyRepository, ParkingAverageOccupancyRepository_1.ParkingAverageOccupancyRepository);
26
32
  parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.ParkingTariffRepository, TariffRepository_1.TariffRepository);
27
33
  //#endregion
28
34
  //#region Validators
@@ -1 +1 @@
1
- {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/output-gateway/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,6GAAqG;AACrG,wEAAsE;AACtE,yFAAuF;AACvF,wEAAqE;AACrE,iEAAkF;AAElF,iEAA8D;AAC9D,2EAAyE;AACzE,wFAAsF;AACtF,sEAAoE;AAEpE,wBAAwB;AACxB,MAAM,iBAAiB,GAAwB,2BAAsB,CAAC,oBAAoB,EAAE,CAAC;AAuB/D,8CAAiB;AAtB/C,YAAY;AAEZ,gBAAgB;AAChB,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;AAC9F,YAAY;AAEZ,sBAAsB;AACtB,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,8BAA8B,EAAE;IAC5E,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,+DAA8B,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAS,CAAC,MAAM,CAAC,CAAC;CAC7H,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,iBAAiB,EAAE,qCAAiB,CAAC,CAAC;AACtF,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,yBAAyB,EAAE,qDAAyB,CAAC,CAAC;AACtG,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,uBAAuB,EAAE,mCAAgB,CAAC,CAAC;AAC3F,YAAY;AAEZ,oBAAoB;AACpB,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/output-gateway/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,6GAAqG;AACrG,wGAAsG;AACtG,0GAAwG;AACxG,8FAA4F;AAC5F,wEAAsE;AACtE,yFAAuF;AACvF,wEAAqE;AACrE,iEAAkF;AAElF,iEAA8D;AAC9D,2EAAyE;AACzE,wFAAsF;AACtF,sEAAoE;AAEpE,wBAAwB;AACxB,MAAM,iBAAiB,GAAwB,2BAAsB,CAAC,oBAAoB,EAAE,CAAC;AA0B/D,8CAAiB;AAzB/C,YAAY;AAEZ,gBAAgB;AAChB,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;AAC9F,YAAY;AAEZ,sBAAsB;AACtB,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,8BAA8B,EAAE;IAC5E,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,+DAA8B,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAS,CAAC,MAAM,CAAC,CAAC;CAC7H,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,iBAAiB,EAAE,qCAAiB,CAAC,CAAC;AACtF,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,yBAAyB,EAAE,qDAAyB,CAAC,CAAC;AACtG,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,4BAA4B,EAAE,2DAA4B,CAAC,CAAC;AAC5G,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,kCAAkC,EAAE,uEAAkC,CAAC,CAAC;AACxH,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,iCAAiC,EAAE,qEAAiC,CAAC,CAAC;AACtH,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,uBAAuB,EAAE,mCAAgB,CAAC,CAAC;AAC3F,YAAY;AAEZ,oBAAoB;AACpB,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC"}
@@ -2,6 +2,9 @@ declare const ModuleContainerToken: {
2
2
  ParkingsLocationModel: symbol;
3
3
  CachedParkingSourcesRepository: symbol;
4
4
  ParkingRepository: symbol;
5
+ ParkingMeasurementRepository: symbol;
6
+ ParkingLatestMeasurementRepository: symbol;
7
+ ParkingAverageOccupancyRepository: symbol;
5
8
  ParkingMachinesRepository: symbol;
6
9
  ParkingTariffRepository: symbol;
7
10
  PrimarySourceValidator: symbol;
@@ -5,6 +5,9 @@ const ModuleContainerToken = {
5
5
  ParkingsLocationModel: Symbol(),
6
6
  CachedParkingSourcesRepository: Symbol(),
7
7
  ParkingRepository: Symbol(),
8
+ ParkingMeasurementRepository: Symbol(),
9
+ ParkingLatestMeasurementRepository: Symbol(),
10
+ ParkingAverageOccupancyRepository: Symbol(),
8
11
  ParkingMachinesRepository: Symbol(),
9
12
  ParkingTariffRepository: Symbol(),
10
13
  PrimarySourceValidator: Symbol(),
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/output-gateway/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,qBAAqB,EAAE,MAAM,EAAE;IAE/B,8BAA8B,EAAE,MAAM,EAAE;IACxC,iBAAiB,EAAE,MAAM,EAAE;IAC3B,yBAAyB,EAAE,MAAM,EAAE;IACnC,uBAAuB,EAAE,MAAM,EAAE;IAEjC,sBAAsB,EAAE,MAAM,EAAE;CACnC,CAAC;AAEO,oDAAoB"}
1
+ {"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/output-gateway/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,qBAAqB,EAAE,MAAM,EAAE;IAE/B,8BAA8B,EAAE,MAAM,EAAE;IACxC,iBAAiB,EAAE,MAAM,EAAE;IAC3B,4BAA4B,EAAE,MAAM,EAAE;IACtC,kCAAkC,EAAE,MAAM,EAAE;IAC5C,iCAAiC,EAAE,MAAM,EAAE;IAC3C,yBAAyB,EAAE,MAAM,EAAE;IACnC,uBAAuB,EAAE,MAAM,EAAE;IAEjC,sBAAsB,EAAE,MAAM,EAAE;CACnC,CAAC;AAEO,oDAAoB"}
@@ -3,3 +3,4 @@ export * from "./v2/V2ParkingRouter";
3
3
  export * from "./v3/V3ParkingRouter";
4
4
  export * from "./v3/V3ParkingTariffsRouter";
5
5
  export * from "./v3/V3ParkingMachinesRouter";
6
+ export * from "./v3/V3ParkingMeasurementsRouter";
@@ -19,4 +19,5 @@ __exportStar(require("./v2/V2ParkingRouter"), exports);
19
19
  __exportStar(require("./v3/V3ParkingRouter"), exports);
20
20
  __exportStar(require("./v3/V3ParkingTariffsRouter"), exports);
21
21
  __exportStar(require("./v3/V3ParkingMachinesRouter"), exports);
22
+ __exportStar(require("./v3/V3ParkingMeasurementsRouter"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-gateway/routers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,uDAAqC;AACrC,uDAAqC;AACrC,8DAA4C;AAC5C,+DAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-gateway/routers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,uDAAqC;AACrC,uDAAqC;AACrC,8DAA4C;AAC5C,+DAA6C;AAC7C,mEAAiD"}
@@ -0,0 +1,3 @@
1
+ import { AbstractRouter } from "@golemio/core/dist/helpers/routing/AbstractRouter";
2
+ declare const v3ParkingMeasurementsRouter: AbstractRouter;
3
+ export { v3ParkingMeasurementsRouter };
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.v3ParkingMeasurementsRouter = void 0;
4
+ const V3ParkingMeasurementsController_1 = require("../../controllers/v3/V3ParkingMeasurementsController");
5
+ const Di_1 = require("../../ioc/Di");
6
+ const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
7
+ const AbstractRouter_1 = require("@golemio/core/dist/helpers/routing/AbstractRouter");
8
+ const Validation_1 = require("@golemio/core/dist/output-gateway/Validation");
9
+ const redis_1 = require("@golemio/core/dist/output-gateway/redis");
10
+ const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
11
+ const constants_1 = require("../constants");
12
+ class V3ParkingMeasurementsRouter extends AbstractRouter_1.AbstractRouter {
13
+ constructor() {
14
+ super(constants_1.RouteVersion.v3, "parking-measurements");
15
+ this.controller = new V3ParkingMeasurementsController_1.V3ParkingMeasurementsController();
16
+ this.primarySourceValidator = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.PrimarySourceValidator);
17
+ this.initRoutes();
18
+ }
19
+ initRoutes(expire) {
20
+ this.router.get("/", [
21
+ (0, express_validator_1.oneOf)([
22
+ [
23
+ (0, express_validator_1.query)("primarySource").optional().isArray(),
24
+ (0, express_validator_1.query)("primarySource.*").custom(this.primarySourceValidator.validate),
25
+ ],
26
+ (0, express_validator_1.query)("primarySource").optional().not().isArray().custom(this.primarySourceValidator.validate),
27
+ ]),
28
+ (0, express_validator_1.oneOf)([
29
+ [(0, express_validator_1.query)("primarySourceId").optional().isArray(), (0, express_validator_1.query)("primarySourceId.*").optional().isString().isUUID()],
30
+ (0, express_validator_1.query)("primarySourceId").optional().not().isArray().isString().isUUID(),
31
+ ]),
32
+ ], Validation_1.pagination, Validation_1.checkErrors, (0, Validation_1.paginationLimitMiddleware)(this.path), (0, redis_1.useCacheMiddleware)(), this.controller.getAllLatest);
33
+ // this.router.get(
34
+ // "/:id/average-occupancy",
35
+ // param("id").exists().isString(),
36
+ // pagination,
37
+ // checkErrors,
38
+ // useCacheMiddleware(),
39
+ // this.controller.getAverageOccupancy
40
+ // );
41
+ }
42
+ }
43
+ const v3ParkingMeasurementsRouter = new V3ParkingMeasurementsRouter();
44
+ exports.v3ParkingMeasurementsRouter = v3ParkingMeasurementsRouter;
45
+ //# sourceMappingURL=V3ParkingMeasurementsRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"V3ParkingMeasurementsRouter.js","sourceRoot":"","sources":["../../../../src/output-gateway/routers/v3/V3ParkingMeasurementsRouter.ts"],"names":[],"mappings":";;;AAAA,0GAAqG;AACrG,qCAA+C;AAC/C,yEAAoE;AACpE,sFAAmF;AACnF,6EAAkH;AAClH,mEAA6E;AAC7E,mFAA2E;AAC3E,4CAA4C;AAG5C,MAAM,2BAA4B,SAAQ,+BAAc;IAIpD;QACI,KAAK,CAAC,wBAAY,CAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC;QAE/C,IAAI,CAAC,UAAU,GAAG,IAAI,iEAA+B,EAAE,CAAC;QACxD,IAAI,CAAC,sBAAsB,GAAG,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,sBAAsB,CAAC,CAAC;QAErG,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU,CAAC,MAAwB;QACzC,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,GAAG,EACH;YACI,IAAA,yBAAK,EAAC;gBACF;oBACI,IAAA,yBAAK,EAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;oBAC3C,IAAA,yBAAK,EAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;iBACxE;gBACD,IAAA,yBAAK,EAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;aACjG,CAAC;YACF,IAAA,yBAAK,EAAC;gBACF,CAAC,IAAA,yBAAK,EAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,IAAA,yBAAK,EAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;gBAC1G,IAAA,yBAAK,EAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;aAC1E,CAAC;SACL,EACD,uBAAU,EACV,wBAAW,EACX,IAAA,sCAAyB,EAAC,IAAI,CAAC,IAAI,CAAC,EACpC,IAAA,0BAAkB,GAAE,EACpB,IAAI,CAAC,UAAU,CAAC,YAAY,CAC/B,CAAC;QAEF,mBAAmB;QACnB,gCAAgC;QAChC,uCAAuC;QACvC,kBAAkB;QAClB,mBAAmB;QACnB,4BAA4B;QAC5B,0CAA0C;QAC1C,KAAK;IACT,CAAC;CACJ;AAED,MAAM,2BAA2B,GAAmB,IAAI,2BAA2B,EAAE,CAAC;AAE7E,kEAA2B"}
@@ -49,6 +49,7 @@ class V3ParkingRouter extends AbstractRouter_1.AbstractRouter {
49
49
  (0, express_validator_1.query)("minutesBefore").optional().isInt({ min: 1 }),
50
50
  (0, express_validator_1.query)("updatedSince").optional().isISO8601(),
51
51
  ], Validation_1.pagination, Validation_1.checkErrors, (0, Validation_1.paginationLimitMiddleware)(this.path), (0, redis_1.useCacheMiddleware)(), this.controller.getAll);
52
+ this.router.get("/:id/average-occupancy", (0, express_validator_1.param)("id").exists().isString(), Validation_1.checkErrors, (0, redis_1.useCacheMiddleware)(), this.controller.getAverageOccupancy);
52
53
  this.router.get("/:id", (0, express_validator_1.param)("id").exists().isString(), Validation_1.checkErrors, (0, redis_1.useCacheMiddleware)(), this.controller.getOne);
53
54
  }
54
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"V3ParkingRouter.js","sourceRoot":"","sources":["../../../../src/output-gateway/routers/v3/V3ParkingRouter.ts"],"names":[],"mappings":";;;AAAA,kFAA6E;AAC7E,qCAA+C;AAC/C,yEAAoE;AACpE,sFAAmF;AACnF,6EAAkH;AAClH,mEAA6E;AAC7E,mFAAkF;AAClF,4CAA4C;AAG5C,MAAM,eAAgB,SAAQ,+BAAc;IAkBxC;QACI,KAAK,CAAC,wBAAY,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAhB9B,6BAAwB,GAAG;YAC/B,UAAU;YACV,UAAU;YACV,QAAQ;YACR,UAAU;YACV,UAAU;YACV,UAAU;YACV,KAAK;YACL,YAAY;YACZ,OAAO;YACP,KAAK;YACL,YAAY;YACZ,IAAI;SACP,CAAC;QAKE,IAAI,CAAC,UAAU,GAAG,IAAI,yCAAmB,EAAE,CAAC;QAC5C,IAAI,CAAC,sBAAsB,GAAG,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,sBAAsB,CAAC,CAAC;QAErG,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU,CAAC,MAAoC;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,GAAG,EACH;YACI,IAAA,yBAAK,EAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;YAC9E,IAAA,yBAAK,EAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC9C,IAAA,yBAAK,EAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE;YACzC,IAAA,yBAAK,EAAC,aAAa,CAAC;iBACf,QAAQ,EAAE;iBACV,QAAQ,EAAE;iBACV,OAAO,CAAC,4BAA4B,CAAC;YAC1C,IAAA,yBAAK,EAAC;gBACF;oBACI,IAAA,yBAAK,EAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;oBAC/C,IAAA,yBAAK,EAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC;iBACzF;gBACD,IAAA,yBAAK,EAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC;aACvF,CAAC;YACF,IAAA,yBAAK,EAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YACnD,IAAA,yBAAK,EAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE;SAC/C,EACD,uBAAU,EACV,wBAAW,EACX,IAAA,sCAAyB,EAAC,IAAI,CAAC,IAAI,CAAC,EACpC,IAAA,0BAAkB,GAAE,EACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAA,yBAAK,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,wBAAW,EAAE,IAAA,0BAAkB,GAAE,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACxH,CAAC;CACJ;AAED,MAAM,eAAe,GAAmB,IAAI,eAAe,EAAE,CAAC;AAErD,0CAAe"}
1
+ {"version":3,"file":"V3ParkingRouter.js","sourceRoot":"","sources":["../../../../src/output-gateway/routers/v3/V3ParkingRouter.ts"],"names":[],"mappings":";;;AAAA,kFAA6E;AAC7E,qCAA+C;AAC/C,yEAAoE;AACpE,sFAAmF;AACnF,6EAAkH;AAClH,mEAA6E;AAC7E,mFAAkF;AAClF,4CAA4C;AAG5C,MAAM,eAAgB,SAAQ,+BAAc;IAkBxC;QACI,KAAK,CAAC,wBAAY,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAhB9B,6BAAwB,GAAG;YAC/B,UAAU;YACV,UAAU;YACV,QAAQ;YACR,UAAU;YACV,UAAU;YACV,UAAU;YACV,KAAK;YACL,YAAY;YACZ,OAAO;YACP,KAAK;YACL,YAAY;YACZ,IAAI;SACP,CAAC;QAKE,IAAI,CAAC,UAAU,GAAG,IAAI,yCAAmB,EAAE,CAAC;QAC5C,IAAI,CAAC,sBAAsB,GAAG,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,sBAAsB,CAAC,CAAC;QAErG,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU,CAAC,MAAoC;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,GAAG,EACH;YACI,IAAA,yBAAK,EAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;YAC9E,IAAA,yBAAK,EAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC9C,IAAA,yBAAK,EAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE;YACzC,IAAA,yBAAK,EAAC,aAAa,CAAC;iBACf,QAAQ,EAAE;iBACV,QAAQ,EAAE;iBACV,OAAO,CAAC,4BAA4B,CAAC;YAC1C,IAAA,yBAAK,EAAC;gBACF;oBACI,IAAA,yBAAK,EAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;oBAC/C,IAAA,yBAAK,EAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC;iBACzF;gBACD,IAAA,yBAAK,EAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC;aACvF,CAAC;YACF,IAAA,yBAAK,EAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YACnD,IAAA,yBAAK,EAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE;SAC/C,EACD,uBAAU,EACV,wBAAW,EACX,IAAA,sCAAyB,EAAC,IAAI,CAAC,IAAI,CAAC,EACpC,IAAA,0BAAkB,GAAE,EACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,wBAAwB,EACxB,IAAA,yBAAK,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAC/B,wBAAW,EACX,IAAA,0BAAkB,GAAE,EACpB,IAAI,CAAC,UAAU,CAAC,mBAAmB,CACtC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAA,yBAAK,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,wBAAW,EAAE,IAAA,0BAAkB,GAAE,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACxH,CAAC;CACJ;AAED,MAAM,eAAe,GAAmB,IAAI,eAAe,EAAE,CAAC;AAErD,0CAAe"}
@@ -0,0 +1,15 @@
1
+ export interface IV3ParkingMeasurementsDto {
2
+ parking_id: string;
3
+ primary_source: string;
4
+ primary_source_id: string;
5
+ has_free_spots: boolean;
6
+ total_spot_number: number | null;
7
+ free_spot_number: number | null;
8
+ closed_spot_number: number | null;
9
+ occupied_spot_number: number | null;
10
+ last_updated: Date;
11
+ average_occupancy?: V3ParkingAverageOccupancyDto;
12
+ }
13
+ export type V3ParkingAverageOccupancyDto = {
14
+ [K in string]: Record<string, number>;
15
+ };