Class: RubyEtsy::Client
- Inherits:
-
Object
- Object
- RubyEtsy::Client
- Defined in:
- lib/ruby-etsy/client.rb
Constant Summary collapse
- REFRESH_TOKEN_URL =
'https://api.etsy.com/v3/public/oauth/token'
- V3_URL =
'https://openapi.etsy.com/v3/application'
Instance Attribute Summary collapse
-
#access_token ⇒ Object
Returns the value of attribute access_token.
-
#api_key ⇒ Object
Returns the value of attribute api_key.
-
#api_secret ⇒ Object
Returns the value of attribute api_secret.
-
#refresh_token ⇒ Object
Returns the value of attribute refresh_token.
-
#shop_id ⇒ Object
Returns the value of attribute shop_id.
Instance Method Summary collapse
- #action(url, payload: {}, query_params: {}, http_method: :post) ⇒ Object
-
#initialize(access_token:, refresh_token:, api_key:, api_secret:, shop_id:) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(access_token:, refresh_token:, api_key:, api_secret:, shop_id:) ⇒ Client
Returns a new instance of Client.
17 18 19 20 21 22 23 24 25 |
# File 'lib/ruby-etsy/client.rb', line 17 def initialize(access_token:, refresh_token:, api_key:, api_secret:, shop_id:) RubyEtsy.configure @access_token = access_token || RubyEtsy.config.access_token @refresh_token = refresh_token || RubyEtsy.config.refresh_token @api_key = api_key || RubyEtsy.config.api_key @api_secret = api_secret || RubyEtsy.config.api_secret @shop_id = shop_id || RubyEtsy.config.shop_id end |
Instance Attribute Details
#access_token ⇒ Object
Returns the value of attribute access_token.
15 16 17 |
# File 'lib/ruby-etsy/client.rb', line 15 def access_token @access_token end |
#api_key ⇒ Object
Returns the value of attribute api_key.
15 16 17 |
# File 'lib/ruby-etsy/client.rb', line 15 def api_key @api_key end |
#api_secret ⇒ Object
Returns the value of attribute api_secret.
15 16 17 |
# File 'lib/ruby-etsy/client.rb', line 15 def api_secret @api_secret end |
#refresh_token ⇒ Object
Returns the value of attribute refresh_token.
15 16 17 |
# File 'lib/ruby-etsy/client.rb', line 15 def refresh_token @refresh_token end |
#shop_id ⇒ Object
Returns the value of attribute shop_id.
15 16 17 |
# File 'lib/ruby-etsy/client.rb', line 15 def shop_id @shop_id end |
Instance Method Details
#action(url, payload: {}, query_params: {}, http_method: :post) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/ruby-etsy/client.rb', line 27 def action(url, payload: {}, query_params: {}, http_method: :post) headers = { 'User-Agent': "RubyEtsy client v#{RubyEtsy::VERSION})", 'x-api-key': api_key, 'Authorization': "Bearer #{access_token}" } response = ::RestClient::Request.execute( method: http_method, url: construct_url(url, query_params), payload: payload.to_json, headers: headers, timeout: 5, verify_ssl: ::OpenSSL::SSL::VERIFY_NONE ) ::HttpParser.parse(response) rescue RestClient::Unauthorized => e puts "RESCUED UNATHORIZED" token = send :refresh_token raise RefreshTokenError.new('Could not refresh token') unless token.success? end |