Class: PayPal::PayPalHttpClient
- Inherits:
-
PayPalHttp::HttpClient
- Object
- PayPalHttp::HttpClient
- PayPal::PayPalHttpClient
- Defined in:
- lib/paypal/paypal_http_client.rb
Instance Attribute Summary collapse
-
#refresh_token ⇒ Object
Returns the value of attribute refresh_token.
Instance Method Summary collapse
- #_add_headers(request) ⇒ Object
- #_has_auth_header(request) ⇒ Object
- #_is_auth_request(request) ⇒ Object
- #_sign_request(request) ⇒ Object
-
#initialize(environment, refresh_token = nil) ⇒ PayPalHttpClient
constructor
A new instance of PayPalHttpClient.
- #user_agent ⇒ Object
Constructor Details
#initialize(environment, refresh_token = nil) ⇒ PayPalHttpClient
Returns a new instance of PayPalHttpClient.
10 11 12 13 14 15 16 |
# File 'lib/paypal/paypal_http_client.rb', line 10 def initialize(environment, refresh_token = nil) super(environment) @refresh_token = refresh_token add_injector { |r| _sign_request(r) } add_injector { |r| _add_headers(r) } end |
Instance Attribute Details
#refresh_token ⇒ Object
Returns the value of attribute refresh_token.
8 9 10 |
# File 'lib/paypal/paypal_http_client.rb', line 8 def refresh_token @refresh_token end |
Instance Method Details
#_add_headers(request) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/paypal/paypal_http_client.rb', line 40 def _add_headers(request) request.headers["Accept-Encoding"] = "gzip" request.headers["sdk_name"] = "Checkout SDK" request.headers["sdk_tech_stack"] = "Ruby#{RUBY_VERSION}" request.headers["api_integration_type"] = "PAYPALSDK" end |
#_has_auth_header(request) ⇒ Object
52 53 54 |
# File 'lib/paypal/paypal_http_client.rb', line 52 def _has_auth_header(request) request.headers.key?("Authorization") end |
#_is_auth_request(request) ⇒ Object
47 48 49 50 |
# File 'lib/paypal/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) ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/paypal/paypal_http_client.rb', line 29 def _sign_request(request) return if _has_auth_header(request) || _is_auth_request(request) if !@access_token || @access_token.expired? access_token_request = PayPal::AccessTokenRequest.new(@environment, @refresh_token) token_response = execute(access_token_request) @access_token = PayPal::AccessToken.new(token_response.result) end request.headers["Authorization"] = @access_token. end |
#user_agent ⇒ Object
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/paypal/paypal_http_client.rb', line 18 def user_agent library_details ||= "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-FORK/rest-sdk-ruby (#{library_details})" end |