Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 33 additions & 17 deletions src/routes/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,26 +94,42 @@ module.exports = (app) => {

// Global error handling middleware, should be present in last in the stack of a middleware's
app.use((error, req, res, next) => {
const status = error.statusCode || 500
const responseCode = error.responseCode || 'SERVER_ERROR'
const message = error.message || ''
let errorData = []
if (error.statusCode || error.responseCode || error.message) {
// Detailed error response
const status = error.statusCode || 500
const responseCode = error.responseCode || 'SERVER_ERROR'
const message = error.message || 'Oops! Something Went Wrong.'
const errorData = error.data || []

if (error.data) {
errorData = error.data
}
logger.info(message, { message: error })

const options = {
responseCode,
error: errorData,
meta: { correlation: correlationId.getId() },
}

const interpolationOptions = {
...error?.interpolation,
interpolation: { escapeValue: false },
}

options.message = error.interpolation ? req.t(message, interpolationOptions) : req.t(message)

if (status == 500) {
logger.error('Server error!', { message: error, triggerNotification: true })
res.status(status).json(options)
} else {
logger.info(message, { message: error })
}
// Limited info response
const errorMessage = 'Oops! Something Went Wrong.'

res.status(status).json({
responseCode,
message,
error: errorData,
meta: { correlation: correlationId.getId() },
})
logger.error('Server error!', { message: error.stack, triggerNotification: true })
console.error('Error occurred on the server:')
console.error(error)

res.status(500).json({
responseCode: 'SERVER_ERROR',
message: errorMessage,
meta: { correlation: correlationId.getId() },
})
}
})
}