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