22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/wat_catcher/rack_middleware.rb', line 22
def call(env)
@app.call(env)
rescue Exception => e
if !env["wat_report_disabled"]
begin
user, request = nil
if env["wat_report"]
user = env["wat_report"][:user]
request = env["wat_report"][:request]
else
rack_env = env
rack_request = ::Rack::Request.new(env)
url = "#{rack_request.scheme}://#{rack_request.host}"
url << ":#{rack_request.port}" unless [80, 443].include?(rack_request.port)
url << rack_request.fullpath
= {}
rack_env.each_pair do |key, value|
if key.to_s.start_with?("HTTP_") || ["CONTENT_TYPE", "CONTENT_LENGTH"].include?(key)
[key.upcase] = value
end
end
request = WatCatcher::Request.new(url, rack_request.request_method, , rack_request.session.to_hash)
end
ensure
WatCatcher::Report.new(e, user: user, request: request)
end
end
raise
end
|