class RescueTime::Client

Public Class Methods

new(client_id, client_secret, redirect_uri) click to toggle source
# File lib/rescue_time_client.rb, line 9
def initialize(client_id, client_secret, redirect_uri)
  @oauth_client = Auth.getClient(client_id, client_secret)
  @redirect_uri = redirect_uri
end

Public Instance Methods

get_auth_url(scopes = []) click to toggle source
# File lib/rescue_time_client.rb, line 14
def get_auth_url(scopes = [])
  scopes = DEFAULT_SCOPE if scopes.empty?
  required_scopes = scopes.join(' ')
  @oauth_client.auth_code.authorize_url(redirect_uri: @redirect_uri, 
                                        scope: required_scopes)
end
get_token_from_code(code) click to toggle source
# File lib/rescue_time_client.rb, line 25
def get_token_from_code(code)
  @token = @oauth_client.auth_code.get_token(code, 
                                             redirect_uri: @redirect_uri, 
                                             headers: {'Authorization' => 'Basic some_password'}
                                             )
end
method_missing(method_sym, *arguments, &block) click to toggle source

sexy

Calls superclass method
# File lib/rescue_time_client.rb, line 34
def method_missing(method_sym, *arguments, &block)
  if method_sym.to_s =~ /^fetch_(.*)$/
    api_endpoint = "/api/oauth/#{$1}"
    params = arguments[0] || {}
    puts "Fetching #{api_endpoint} with params #{params}}"
    resp = @token.get(api_endpoint, params.merge(default_params))
    Response.process(resp)
  else
    super
  end
end
set_token(token) click to toggle source
# File lib/rescue_time_client.rb, line 21
def set_token(token)
  @token = Auth.constructToken(@oauth_client, token)
end

Private Instance Methods

default_params() click to toggle source
# File lib/rescue_time_client.rb, line 48
def default_params
  {format: 'json'}
end