UNPKG

@golemio/parkings

Version:
43 lines 2.95 kB
"use strict"; 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