class Oura::Client

::Oura::Client is client class.

Attributes

access_token[R]
oauth_client[R]

Public Class Methods

new(access_token: nil) click to toggle source

@param [String] access_token @return [Object<Oura::Client>]

# File lib/oura/client.rb, line 21
def initialize(access_token: nil)
  @oauth_client = OAuth2::Client.new(
    ENV['OURA_CLIENT_ID'], ENV['OURA_CLIENT_SECRET'], ::Oura::Constants::OAUTH_OPTIONS
  )
  @access_token = if ENV['DEVELOPMENT']
                    puts @oauth_client.auth_code.authorize_url(redirect_uri: ::Oura::Constants::CALLBACK_URI)
                    puts 'Please, input your secret'
                    code = gets.chomp
                    token(code)
                  else
                    raise if access_token.nil?

                    OAuth2::AccessToken.new(@oauth_client, access_token)
                  end
end

Private Instance Methods

token(code) click to toggle source

@param [String] code @return [OAuth2::AccessToken]

# File lib/oura/client.rb, line 41
def token(code)
  @oauth_client.auth_code.get_token(
    code,
    redirect_uri: ::Oura::Constants::CALLBACK_URI,
    headers: { 'Authorization' => "Bearer #{ENV['AUTHORIZE_HEADER_CODE']}" }
  )
end