From 17105f66f4464aa5945bc7a0a4953a9d06adc47a Mon Sep 17 00:00:00 2001 From: Mahdi Dibaiee Date: Fri, 26 Aug 2016 13:15:15 +0430 Subject: [PATCH] feat(errors): parse sequelize errors and use the relevant Boom error type --- src/error.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/error.js b/src/error.js index af49e86..dcdfe20 100644 --- a/src/error.js +++ b/src/error.js @@ -1,4 +1,8 @@ +<<<<<<< b18479e02e3d47da4e40369a8132e07125eb96a3 import Boom from 'boom'; +======= +import { wrap } from 'boom'; +>>>>>>> whatever export default (target, key, descriptor) => { const fn = descriptor.value; @@ -7,6 +11,7 @@ export default (target, key, descriptor) => { try { await fn(request, reply); } catch (e) { +<<<<<<< b18479e02e3d47da4e40369a8132e07125eb96a3 if (e.original) { const { code, detail } = e.original; @@ -45,6 +50,23 @@ export default (target, key, descriptor) => { reply(err); } else { reply(e); +======= + const { code, detail } = e.original; + + // pg error codes https://www.postgresql.org/docs/9.5/static/errcodes-appendix.html + if (code && (code.startsWith('22') || code.startsWith('23'))) { + const error = wrap(e, 406); + + // detail tends to be more specific information. So, if we have it, use. + if (detail) { + error.message += `: ${detail}`; + error.reformat(); + } + + reply(error); + } else { + reply(wrap(e)); +>>>>>>> whatever } } };