UNPKG

@directus/api

Version:

Directus is a real-time API and App dashboard for managing SQL database content

30 lines (29 loc) 938 B
/** * Sanitize query parameters. * This ensures that query params are formatted and ready to go for the services. */ import { sanitizeQuery } from '../utils/sanitize-query.js'; import { validateQuery } from '../utils/validate-query.js'; const sanitizeQueryMiddleware = async (req, _res, next) => { req.sanitizedQuery = {}; if (!req.query) return; // Skip sanitization and validation if query is empty if (Object.keys(req.query).length === 0) { Object.freeze(req.sanitizedQuery); return next(); } try { req.sanitizedQuery = await sanitizeQuery({ fields: req.query['fields'] || '*', ...req.query, }, req.schema, req.accountability || null); Object.freeze(req.sanitizedQuery); validateQuery(req.sanitizedQuery); } catch (error) { return next(error); } return next(); }; export default sanitizeQueryMiddleware;