Class: GovukSidekiq::APIHeaders::ServerMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/govuk_sidekiq/api_headers.rb

Overview

Server-side middleware runs ‘around’ job processing.

github.com/mperham/sidekiq/wiki/Middleware#server-side-middleware

Instance Method Summary collapse

Instance Method Details

#call(worker, message, queue) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/govuk_sidekiq/api_headers.rb', line 39

def call(worker, message, queue)
  last_arg = message["args"].last

  if last_arg.is_a?(Hash) && last_arg.keys.include?("request_id")
    message["args"].pop
    request_id = last_arg["request_id"]
    authenticated_user = last_arg["authenticated_user"]
    GdsApi::GovukHeaders.set_header(:govuk_request_id, request_id)
    GdsApi::GovukHeaders.set_header(:x_govuk_authenticated_user, authenticated_user)
  end

  yield
end