Centralize common headers, this will help up to move biz metrics out of the process

This commit is contained in:
Daniel García Aubert
2020-06-04 17:45:15 +02:00
parent b2da00900f
commit adeffd2018
6 changed files with 162 additions and 34 deletions
+16 -12
View File
@@ -1,5 +1,7 @@
'use strict';
const setCommonHeaders = require('../../utils/common-headers');
module.exports = function errorMiddleware (/* options */) {
return function error (err, req, res, next) {
const { logger } = res.locals;
@@ -7,21 +9,23 @@ module.exports = function errorMiddleware (/* options */) {
logger.error({ error: errors });
const errorResponseBody = {
errors: errors.map(errorMessage),
errors_with_context: errors.map(errorMessageWithContext)
};
setCommonHeaders(req, res, () => {
const errorResponseBody = {
errors: errors.map(errorMessage),
errors_with_context: errors.map(errorMessageWithContext)
};
// If a callback was requested, force status to 200
res.status(req.query.callback ? 200 : findStatusCode(errors[0]));
// If a callback was requested, force status to 200
res.status(req.query.callback ? 200 : findStatusCode(errors[0]));
if (req.query && req.query.callback) {
res.jsonp(errorResponseBody);
} else {
res.json(errorResponseBody);
}
if (req.query && req.query.callback) {
res.jsonp(errorResponseBody);
} else {
res.json(errorResponseBody);
}
return next();
return next();
});
};
};