class FaradayMDK::Session

Inject the MDK session contest into a request via a HTTP header, and set timeouts based on the MDK session timeout.

Public Class Methods

new(app, mdk_session) click to toggle source
Calls superclass method
# File lib/faraday_mdk.rb, line 7
def initialize(app, mdk_session)
  super(app)
  @mdk_session = mdk_session
end

Public Instance Methods

call(request_env) click to toggle source
# File lib/faraday_mdk.rb, line 12
def call(request_env)
  request_env[:request_headers]["X-MDK-CONTEXT"] = @mdk_session.externalize
  if @mdk_session.getRemainingTime != nil
    timeout = Integer(@mdk_session.getRemainingTime)
    # Rounding down means 0.99 will end up as 0 second timeout, so set
    # minimum timeout of 1 second:
    if timeout == 0
      timeout = 1
    end
    request_env[:request][:timeout] = timeout
    request_env[:request][:open_timeout] = timeout
  end
  @app.call(request_env)
end