Class: Tanita::Api::Client::Auth

Inherits:
Object
  • Object
show all
Includes:
HttpHelper
Defined in:
lib/tanita/api/client.rb

Instance Method Summary collapse

Methods included from HttpHelper

#generate_uri, #parse_json, #request, #time_format

Constructor Details

#initialize(client_id: nil, client_secret: nil, redirect_uri: nil, scopes: nil) ⇒ Auth

Returns a new instance of Auth.



27
28
29
30
31
32
33
34
# File 'lib/tanita/api/client.rb', line 27

def initialize(client_id: nil, client_secret: nil, redirect_uri: nil, scopes: nil)
  config = Tanita::Api::Client.configuration
  @client_id = client_id || config.client_id
  @client_secret = client_secret || config.client_secret
  @redirect_uri = redirect_uri || config.redirect_uri
  @scopes = scopes || config.scopes
  check_required_arguments
end

Instance Method Details

#auth_uriObject



36
37
38
39
40
41
42
43
44
# File 'lib/tanita/api/client.rb', line 36

def auth_uri
  params = {
    :client_id => @client_id,
    :redirect_uri => @redirect_uri,
    :scope => @scopes.join(','),
    :response_type => 'code'
  }
  generate_uri(AUTH_URL_PATH, params)
end

#exchange_token(auth_code:) ⇒ Object

Raises:



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/tanita/api/client.rb', line 46

def exchange_token(auth_code:)
  params = {
    :client_id => @client_id,
    :client_secret => @client_secret,
    :redirect_uri => DEFAULT_REDIRECT_URI,
    :code => auth_code,
    :grant_type => 'authorization_code'
  }
  res = request(TOKEN_URL_PATH, params)
  token = parse_json(res.body)

  raise Error.new("#{self.class}.#{__method__}: #{token[:error]}") if token.key? :error

  token
end