Class: Gritz::Middleware::RequestId

Inherits:
Object
  • Object
show all
Defined in:
/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/middleware/request_id.rb

Overview

Assigns and echoes a correlation ID for each RPC.

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ RequestId

Returns a new instance of RequestId.



10
11
12
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/middleware/request_id.rb', line 10

def initialize(app)
  @app = app
end

Instance Method Details

#call(context) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/middleware/request_id.rb', line 14

def call(context)
  incoming = Array(context.["x-request-id"]).first
  context.request_id = incoming.is_a?(String) && incoming.match?(/\A[\x21-\x7e]{1,128}\z/) ? incoming : SecureRandom.uuid
   = { "x-request-id" => context.request_id }
  if context.call.respond_to?(:merge_initial_metadata)
    context.call.()
  else
    context.call.()
  end
  @app.call(context)
end