class Tanita::Api::Client::Auth
Public Class Methods
new(client_id: nil, client_secret: nil, redirect_uri: nil, scopes: nil)
click to toggle source
# 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
Public Instance Methods
auth_uri()
click to toggle source
# 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:)
click to toggle source
# 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
Private Instance Methods
check_required_arguments()
click to toggle source
# File lib/tanita/api/client.rb, line 64 def check_required_arguments raise Error.new("param:'client_id' is required.'") if @client_id.nil? raise Error.new("param:'client_secret' is required.'") if @client_secret.nil? raise Error.new("param:'redirect_uri' is required.'") if @redirect_uri.nil? raise Error.new("param:'scopes' is required.'") if @scopes.nil? end