From 1bf91030c6fc036d3e609532b15474818f1cfbf7 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Mon, 23 Nov 2015 21:34:21 +0100 Subject: [PATCH] format express-validator errors --- test/api/v3/unit/middlewares/errorHandler.test.js | 6 ++++-- website/src/middlewares/api-v3/errorHandler.js | 10 ++++++++-- website/src/middlewares/api-v3/index.js | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/test/api/v3/unit/middlewares/errorHandler.test.js b/test/api/v3/unit/middlewares/errorHandler.test.js index 790eaf448d..80e1ab08d1 100644 --- a/test/api/v3/unit/middlewares/errorHandler.test.js +++ b/test/api/v3/unit/middlewares/errorHandler.test.js @@ -103,7 +103,7 @@ describe('errorHandler', () => { }); 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); @@ -114,7 +114,9 @@ describe('errorHandler', () => { expect(res.json).to.be.calledWith({ error: 'BadRequest', message: 'Invalid request parameters.', - errors: error, + errors: [ + {param: error[0].param, value: error[0].value, message: error[0].msg} + ], }); }); diff --git a/website/src/middlewares/api-v3/errorHandler.js b/website/src/middlewares/api-v3/errorHandler.js index 59bdca98d5..3844caaa88 100644 --- a/website/src/middlewares/api-v3/errorHandler.js +++ b/website/src/middlewares/api-v3/errorHandler.js @@ -35,7 +35,13 @@ export default function errorHandler (err, req, res, next) { // eslint-disable-l // Handle errors by express-validator if (Array.isArray(err) && err[0].param && err[0].msg) { 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 @@ -43,8 +49,8 @@ export default function errorHandler (err, req, res, next) { // eslint-disable-l responseErr = new BadRequest(err.message); responseErr.errors = map(err.errors, (mongooseErr) => { return { - path: mongooseErr.path, message: mongooseErr.message, + path: mongooseErr.path, value: mongooseErr.value, }; }); diff --git a/website/src/middlewares/api-v3/index.js b/website/src/middlewares/api-v3/index.js index 56d78add8e..fdb2db7bd8 100644 --- a/website/src/middlewares/api-v3/index.js +++ b/website/src/middlewares/api-v3/index.js @@ -21,7 +21,7 @@ export default function attachMiddlewares (app) { extended: true, // Uses 'qs' library as old connect middleware })); app.use(bodyParser.json()); - app.use(expressValidator()); // TODO config + app.use(expressValidator()); app.use(analytics); app.use(responseHandler); app.use(getUserLanguage);