@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.
- package/db/example/00_clear_test_data.sql +1 -0
- package/db/example/04_tsk_parking_v2.sql +6 -0
- package/db/example/98_calculate_occupancy.sql +1 -0
- package/db/migrations/postgresql/20240205151926-average-occupancy.js +53 -0
- package/db/migrations/postgresql/sqls/20240205151926-average-occupancy-down.sql +3 -0
- package/db/migrations/postgresql/sqls/20240205151926-average-occupancy-up.sql +66 -0
- package/dist/integration-engine/ioc/Di.js +5 -1
- package/dist/integration-engine/ioc/Di.js.map +1 -1
- package/dist/integration-engine/ioc/ModuleContainerToken.d.ts +2 -0
- package/dist/integration-engine/ioc/ModuleContainerToken.js +4 -0
- package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -1
- package/dist/integration-engine/repositories/AverageOccupancyRepository.d.ts +9 -0
- package/dist/integration-engine/repositories/AverageOccupancyRepository.js +41 -0
- package/dist/integration-engine/repositories/AverageOccupancyRepository.js.map +1 -0
- package/dist/integration-engine/workers/NewParkingsWorker.js +1 -0
- package/dist/integration-engine/workers/NewParkingsWorker.js.map +1 -1
- package/dist/integration-engine/workers/schemas/Smart4CityTaskTypeSchema.js.map +1 -1
- package/dist/integration-engine/workers/tasks/CalculateAverageOccupancyTask.d.ts +9 -0
- package/dist/integration-engine/workers/tasks/CalculateAverageOccupancyTask.js +57 -0
- package/dist/integration-engine/workers/tasks/CalculateAverageOccupancyTask.js.map +1 -0
- package/dist/output-gateway/controllers/v3/V3ParkingController.d.ts +5 -1
- package/dist/output-gateway/controllers/v3/V3ParkingController.js +19 -3
- package/dist/output-gateway/controllers/v3/V3ParkingController.js.map +1 -1
- package/dist/output-gateway/controllers/v3/V3ParkingMeasurementsController.d.ts +10 -0
- package/dist/output-gateway/controllers/v3/V3ParkingMeasurementsController.js +56 -0
- package/dist/output-gateway/controllers/v3/V3ParkingMeasurementsController.js.map +1 -0
- package/dist/output-gateway/data-access/ParkingAverageOccupancyRepository.d.ts +12 -0
- package/dist/output-gateway/data-access/ParkingAverageOccupancyRepository.js +87 -0
- package/dist/output-gateway/data-access/ParkingAverageOccupancyRepository.js.map +1 -0
- package/dist/output-gateway/data-access/ParkingLatestMeasurementRepository.d.ts +8 -0
- package/dist/output-gateway/data-access/ParkingLatestMeasurementRepository.js +72 -0
- package/dist/output-gateway/data-access/ParkingLatestMeasurementRepository.js.map +1 -0
- package/dist/output-gateway/data-access/ParkingMeasurementRepository.d.ts +6 -0
- package/dist/output-gateway/data-access/ParkingMeasurementRepository.js +33 -0
- package/dist/output-gateway/data-access/ParkingMeasurementRepository.js.map +1 -0
- package/dist/output-gateway/data-access/ParkingRepository.d.ts +6 -4
- package/dist/output-gateway/data-access/ParkingRepository.js +44 -3
- package/dist/output-gateway/data-access/ParkingRepository.js.map +1 -1
- package/dist/output-gateway/data-access/interfaces/IParkingMeasurementsDto.d.ts +4 -0
- package/dist/output-gateway/data-access/interfaces/IParkingMeasurementsDto.js +3 -0
- package/dist/output-gateway/data-access/interfaces/IParkingMeasurementsDto.js.map +1 -0
- package/dist/output-gateway/helpers/params/IParkingMeasurementsParams.d.ts +5 -0
- package/dist/output-gateway/helpers/params/IParkingMeasurementsParams.js +3 -0
- package/dist/output-gateway/helpers/params/IParkingMeasurementsParams.js.map +1 -0
- package/dist/output-gateway/index.js +3 -4
- package/dist/output-gateway/index.js.map +1 -1
- package/dist/output-gateway/ioc/Di.js +6 -0
- package/dist/output-gateway/ioc/Di.js.map +1 -1
- package/dist/output-gateway/ioc/ModuleContainerToken.d.ts +3 -0
- package/dist/output-gateway/ioc/ModuleContainerToken.js +3 -0
- package/dist/output-gateway/ioc/ModuleContainerToken.js.map +1 -1
- package/dist/output-gateway/routers/index.d.ts +1 -0
- package/dist/output-gateway/routers/index.js +1 -0
- package/dist/output-gateway/routers/index.js.map +1 -1
- package/dist/output-gateway/routers/v3/V3ParkingMeasurementsRouter.d.ts +3 -0
- package/dist/output-gateway/routers/v3/V3ParkingMeasurementsRouter.js +45 -0
- package/dist/output-gateway/routers/v3/V3ParkingMeasurementsRouter.js.map +1 -0
- package/dist/output-gateway/routers/v3/V3ParkingRouter.js +1 -0
- package/dist/output-gateway/routers/v3/V3ParkingRouter.js.map +1 -1
- package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingMeasurementsDto.d.ts +15 -0
- package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingMeasurementsDto.js +3 -0
- package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingMeasurementsDto.js.map +1 -0
- package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.d.ts +9 -4
- package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.js +13 -0
- package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.js.map +1 -1
- package/dist/output-gateway/transformations/v3/ParkingMeasurementDtoTransformation.d.ts +7 -0
- package/dist/output-gateway/transformations/v3/ParkingMeasurementDtoTransformation.js +27 -0
- package/dist/output-gateway/transformations/v3/ParkingMeasurementDtoTransformation.js.map +1 -0
- package/dist/schema-definitions/index.d.ts +5 -0
- package/dist/schema-definitions/index.js +5 -0
- package/dist/schema-definitions/index.js.map +1 -1
- package/dist/schema-definitions/models/ParkingAverageOccupancyModel.d.ts +15 -0
- package/dist/schema-definitions/models/ParkingAverageOccupancyModel.js +32 -0
- package/dist/schema-definitions/models/ParkingAverageOccupancyModel.js.map +1 -0
- package/dist/schema-definitions/models/ParkingMeasurementsModel.d.ts +15 -0
- package/dist/schema-definitions/models/ParkingMeasurementsModel.js +26 -0
- package/dist/schema-definitions/models/ParkingMeasurementsModel.js.map +1 -0
- package/dist/schema-definitions/models/interfaces/IParking.d.ts +2 -1
- package/dist/schema-definitions/models/interfaces/IParkingAverageOccupancy.d.ts +10 -0
- package/dist/schema-definitions/models/interfaces/IParkingAverageOccupancy.js +3 -0
- package/dist/schema-definitions/models/interfaces/IParkingAverageOccupancy.js.map +1 -0
- package/dist/schema-definitions/models/interfaces/IParkingMeasurements.d.ts +10 -0
- package/dist/schema-definitions/models/interfaces/IParkingMeasurements.js +3 -0
- package/dist/schema-definitions/models/interfaces/IParkingMeasurements.js.map +1 -0
- package/docs/implementation-documentation.md +30 -3
- package/docs/openapi-output.yaml +177 -11
- 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,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 {
|
|
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<
|
|
12
|
-
GetOne(id: string): Promise<
|
|
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:
|
|
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.
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAiD;AACjD,6GAAqG;
|
|
1
|
+
{"version":3,"file":"ParkingRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/data-access/ParkingRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IParkingMeasurementsDto.js","sourceRoot":"","sources":["../../../../src/output-gateway/data-access/interfaces/IParkingMeasurementsDto.ts"],"names":[],"mappings":""}
|
|
@@ -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
|
-
|
|
28
|
-
|
|
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,
|
|
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;
|
|
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"}
|
|
@@ -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,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
|
+
};
|