class PactBroker::Api::Middleware::HttpDebugLogs
Constants
- EXCLUDE_HEADERS
- RACK_SESSION
Public Class Methods
new(app)
click to toggle source
# File lib/pact_broker/api/middleware/http_debug_logs.rb, line 14 def initialize(app) @app = app @logger = logger end
Public Instance Methods
call(env)
click to toggle source
# File lib/pact_broker/api/middleware/http_debug_logs.rb, line 19 def call(env) if request_for_api?(env) env_to_log = env.reject { | header, _ | header.start_with?(*EXCLUDE_HEADERS) } env_to_log["rack.session"] = env["rack.session"].to_hash if env["rack.session"] env_to_log["rack.input"] = request_body(env) if env["rack.input"] logger.debug("env", env_to_log) status, headers, body = @app.call(env) logger.debug("response", "status" => status, "headers" => headers, "body" => body) [status, headers, body] else @app.call(env) end end
request_body(env)
click to toggle source
# File lib/pact_broker/api/middleware/http_debug_logs.rb, line 33 def request_body(env) buffer = env["rack.input"] request_body = buffer.read buffer.respond_to?(:rewind) && buffer.rewind JSON.parse(request_body) rescue request_body end