@golemio/parkings
Version:
Golemio Parkings Module
43 lines • 2.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.v3ParkingMachinesRouter = void 0;
const Di_1 = require("../../ioc/Di");
const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
const AbstractRouter_1 = require("@golemio/core/dist/helpers/routing/AbstractRouter");
const ioc_1 = require("@golemio/core/dist/output-gateway/ioc");
const Validation_1 = require("@golemio/core/dist/output-gateway/Validation");
const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
const constants_1 = require("../constants");
class V3ParkingMachinesRouter extends AbstractRouter_1.AbstractRouter {
constructor() {
super(constants_1.RouteVersion.v3, "parking-machines");
this.supportedTypes = ["payment_machine", "info_box"]; // TODO move to constants
this.controller = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.V3ParkingMachinesController);
this.primarySourceValidator = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.PrimarySourceValidator);
this.cacheHeaderMiddleware = Di_1.ParkingsContainer.resolve(ioc_1.ContainerToken.CacheHeaderMiddleware);
this.initRoutes();
}
initRoutes() {
this.router.get("/", [
(0, express_validator_1.query)("isRestrictedToOpenData").optional().isBoolean().not().isArray(),
(0, express_validator_1.query)("primarySource").optional().custom(this.primarySourceValidator.validate),
(0, express_validator_1.query)("validFrom").optional().isISO8601().not().isArray(),
(0, express_validator_1.query)("type").optional().isIn(this.supportedTypes),
(0, express_validator_1.query)("boundingBox")
.optional()
.matches(/^\d+\.?\d*(,\d+\.?\d*){3}$/) // 50.123,14.243,50.017,14.573
.not()
.isArray(),
(0, express_validator_1.query)("codeMask")
.optional()
.matches(/^[\w%]*$/) // e.g. %middle% it is used for sql like
.not()
.isArray(),
(0, express_validator_1.query)("activeOnly").optional().isBoolean().not().isArray(),
], (0, Validation_1.paginationLimitMiddleware)(this.path), Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(12 * 60 * 60, 60), this.controller.getAll);
this.router.get("/:id", (0, express_validator_1.param)("id").exists().not().isEmpty({ ignore_whitespace: true }).not().isArray(), (0, express_validator_1.query)("isRestrictedToOpenData").optional().isBoolean().not().isArray(), Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(12 * 60 * 60, 60), this.controller.getOne);
}
}
const v3ParkingMachinesRouter = new V3ParkingMachinesRouter();
exports.v3ParkingMachinesRouter = v3ParkingMachinesRouter;
//# sourceMappingURL=V3ParkingMachinesRouter.js.map