initial commit
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative '../middleware'
|
||||
require_relative '../environment'
|
||||
require_relative '../http/error'
|
||||
|
||||
module FO::Middleware
|
||||
module ErrorHandler
|
||||
extend FO::Middleware
|
||||
|
||||
def self.dispatch(request, response, app)
|
||||
app.call(request.env)
|
||||
rescue FO::HTTP::Error => e
|
||||
response
|
||||
.status(e.status)
|
||||
.template('error', {status: e.status, message: e.message, error: e})
|
||||
rescue => e
|
||||
warn "Uncaught exception: #{e.message}"
|
||||
warn e.backtrace
|
||||
message = FO::Environment.is_prod? ?
|
||||
'Something went very wrong ... please try again later.' :
|
||||
e.message
|
||||
response
|
||||
.status(500)
|
||||
.template('error', {status: 500, message: message, error: e})
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user