@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
JavaScript
;
// 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