class GovukSidekiq::APIHeaders::ServerMiddleware

Server-side middleware runs 'around' job processing.

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

Public Instance Methods

call(_worker, message, _queue) { || ... } click to toggle source
# 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