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