33 lines
1.0 KiB
JavaScript
33 lines
1.0 KiB
JavaScript
const { isObject } = require("lodash");
|
|
|
|
const validateCanvasInputMiddleware = (req, res, next) => {
|
|
const { values, keys, override, w, h } = req.body;
|
|
|
|
if (!Array.isArray(values) || !Array.isArray(keys)) {
|
|
return res.status(400).send("Invalid input: 'values' and 'keys' must be arrays.");
|
|
}
|
|
|
|
if (values.some((value) => typeof value !== "number")) {
|
|
return res.status(400).send("Invalid input: 'values' must be an array of numbers.");
|
|
}
|
|
|
|
if (keys.some((key) => typeof key !== "string")) {
|
|
return res.status(400).send("Invalid input: 'keys' must be an array of strings.");
|
|
}
|
|
|
|
if (override && !isObject(override)) {
|
|
return res.status(400).send("Override must be an object");
|
|
}
|
|
|
|
if (w && (!Number.isFinite(w) || w <= 0)) {
|
|
return res.status(400).send("Width must be a positive number");
|
|
}
|
|
if (h && (!Number.isFinite(h) || h <= 0)) {
|
|
return res.status(400).send("Height must be a positive number");
|
|
}
|
|
|
|
next(); // Proceed to the next middleware or route handler
|
|
};
|
|
|
|
module.exports = validateCanvasInputMiddleware;
|