mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 14:17:22 +01:00
format express-validator errors
This commit is contained in:
@@ -103,7 +103,7 @@ describe('errorHandler', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('handle express-validator errors', () => {
|
it('handle express-validator errors', () => {
|
||||||
let error = [{param: 'param', msg: 'invalid param'}];
|
let error = [{param: 'param', msg: 'invalid param', value: 123}];
|
||||||
|
|
||||||
errorHandler(error, req, res, next);
|
errorHandler(error, req, res, next);
|
||||||
|
|
||||||
@@ -114,7 +114,9 @@ describe('errorHandler', () => {
|
|||||||
expect(res.json).to.be.calledWith({
|
expect(res.json).to.be.calledWith({
|
||||||
error: 'BadRequest',
|
error: 'BadRequest',
|
||||||
message: 'Invalid request parameters.',
|
message: 'Invalid request parameters.',
|
||||||
errors: error,
|
errors: [
|
||||||
|
{param: error[0].param, value: error[0].value, message: error[0].msg}
|
||||||
|
],
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,13 @@ export default function errorHandler (err, req, res, next) { // eslint-disable-l
|
|||||||
// Handle errors by express-validator
|
// Handle errors by express-validator
|
||||||
if (Array.isArray(err) && err[0].param && err[0].msg) {
|
if (Array.isArray(err) && err[0].param && err[0].msg) {
|
||||||
responseErr = new BadRequest(res.t('invalidReqParams'));
|
responseErr = new BadRequest(res.t('invalidReqParams'));
|
||||||
responseErr.errors = err; // TODO format
|
responseErr.errors = err.map((paramErr) => {
|
||||||
|
return {
|
||||||
|
message: paramErr.msg,
|
||||||
|
param: paramErr.param,
|
||||||
|
value: paramErr.value,
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle mongoose validation errors
|
// Handle mongoose validation errors
|
||||||
@@ -43,8 +49,8 @@ export default function errorHandler (err, req, res, next) { // eslint-disable-l
|
|||||||
responseErr = new BadRequest(err.message);
|
responseErr = new BadRequest(err.message);
|
||||||
responseErr.errors = map(err.errors, (mongooseErr) => {
|
responseErr.errors = map(err.errors, (mongooseErr) => {
|
||||||
return {
|
return {
|
||||||
path: mongooseErr.path,
|
|
||||||
message: mongooseErr.message,
|
message: mongooseErr.message,
|
||||||
|
path: mongooseErr.path,
|
||||||
value: mongooseErr.value,
|
value: mongooseErr.value,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export default function attachMiddlewares (app) {
|
|||||||
extended: true, // Uses 'qs' library as old connect middleware
|
extended: true, // Uses 'qs' library as old connect middleware
|
||||||
}));
|
}));
|
||||||
app.use(bodyParser.json());
|
app.use(bodyParser.json());
|
||||||
app.use(expressValidator()); // TODO config
|
app.use(expressValidator());
|
||||||
app.use(analytics);
|
app.use(analytics);
|
||||||
app.use(responseHandler);
|
app.use(responseHandler);
|
||||||
app.use(getUserLanguage);
|
app.use(getUserLanguage);
|
||||||
|
|||||||
Reference in New Issue
Block a user