@golemio/parkings
Version:
Golemio Parkings Module
46 lines • 2.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.v1ParkingRouter = void 0;
const TskParkingLotsRepository_1 = require("../../data-access/TskParkingLotsRepository");
const models_1 = require("../../models");
const constants_1 = require("../constants");
const AbstractGeoJsonRouter_1 = require("@golemio/core/dist/helpers/routing/AbstractGeoJsonRouter");
const Validation_1 = require("@golemio/core/dist/output-gateway/Validation");
const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
const CACHE_MAX_AGE = 5 * 60;
const CACHE_STALE_WHILE_REVALIDATE = 5;
/**
* @deprecated Legacy router, use Parking Spaces /parking endpoints instead
*/
class V1ParkingRouter extends AbstractGeoJsonRouter_1.AbstractGeoJsonRouter {
constructor() {
super(constants_1.RouteVersion.v1, "parkings", new TskParkingLotsRepository_1.TskParkingLotsRepository());
this.GetAllTskMeasurements = async (req, res, next) => {
const timestampFrom = req.query.from ? new Date(req.query.from).toISOString() : undefined;
const timestampTo = req.query.to ? new Date(req.query.to).toISOString() : undefined;
try {
const data = await this.measurementsHistoryRepository.GetAllTskMeasurements({
limit: req.query.limit ? parseInt(req.query.limit) : undefined,
offset: req.query.offset ? parseInt(req.query.offset) : undefined,
from: timestampFrom,
to: timestampTo,
sensorId: req.query.sensorId,
});
res.status(200).send(data);
}
catch (err) {
next(err);
}
};
this.measurementsHistoryRepository = models_1.models.ParkingsMeasurementsModel;
this.initRoutes({ maxAge: CACHE_MAX_AGE, staleWhileRevalidate: CACHE_STALE_WHILE_REVALIDATE });
this.router.get("/history", [
(0, express_validator_1.query)("from").optional().isISO8601().not().isArray(),
(0, express_validator_1.query)("to").optional().isISO8601().not().isArray(),
(0, express_validator_1.query)("sensorId").optional().not().isEmpty({ ignore_whitespace: true }).not().isArray(),
], Validation_1.pagination, (0, Validation_1.paginationLimitMiddleware)("TskParkingLotsLegacyRouter"), Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(CACHE_MAX_AGE, CACHE_STALE_WHILE_REVALIDATE), this.GetAllTskMeasurements);
}
}
const v1ParkingRouter = new V1ParkingRouter();
exports.v1ParkingRouter = v1ParkingRouter;
//# sourceMappingURL=V1ParkingRouter.js.map