class Nav::Logger::Middleware::RequestTagger

Public Class Methods

new(app) click to toggle source
# File lib/nav/logger/middleware/request_tagger.rb, line 6
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/nav/logger/middleware/request_tagger.rb, line 10
def call(env)
  setup_request_store
  store_request_var env
  @app.call env
ensure
  clear_request_store
end

Private Instance Methods

clear_request_store() click to toggle source
# File lib/nav/logger/middleware/request_tagger.rb, line 28
def clear_request_store
  RequestStore.end!
  RequestStore.clear!
end
setup_request_store() click to toggle source
# File lib/nav/logger/middleware/request_tagger.rb, line 19
def setup_request_store
  RequestStore.begin!
end
store_request_var(env) click to toggle source
# File lib/nav/logger/middleware/request_tagger.rb, line 23
def store_request_var(env)
  RequestStore[:request_id] = env["HTTP_X_REQUEST_ID"] || SecureRandom.uuid
  RequestStore[:session_id] = env["HTTP_X_SESSION_ID"] if env.key? "HTTP_X_SESSION_ID"
end