express-sequelize-autocrud
Version:
Express Sequelize AutoCRUD: Simplify API development with automatic CRUD routes for Sequelize models in Express.js.
37 lines • 1.36 kB
JavaScript
import { isIncludeExcludeMatchCriteria } from './config.js';
import { crudError } from '../utils.js';
export const checkBodyFields = (bodyFields) => {
return async (req, res, next) => {
const toTest = Object.keys(req.body);
const { result, problematicFields } = await isIncludeExcludeMatchCriteria(bodyFields, toTest, req, res);
if (!result) {
res
.status(400)
.json(crudError(`Can't use [${problematicFields.join(', ')}] in body`));
}
else {
next();
}
};
};
export const checkBodyArrayFields = (bodyFields) => {
return async (req, res, next) => {
if (!Array.isArray(req.body)) {
res
.status(400)
.json({ success: false, message: 'Request body does not an array!' });
return;
}
const results = await Promise.all(req.body.map(body => isIncludeExcludeMatchCriteria(bodyFields, Object.keys(body), req, res)));
const filteredResults = results.filter(r => !r.result);
if (filteredResults.length > 0) {
res
.status(400)
.json(crudError(`Can't use [${filteredResults[0].problematicFields.join(', ')}] in body`));
}
else {
next();
}
};
};
//# sourceMappingURL=body.js.map