class Faraday::OAuth2CachedToken
Constants
- INVALID_TOKEN_STATUS
Attributes
provider[R]
Public Class Methods
new(app, options = {})
click to toggle source
Calls superclass method
# File lib/faraday/oauth2_cached_token.rb, line 11 def initialize(app, options = {}) super(app) @provider = options[:provider] || Provider.new(options[:provider_options] || {}) @logger = options[:logger] end
Public Instance Methods
call(request_env)
click to toggle source
# File lib/faraday/oauth2_cached_token.rb, line 17 def call(request_env) inject_header(request_env, @provider.get_token.headers) @app.call(request_env).on_complete do |response_env| on_complete(request_env, response_env) end end
Private Instance Methods
inject_header(request_env, header)
click to toggle source
# File lib/faraday/oauth2_cached_token.rb, line 35 def inject_header(request_env, header) request_env[:request_headers].merge!(header) end
on_complete(request_env, response_env)
click to toggle source
# File lib/faraday/oauth2_cached_token.rb, line 27 def on_complete(request_env, response_env) if response_env.status == INVALID_TOKEN_STATUS @logger.try(:warn, 'Invalid Token. refreshing and retrying request...') inject_header(request_env, @provider.get_fresh_token.headers) @app.call(request_env) end end