UNPKG

@golemio/parkings

Version:
61 lines 3.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.v3ParkingRouter = void 0; const ParkingPolicyEnum_1 = require("../../../helpers/constants/ParkingPolicyEnum"); const V3ParkingController_1 = require("../../controllers/v3/V3ParkingController"); 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 V3ParkingRouter extends AbstractRouter_1.AbstractRouter { constructor() { super(constants_1.RouteVersion.v3, "parking"); this.allowedAccessDedicatedTo = [ "disabled", "charging", "parent", "delivery", "customer", "resident", "bus", "designated", "truck", "all", "motorcycle", "RV", ]; this.allowedParkingPolicyType = Object.values(ParkingPolicyEnum_1.ParkingPolicyEnum); this.cacheHeaderMiddleware = Di_1.ParkingsContainer.resolve(ioc_1.ContainerToken.CacheHeaderMiddleware); this.controller = new V3ParkingController_1.V3ParkingController(); this.primarySourceValidator = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.PrimarySourceValidator); 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)("primarySourceId").optional().isString(), (0, express_validator_1.query)("validFrom").optional().isISO8601().not().isArray(), (0, express_validator_1.query)("openingHoursValidFrom").optional().isISO8601(), (0, express_validator_1.query)("openingHoursValidTo").optional().isISO8601(), (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)("accessDedicatedTo").optional().isIn(this.allowedAccessDedicatedTo), (0, express_validator_1.query)("minutesBefore").optional().isInt({ min: 1 }).not().isArray(), (0, express_validator_1.query)("updatedSince").optional().isISO8601().not().isArray(), (0, express_validator_1.query)("parkingPolicy").optional().isIn(this.allowedParkingPolicyType), (0, express_validator_1.query)("activeOnly").optional().isBoolean().not().isArray(), ], (0, Validation_1.paginationLimitMiddleware)(this.path), Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(5 * 60, 5), this.controller.getAll); this.router.get("/:id/average-occupancy", [(0, express_validator_1.param)("id").exists().isString(), (0, express_validator_1.query)("isRestrictedToOpenData").optional().isBoolean().not().isArray()], Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(8 * 60 * 60, 60), this.controller.getAverageOccupancy); this.router.get("/:id", [(0, express_validator_1.param)("id").exists().isString(), (0, express_validator_1.query)("isRestrictedToOpenData").optional().isBoolean().not().isArray()], Validation_1.checkErrors, this.cacheHeaderMiddleware.getMiddleware(5 * 60, 5), this.controller.getOne); } } const v3ParkingRouter = new V3ParkingRouter(); exports.v3ParkingRouter = v3ParkingRouter; //# sourceMappingURL=V3ParkingRouter.js.map