mirror of
https://github.com/20kaushik02/express-sequelize-backend-template.git
synced 2025-12-06 09:34:07 +00:00
overall: formatting check, jsdoc type hints, express res/return stuff utils - changes in logger, dateformatter and removed unneeded ones .env file changes license check, readme update package.json update - version, deps, URLs server cleanup sequelize config check
47 lines
1.0 KiB
JavaScript
47 lines
1.0 KiB
JavaScript
const { validationResult } = require("express-validator");
|
|
|
|
const { getNestedValuesString } = require("../utils/jsonTransformer");
|
|
const logger = require("../utils/logger")(module);
|
|
|
|
const typedefs = require("../typedefs");
|
|
|
|
/**
|
|
* Refer: https://stackoverflow.com/questions/58848625/access-messages-in-express-validator
|
|
*
|
|
* @param {typedefs.Req} req
|
|
* @param {typedefs.Res} res
|
|
* @param {typedefs.Next} next
|
|
*/
|
|
const validate = (req, res, next) => {
|
|
const errors = validationResult(req);
|
|
if (errors.isEmpty()) {
|
|
return next();
|
|
}
|
|
|
|
const extractedErrors = [];
|
|
errors.array().forEach(err => {
|
|
if (err.type === 'alternative') {
|
|
err.nestedErrors.forEach(nestedErr => {
|
|
extractedErrors.push({
|
|
[nestedErr.path]: nestedErr.msg
|
|
});
|
|
});
|
|
} else if (err.type === 'field') {
|
|
extractedErrors.push({
|
|
[err.path]: err.msg
|
|
});
|
|
}
|
|
});
|
|
|
|
res.status(400).json({
|
|
message: getNestedValuesString(extractedErrors),
|
|
errors: extractedErrors
|
|
});
|
|
logger.warn("invalid request", { extractedErrors });
|
|
return;
|
|
}
|
|
|
|
module.exports = {
|
|
validate
|
|
};
|