Module: Plaid
- Defined in:
- lib/zen-plaid.rb,
lib/zen-plaid/auth.rb,
lib/zen-plaid/util.rb,
lib/zen-plaid/entity.rb,
lib/zen-plaid/balance.rb,
lib/zen-plaid/connect.rb,
lib/zen-plaid/version.rb,
lib/zen-plaid/category.rb,
lib/zen-plaid/institution.rb,
lib/zen-plaid/configuration.rb
Defined Under Namespace
Modules: Util
Classes: Auth, Balance, Category, Configuration, Connect, Entity, Institution
Constant Summary
collapse
- VERSION =
'0.0.2'
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.configuration ⇒ Object
Returns the value of attribute configuration.
3
4
5
|
# File 'lib/zen-plaid/configuration.rb', line 3
def configuration
@configuration
end
|
Class Method Details
.api_base ⇒ Object
39
40
41
42
43
44
45
|
# File 'lib/zen-plaid.rb', line 39
def self.api_base
if Plaid.configuration.environment == 'production'
'https://api.plaid.com/'
else
'https://tartan.plaid.com/'
end
end
|
.api_url(url = '') ⇒ Object
35
36
37
|
# File 'lib/zen-plaid.rb', line 35
def self.api_url(url='')
api_base + url
end
|
10
11
12
|
# File 'lib/zen-plaid/configuration.rb', line 10
def self.configure
yield(configuration)
end
|
.handle_api_error(rcode, rbody) ⇒ Object
21
22
23
24
25
|
# File 'lib/zen-plaid.rb', line 21
def self.handle_api_error(rcode, rbody)
error_obj = Util.symbolize_names(Oj.load(rbody))
{code: rcode, error: error_obj}
end
|
.parse(response) ⇒ Object
27
28
29
30
31
32
33
|
# File 'lib/zen-plaid.rb', line 27
def self.parse(response)
begin
response = Util.symbolize_names(Oj.load(response.body))
rescue Oj::ParseError
raise general_api_error(response.code, response.body)
end
end
|
.request(method, url, params = {}, headers = {}) ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/zen-plaid.rb', line 47
def self.request(method, url, params={}, ={})
request_opts = { verify_ssl: false }
url = api_url(url)
params = params.merge!(auth)
case method.to_s.downcase.to_sym
when :get, :head, :delete
url += "#{URI.parse(url).query ? '&' : '?'}#{uri_encode(params)}" if params && params.any?
payload = nil
else
payload = uri_encode(params)
end
request_opts.update(headers: ,
method: method,
open_timeout: 30,
payload: payload,
url: url,
timeout: 80)
begin
response = RestClient::Request.execute(request_opts)
return {code: response.code, message: parse(response)}
rescue RestClient::ExceptionWithResponse => e
return handle_api_error(e.http_code, e.http_body)
end
end
|
.uri_encode(params) ⇒ Object
16
17
18
19
|
# File 'lib/zen-plaid.rb', line 16
def self.uri_encode(params)
Util.flatten_params(params).
map { |k,v| "#{k}=#{Util.url_encode(v)}" }.join('&')
end
|