@golemio/parkings
Version:
Golemio Parkings Module
47 lines • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.V3ParkingMeasurementsController = void 0;
const Di_1 = require("../../ioc/Di");
const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
const ParkingMeasurementDtoTransformation_1 = require("../../transformations/v3/ParkingMeasurementDtoTransformation");
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
const AbstractV3ParkingController_1 = require("./AbstractV3ParkingController");
const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
class V3ParkingMeasurementsController extends AbstractV3ParkingController_1.AbstractV3ParkingController {
constructor() {
super();
this.getAllLatest = async (req, res, next) => {
try {
const params = await this.getAllLatestParams(req);
const result = await this.latestMeasurementRepository.GetAll(params);
return res.json(this.transformation.transformArray(result));
}
catch (err) {
next(err);
}
};
this.latestMeasurementRepository = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingLatestMeasurementRepository);
this.transformation = new ParkingMeasurementDtoTransformation_1.ParkingMeasurementDtoTransformation();
}
async getAllLatestParams(req) {
const queryData = (0, express_validator_1.matchedData)(req);
const { allowedSources } = await this.getAllowedScope(req);
try {
return {
primarySource: allowedSources,
parkingId: queryData.parkingId
? queryData.parkingId instanceof Array
? queryData.parkingId
: [queryData.parkingId]
: undefined,
limit: queryData.limit ? Number(queryData.limit) : undefined,
offset: queryData.offset ? Number(queryData.offset) : 0,
};
}
catch (err) {
throw new golemio_errors_1.GeneralError("Param parsing error", this.constructor.name, err, 500);
}
}
}
exports.V3ParkingMeasurementsController = V3ParkingMeasurementsController;
//# sourceMappingURL=V3ParkingMeasurementsController.js.map