class Hanami::Events::CloudPubsub::Middleware::RequestId

Middleware used for logging useful information about an event

Public Instance Methods

call(msg, **opts) { |**opts| ... } click to toggle source
# File lib/hanami/events/cloud_pubsub/middleware/request_id.rb, line 15
def call(msg, **opts)
  setup_request_id(msg)
  yield(**opts)
ensure
  clear_request_id(msg)
end

Private Instance Methods

clear_request_id(_msg) click to toggle source
# File lib/hanami/events/cloud_pubsub/middleware/request_id.rb, line 32
def clear_request_id(_msg)
  ::RequestId.request_id = nil
rescue StandardError => e
  warn "Could not clear request_id (#{e.message})"
end
setup_request_id(msg) click to toggle source
# File lib/hanami/events/cloud_pubsub/middleware/request_id.rb, line 24
def setup_request_id(msg)
  id = msg.attributes['request_id'] || msg.attributes[:request_id]

  ::RequestId.request_id = id || SecureRandom.uuid
rescue StandardError => e
  warn "Could not set request_id (#{e.message})"
end