Class: Dwolla::OAuth
- Inherits:
-
Object
- Object
- Dwolla::OAuth
- Defined in:
- lib/dwolla/oauth.rb
Class Method Summary collapse
- .catalog(token = nil) ⇒ Object
- .get_auth_url(redirect_uri = nil, scope = Dwolla::scope, verified_account = false) ⇒ Object
- .get_token(code = nil, redirect_uri = nil) ⇒ Object
- .refresh_auth(refresh_token = nil) ⇒ Object
Class Method Details
.catalog(token = nil) ⇒ Object
67 68 69 70 71 72 73 |
# File 'lib/dwolla/oauth.rb', line 67 def self.catalog(token=nil) resp = Dwolla.request(:get, '/catalog', {}, {}, token, false, false) return "No data received." unless resp.is_a?(Hash) raise APIError.new(resp['Message']) unless resp.has_key?('_links') return resp['_links'] end |
.get_auth_url(redirect_uri = nil, scope = Dwolla::scope, verified_account = false) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/dwolla/oauth.rb', line 3 def self.get_auth_url(redirect_uri=nil, scope=Dwolla::scope, verified_account=false) raise AuthenticationError.new('No Api Key Provided.') unless Dwolla::api_key params = { :scope => scope, :response_type => 'code', :client_id => Dwolla::api_key, :verified_account => verified_account } params['redirect_uri'] = redirect_uri unless redirect_uri.nil? uri = Addressable::URI.new uri.query_values = params if Dwolla::debug and Dwolla::sandbox puts "[DWOLLA SANDBOX MODE OPERATION]" end return auth_url + '?' + uri.query end |
.get_token(code = nil, redirect_uri = nil) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/dwolla/oauth.rb', line 25 def self.get_token(code=nil, redirect_uri=nil) raise MissingParameterError.new('No Code Provided.') if code.nil? params = { :grant_type => 'authorization_code', :code => code } # I realize this is ugly, but the unit tests fail # if the key is accessed["like_this"] because the # hash is compared with "quotes" and not :like_this. # It may very well be my Ruby version # TODO: Revisit this (params = params.merge({:redirect_uri => redirect_uri})) unless redirect_uri.nil? resp = Dwolla.request(:post, token_url, params, {}, false, false, true) # TODO: Revisit this to make it more unit test friendly, fails ['error_description'] due to # key not existing, same on L58 return "No data received." unless resp.is_a?(Hash) raise APIError.new(resp['error_description']) unless resp.has_key?('access_token') and resp.has_key?('refresh_token') return resp end |
.refresh_auth(refresh_token = nil) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/dwolla/oauth.rb', line 51 def self.refresh_auth(refresh_token=nil) raise MissingParameterError.new('No Refresh Token Provided') if refresh_token.nil? params = { :grant_type => 'refresh_token', :refresh_token => refresh_token } resp = Dwolla.request(:post, token_url, params, {}, false, false, true) return "No data received." unless resp.is_a?(Hash) raise APIError.new(resp['error_description']) unless resp.has_key?('access_token') and resp.has_key?('refresh_token') return resp end |