class PayPal::PayPalHttpClient

Attributes

refresh_token[RW]

Public Class Methods

new(environment, refresh_token = nil) click to toggle source
Calls superclass method
# File lib/core/paypal_http_client.rb, line 9
def initialize(environment, refresh_token = nil)
  super(environment)
  @refresh_token = refresh_token

  add_injector(&method(:_sign_request))
  add_injector(&method(:_add_headers))
end

Public Instance Methods

_add_headers(request) click to toggle source
# File lib/core/paypal_http_client.rb, line 39
def _add_headers(request)
  request.headers["Accept-Encoding"] = "gzip"
  request.headers["sdk_name"] = "Payouts SDK"
  request.headers["sdk_version"] = VERSION
  request.headers["sdk_tech_stack"] = "Ruby" + RUBY_VERSION
  request.headers["api_integration_type"] = "PAYPALSDK"
end
_has_auth_header(request) click to toggle source
# File lib/core/paypal_http_client.rb, line 52
def _has_auth_header(request)
  request.headers.key?("Authorization")
end
_is_auth_request(request) click to toggle source
# File lib/core/paypal_http_client.rb, line 47
def _is_auth_request(request)
  request.path == '/v1/oauth2/token' ||
    request.path == '/v1/identity/openidconnect/tokenservice'
end
_sign_request(request) click to toggle source
# File lib/core/paypal_http_client.rb, line 28
def _sign_request(request)
  if (!_has_auth_header(request) && !_is_auth_request(request))
    if (!@access_token || @access_token.isExpired)
      accessTokenRequest = PayPal::AccessTokenRequest.new(@environment, @refresh_token)
      tokenResponse = execute(accessTokenRequest)
      @access_token = PayPal::AccessToken.new(tokenResponse.result)
    end
    request.headers["Authorization"] = @access_token.authorizationString()
  end
end
user_agent() click to toggle source
# File lib/core/paypal_http_client.rb, line 17
def user_agent
  library_details ||= "paypal-payouts-sdk #{VERSION}; ruby #{RUBY_VERSION}p#{RUBY_PATCHLEVEL}-#{RUBY_PLATFORM}"
  begin
    library_details << ";#{OpenSSL::OPENSSL_LIBRARY_VERSION}"
  rescue NameError
    library_details << ";OpenSSL #{OpenSSL::OPENSSL_VERSION}"
  end

  "PayPalSDK/rest-sdk-ruby #{VERSION} (#{library_details})"
end