Class: Gecko::Client

Inherits:
Object
  • Object
show all
Extended by:
Helpers::RecordHelper
Defined in:
lib/gecko/client.rb

Overview

The Gecko::Client class

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Helpers::RecordHelper

record

Constructor Details

#initialize(client_id, client_secret, options = {}) ⇒ undefined

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Initialize a new Gecko client object with an instantiated OAuth2::Client

Parameters:

  • client_id (String)
  • client_secret (String)
  • extra (#to_hash)

    options hash to pass to the OAuth2::Client



63
64
65
# File 'lib/gecko/client.rb', line 63

def initialize(client_id, client_secret, options = {})
  setup_oauth_client(client_id, client_secret, options)
end

Instance Attribute Details

#access_tokenOAuth2::AccessToken

Access the OAuth AccessToken for this client

Returns:

  • (OAuth2::AccessToken)


52
53
54
# File 'lib/gecko/client.rb', line 52

def access_token
  @access_token
end

#oauth_clientOAuth2::Client (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Return OAuth client

Returns:

  • (OAuth2::Client)


45
46
47
# File 'lib/gecko/client.rb', line 45

def oauth_client
  @oauth_client
end

Class Method Details

.default_headersObject



116
117
118
119
120
121
122
123
# File 'lib/gecko/client.rb', line 116

def self.default_headers
  {
    'User-Agent' => ["Gecko/#{Gecko::VERSION}",
                     "OAuth2/#{OAuth2::Version}",
                     "Faraday/#{Faraday::VERSION}",
                     "Ruby/#{RUBY_VERSION}"].join(' ')
  }
end

Instance Method Details

#adapter_for(klass_name) ⇒ Gecko::Record::BaseAdapter

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Fetch the adapter for a specified Gecko::Record class

Parameters:

  • klass_name (String)

    Gecko::Record subclass name

Returns:



112
113
114
# File 'lib/gecko/client.rb', line 112

def adapter_for(klass_name)
  public_send(klass_name.to_sym)
end

#authorize_from_existing(access_token, refresh_token, expires_at) ⇒ OAuth2::AccessToken

Authorize client from existing access and refresh token

Examples:

client.authorize_from_existing("ABC", "DEF", "1393982563")

Parameters:

  • access_token (String)
  • refresh_token (String)
  • expires_at (String)

Returns:

  • (OAuth2::AccessToken)


79
80
81
82
83
84
# File 'lib/gecko/client.rb', line 79

def authorize_from_existing(access_token, refresh_token, expires_at)
  @access_token = OAuth2::AccessToken.new(oauth_client, access_token, {
    refresh_token: refresh_token,
    expires_at:    expires_at
  })
end

#authorize_from_refresh_token(refresh_token) ⇒ OAuth2::AccessToken

Authorize client by fetching a new access_token via refresh token

Examples:

client.authorize_from_refresh_token("DEF")

Parameters:

  • refresh_token (String)

Returns:

  • (OAuth2::AccessToken)


96
97
98
99
100
101
102
103
# File 'lib/gecko/client.rb', line 96

def authorize_from_refresh_token(refresh_token)
  @access_token = oauth_client.get_token({
    client_id:     oauth_client.id,
    client_secret: oauth_client.secret,
    refresh_token: refresh_token,
    grant_type:    'refresh_token'
  })
end