class BRL::Auth::AuthenticatedConnection

Constants

CONTENT_TYPE

Public Class Methods

new(token_service: BRL::Auth::TokenService.new, cache: defined?(Rails) ? Rails.cache : nil, request_class: Faraday, base_url: BRL::BASE_URL) click to toggle source
Calls superclass method
# File lib/brl/auth/authenticated_connection.rb, line 9
def initialize(token_service: BRL::Auth::TokenService.new,
                cache: defined?(Rails) ? Rails.cache : nil,
                request_class: Faraday,
                base_url: BRL::BASE_URL)
  super(request_class: request_class, base_url: base_url)
  @token_service = token_service
  @cache = cache
end

Public Instance Methods

default_headers() click to toggle source
# File lib/brl/auth/authenticated_connection.rb, line 18
def default_headers
  {
    "Accept": CONTENT_TYPE,
    "Authorization": (@cache ? cached_token : auth_token),
    "Content-Type": CONTENT_TYPE
  }
end

Private Instance Methods

auth_token() click to toggle source
# File lib/brl/auth/authenticated_connection.rb, line 27
def auth_token
  token = @token_service.retrieve

  "Bearer #{token.access_token}"
end
cached_token() click to toggle source
# File lib/brl/auth/authenticated_connection.rb, line 33
def cached_token
  @cache.fetch(COOKIE_CACHE_KEY, expires_in: BRL::Auth::TOKEN_EXPIRATION) { auth_token }
end