UNPKG

@substrate/api-sidecar

Version:

REST service that makes it easy to interact with blockchain nodes built using Substrate's FRAME framework.

43 lines 1.96 kB
"use strict"; // Copyright 2017-2025 Parity Technologies (UK) Ltd. // This file is part of Substrate API Sidecar. // // Substrate API Sidecar is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. Object.defineProperty(exports, "__esModule", { value: true }); exports.validateBooleanMiddleware = void 0; const http_errors_1 = require("http-errors"); /** * Validate that the given query params that are expected to be booleans are correct. * * @param queryParams An array of queryParams to check for. These are passed in at the controller level. */ const validateBooleanMiddleware = (queryParams) => { return (req, _res, next) => { const errQueryParams = []; for (const key of queryParams) { if (req.query[key]) { const queryParamVal = typeof req.query[key] === 'string' ? req.query[key].toLowerCase() : ''; if (!(queryParamVal === 'true' || queryParamVal === 'false')) { errQueryParams.push(`Query parameter: ${key} has an invalid boolean value of ${req.query[key]}`); } } } if (errQueryParams.length > 0) { return next(new http_errors_1.BadRequest(errQueryParams.join(' - '))); } return next(); }; }; exports.validateBooleanMiddleware = validateBooleanMiddleware; //# sourceMappingURL=validateBooleanMiddleware.js.map