lib/nadir/middleware/rack.rb in nadir-1.1.1 vs lib/nadir/middleware/rack.rb in nadir-1.1.2
- old
+ new
@@ -7,22 +7,31 @@
def call(env)
begin
response = @app.call(env)
rescue Exception => exception
- request = ActionDispatch::Request.new env
+ begin
+ request = ActionDispatch::Request.new env
- headers = request.headers.env.select{|k, _| k.in?(ActionDispatch::Http::Headers::CGI_VARIABLES) || k =~ /^HTTP_/}
- location = request.parameters.values_at('controller', 'action').compact.join('#')
- location = location.presence || "#{headers['REQUEST_METHOD']} #{headers['PATH_INFO']}"
+ headers = request.headers.env.select{|k, _| k.in?(ActionDispatch::Http::Headers::CGI_VARIABLES) || k =~ /^HTTP_/}
+ location = request.parameters.values_at('controller', 'action').compact.join('#')
+ location = location.presence || "#{headers['REQUEST_METHOD']} #{headers['PATH_INFO']}"
- request_params = {
- params: request.parameters,
- remote_ip: request.remote_ip,
- headers: headers,
- }
+ request_params = {
+ headers: headers,
+ params: request.parameters,
+ remote_ip: request.remote_ip,
+ user: {}
+ }
- Nadir.notify exception, location: location, request: request_params
+ if request.env['warden'] && request.env['warden'].respond_to?(:user)
+ request_params[:user][:id] = request.env['warden'].user&.id
+ end
+
+ Nadir.notify exception, location: location, request: request_params
+ rescue => e
+ Nadir.logger.error "[Nadir] Internal error: #{e.inspect}"
+ end
raise
end
response