Class: FitbitClient::AuthorizationGrantFlow

Inherits:
Object
  • Object
show all
Defined in:
lib/fitbit_client/authorization_grant_flow.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ AuthorizationGrantFlow

Returns a new instance of AuthorizationGrantFlow.



7
8
9
10
# File 'lib/fitbit_client/authorization_grant_flow.rb', line 7

def initialize(options = {})
  @client_id = options.fetch(:client_id, FitbitClient.client_id)
  @client_secret = options.fetch(:client_secret, FitbitClient.client_secret)
end

Instance Attribute Details

#client_idObject (readonly)

Returns the value of attribute client_id.



5
6
7
# File 'lib/fitbit_client/authorization_grant_flow.rb', line 5

def client_id
  @client_id
end

#client_secretObject (readonly)

Returns the value of attribute client_secret.



5
6
7
# File 'lib/fitbit_client/authorization_grant_flow.rb', line 5

def client_secret
  @client_secret
end

Instance Method Details

#client_identification_uri(redirect_url, scopes) ⇒ Object



20
21
22
23
# File 'lib/fitbit_client/authorization_grant_flow.rb', line 20

def client_identification_uri(redirect_url, scopes)
  params = URI.encode("?response_type=code&client_id=#{FitbitClient.client_id}&scope=#{scopes}")
  "#{FitbitClient::OAUTH2_CLIENT_OPTIONS[:authorize_url]}/#{params}&redirect_uri=#{redirect_uri_param(redirect_url)}"
end

#get_token(code, redirect_url) ⇒ Object



12
13
14
# File 'lib/fitbit_client/authorization_grant_flow.rb', line 12

def get_token(code, redirect_url)
  oauth2_client.get_token(grant_type: 'authorization_code', code: code, redirect_uri: redirect_url)
end

#oauth2_clientObject



16
17
18
# File 'lib/fitbit_client/authorization_grant_flow.rb', line 16

def oauth2_client
  @oauth2_client ||= OAuth2::Client.new(client_id, client_secret, OAUTH2_CLIENT_OPTIONS)
end