plaid 4.1.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.circleci/config.yml +23 -0
- data/.rubocop.yml +18 -0
- data/CHANGELOG.md +7 -0
- data/CONTRIBUTING.md +1 -1
- data/Gemfile.lock +58 -0
- data/README.md +50 -39
- data/Rakefile +7 -10
- data/lib/plaid.rb +40 -1
- data/lib/plaid/client.rb +72 -63
- data/lib/plaid/errors.rb +46 -41
- data/lib/plaid/middleware.rb +11 -6
- data/lib/plaid/models.rb +683 -0
- data/lib/plaid/products/accounts.rb +38 -35
- data/lib/plaid/products/auth.rb +32 -19
- data/lib/plaid/products/base_product.rb +69 -0
- data/lib/plaid/products/categories.rb +11 -8
- data/lib/plaid/products/credit_details.rb +31 -19
- data/lib/plaid/products/identity.rb +27 -11
- data/lib/plaid/products/income.rb +22 -11
- data/lib/plaid/products/institutions.rb +50 -28
- data/lib/plaid/products/item.rb +251 -136
- data/lib/plaid/products/processor.rb +104 -34
- data/lib/plaid/products/sandbox.rb +21 -20
- data/lib/plaid/products/transactions.rb +50 -45
- data/lib/plaid/version.rb +1 -1
- data/plaid.gemspec +10 -8
- metadata +51 -19
- data/circle.yml +0 -9
@@ -1,48 +1,118 @@
|
|
1
1
|
module Plaid
|
2
|
-
# Public: Class used to call the
|
3
|
-
class
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
# Public: Class used to call the Stripe sub-product.
|
3
|
+
class Stripe < BaseProduct
|
4
|
+
# Public: Class used to call the BankAccountToken sub-product.
|
5
|
+
class BankAccountToken < BaseProduct
|
6
|
+
# Public: Creates a Stripe bank account token from an access_token.
|
7
|
+
#
|
8
|
+
# Does a POST /processor/stripe/bank_account_token/create call which can
|
9
|
+
# be used to generate a Stripe bank account token for a given account
|
10
|
+
# ID.
|
11
|
+
#
|
12
|
+
# access_token - access_token to create a public token for
|
13
|
+
# account_id - ID of the account to create a bank account token for
|
14
|
+
#
|
15
|
+
# Returns CreateResponse object containing a Stripe bank account token.
|
16
|
+
def create(access_token, account_id)
|
17
|
+
post_with_auth 'processor/stripe/bank_account_token/create',
|
18
|
+
CreateResponse,
|
19
|
+
access_token: access_token, account_id: account_id
|
20
|
+
end
|
7
21
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
#
|
16
|
-
# Returns a parsed JSON containing a Stripe bank account token
|
17
|
-
def create(access_token, account_id)
|
18
|
-
payload = { access_token: access_token,
|
19
|
-
account_id: account_id }
|
20
|
-
@client.post_with_auth('processor/stripe/bank_account_token/create',
|
21
|
-
payload)
|
22
|
+
# Public: A response for /processor/stripe/bank_account_token/create.
|
23
|
+
class CreateResponse < Models::BaseResponse
|
24
|
+
##
|
25
|
+
# :attr_reader:
|
26
|
+
# Public: The String stripe token.
|
27
|
+
property :stripe_bank_account_token
|
28
|
+
end
|
22
29
|
end
|
30
|
+
|
31
|
+
##
|
32
|
+
# :attr_reader:
|
33
|
+
# Public: The Plaid::Stripe::BankAccountToken product accessor.
|
34
|
+
subproduct :bank_account_token, BankAccountToken
|
23
35
|
end
|
24
36
|
|
25
|
-
# Public:
|
26
|
-
class
|
27
|
-
|
28
|
-
|
29
|
-
|
37
|
+
# Public: A response for /processor/.../processor_token/create.
|
38
|
+
class ProcessorTokenResponse < Models::BaseResponse
|
39
|
+
##
|
40
|
+
# :attr_reader:
|
41
|
+
# Public: The String processor token.
|
42
|
+
property :processor_token
|
43
|
+
end
|
44
|
+
|
45
|
+
# Public: Class used to call the Dwolla sub-product.
|
46
|
+
class Dwolla < BaseProduct
|
47
|
+
# Public: Class used to call the dwolla.processor_token subproduct
|
48
|
+
class ProcessorToken < BaseProduct
|
49
|
+
# Public: Creates a Dwolla processor token from an access_token.
|
50
|
+
#
|
51
|
+
# Does a POST /processor/dwolla/processor_token/create call which can be
|
52
|
+
# used to generate a Dwolla processor token for a given account ID.
|
53
|
+
#
|
54
|
+
# access_token - access_token to create a public token for.
|
55
|
+
# account_id - ID of the account to create a processor token for.
|
56
|
+
#
|
57
|
+
# Returns a ProcessorTokenResponse object containing a Dwolla processor
|
58
|
+
# token.
|
59
|
+
def create(access_token, account_id)
|
60
|
+
post_with_auth 'processor/dwolla/processor_token/create',
|
61
|
+
ProcessorTokenResponse,
|
62
|
+
access_token: access_token,
|
63
|
+
account_id: account_id
|
64
|
+
end
|
30
65
|
end
|
31
66
|
|
32
|
-
|
33
|
-
|
67
|
+
##
|
68
|
+
# :attr_reader:
|
69
|
+
# Public: The Plaid::Dwolla::ProcessorToken product accessor.
|
70
|
+
subproduct :processor_token, ProcessorToken
|
71
|
+
end
|
72
|
+
|
73
|
+
# Public: Class used to call the Apex sub-product.
|
74
|
+
class Apex < BaseProduct
|
75
|
+
# Public: Class used to call the apex.processor_token subproduct
|
76
|
+
class ProcessorToken < BaseProduct
|
77
|
+
# Public: Creates an Apex processor token from an access_token.
|
78
|
+
#
|
79
|
+
# Does a POST /processor/apex/processor_token/create call which can be
|
80
|
+
# used to generate an Apex processor token for a given account ID.
|
81
|
+
#
|
82
|
+
# access_token - access_token to create a public token for.
|
83
|
+
# account_id - ID of the account to create a processor token for.
|
84
|
+
#
|
85
|
+
# Returns a ProcessorTokenResponse object containing an Apex processor
|
86
|
+
# token.
|
87
|
+
def create(access_token, account_id)
|
88
|
+
post_with_auth 'processor/apex/processor_token/create',
|
89
|
+
ProcessorTokenResponse,
|
90
|
+
access_token: access_token,
|
91
|
+
account_id: account_id
|
92
|
+
end
|
34
93
|
end
|
94
|
+
|
95
|
+
##
|
96
|
+
# :attr_reader:
|
97
|
+
# Public: The Plaid::ApexProcessorToken product accessor.
|
98
|
+
subproduct :processor_token, ProcessorToken
|
35
99
|
end
|
36
100
|
|
37
101
|
# Public: Class used to call the Processor product.
|
38
|
-
class Processor
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
102
|
+
class Processor < BaseProduct
|
103
|
+
##
|
104
|
+
# :attr_reader:
|
105
|
+
# Public: The Plaid::Stripe product accessor.
|
106
|
+
subproduct :stripe
|
43
107
|
|
44
|
-
|
45
|
-
|
46
|
-
|
108
|
+
##
|
109
|
+
# :attr_reader:
|
110
|
+
# Public: The Plaid::Dwolla product accessor.
|
111
|
+
subproduct :dwolla
|
112
|
+
|
113
|
+
##
|
114
|
+
# :attr_reader:
|
115
|
+
# Public: The Plaid::Apex product accessor.
|
116
|
+
subproduct :apex
|
47
117
|
end
|
48
118
|
end
|
@@ -1,32 +1,33 @@
|
|
1
1
|
module Plaid
|
2
2
|
# Public: Class used to call the SandboxItem sub-product.
|
3
|
-
class SandboxItem
|
4
|
-
|
5
|
-
@client = client
|
6
|
-
end
|
7
|
-
|
8
|
-
# Public: Resets sandbox item login
|
3
|
+
class SandboxItem < BaseProduct
|
4
|
+
# Public: Resets sandbox item login.
|
9
5
|
#
|
10
|
-
# Does a POST /sandbox/item/reset_login call
|
6
|
+
# Does a POST /sandbox/item/reset_login call.
|
11
7
|
#
|
12
|
-
# access_token - access_token
|
8
|
+
# access_token - access_token which item to reset login for.
|
13
9
|
#
|
14
|
-
# Returns a
|
10
|
+
# Returns a ResetLoginResponse object.
|
15
11
|
def reset_login(access_token)
|
16
|
-
|
17
|
-
|
12
|
+
post_with_auth 'sandbox/item/reset_login',
|
13
|
+
ResetLoginResponse,
|
14
|
+
access_token: access_token
|
18
15
|
end
|
19
|
-
end
|
20
16
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
17
|
+
# Public: Response for /sandbox/item/reset_login.
|
18
|
+
class ResetLoginResponse < Models::BaseResponse
|
19
|
+
##
|
20
|
+
# :attr_reader:
|
21
|
+
# Public: The Boolean reset success flag.
|
22
|
+
property :reset_login
|
26
23
|
end
|
24
|
+
end
|
27
25
|
|
28
|
-
|
29
|
-
|
30
|
-
|
26
|
+
# Public: Class used to call the Sandbox product.
|
27
|
+
class Sandbox < BaseProduct
|
28
|
+
##
|
29
|
+
# :attr_reader:
|
30
|
+
# Public: The Plaid::SandboxItem product accessor.
|
31
|
+
subproduct :sandbox_item
|
31
32
|
end
|
32
33
|
end
|
@@ -1,61 +1,66 @@
|
|
1
1
|
require 'date'
|
2
2
|
|
3
3
|
module Plaid
|
4
|
-
# Internal: Converts date objects to strings if needed
|
5
|
-
#
|
6
|
-
# Takes in a string or a Date object and performs necessary operations to return a
|
7
|
-
# string representation of the Date
|
8
|
-
#
|
9
|
-
# date - Date in Date object form or string form (YYYY-MM-DD)
|
10
|
-
#
|
11
|
-
# Returns a string representing a date needed for transaction start and end dates
|
12
|
-
def self.convert_to_date_string(date)
|
13
|
-
case date
|
14
|
-
when String
|
15
|
-
date
|
16
|
-
else
|
17
|
-
date.to_date.strftime('%Y-%m-%d')
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
4
|
# Public: Class used to call the Transactions product.
|
22
|
-
class Transactions
|
23
|
-
def initialize(client)
|
24
|
-
@client = client
|
25
|
-
end
|
26
|
-
|
5
|
+
class Transactions < BaseProduct
|
27
6
|
# Public: Get information about transactions
|
28
7
|
#
|
29
|
-
# Does a POST /transactions/get call which gives you high level account
|
30
|
-
# with transactions from all accounts contained in the
|
8
|
+
# Does a POST /transactions/get call which gives you high level account
|
9
|
+
# data along with transactions from all accounts contained in the
|
10
|
+
# access_token's item.
|
31
11
|
#
|
32
|
-
# access_token - access_token who's item to fetch transactions for
|
33
|
-
# start_date - Start of query for transactions
|
34
|
-
# end_date - End of query for transactions
|
35
|
-
# account_ids - Specific account ids to fetch balances for (optional)
|
36
|
-
# count - Amount of transactions to pull (optional)
|
37
|
-
# offset - Offset to start pulling transactions (optional)
|
38
|
-
# options - Additional options to merge into API request
|
12
|
+
# access_token - access_token who's item to fetch transactions for.
|
13
|
+
# start_date - Start of query for transactions.
|
14
|
+
# end_date - End of query for transactions.
|
15
|
+
# account_ids - Specific account ids to fetch balances for (optional).
|
16
|
+
# count - Amount of transactions to pull (optional).
|
17
|
+
# offset - Offset to start pulling transactions (optional).
|
18
|
+
# options - Additional options to merge into API request.
|
39
19
|
#
|
40
|
-
# Returns
|
41
|
-
def get(access_token,
|
42
|
-
|
43
|
-
|
44
|
-
account_ids: nil,
|
45
|
-
count: nil,
|
46
|
-
offset: nil,
|
47
|
-
options: nil)
|
20
|
+
# Returns GetResponse.
|
21
|
+
def get(access_token, start_date, end_date,
|
22
|
+
account_ids: nil, count: nil, offset: nil, options: nil)
|
23
|
+
|
48
24
|
options_payload = {}
|
49
25
|
options_payload[:account_ids] = account_ids unless account_ids.nil?
|
50
26
|
options_payload[:count] = count unless count.nil?
|
51
27
|
options_payload[:offset] = offset unless offset.nil?
|
52
|
-
options_payload
|
28
|
+
options_payload.merge!(options) unless options.nil?
|
29
|
+
|
30
|
+
post_with_auth 'transactions/get',
|
31
|
+
GetResponse,
|
32
|
+
access_token: access_token,
|
33
|
+
start_date: Plaid.convert_to_date_string(start_date),
|
34
|
+
end_date: Plaid.convert_to_date_string(end_date),
|
35
|
+
options: options_payload
|
36
|
+
end
|
37
|
+
|
38
|
+
# Public: Response for /transactions/get.
|
39
|
+
class GetResponse < Models::BaseResponse
|
40
|
+
##
|
41
|
+
# :attr_reader:
|
42
|
+
# Public: The item: Plaid::Models::Item.
|
43
|
+
property :item, coerce: Models::Item
|
44
|
+
|
45
|
+
##
|
46
|
+
# :attr_reader:
|
47
|
+
# Public: The list of accounts: Array of Plaid::Models::Account.
|
48
|
+
property :accounts, coerce: Array[Models::Account]
|
49
|
+
|
50
|
+
##
|
51
|
+
# :attr_reader:
|
52
|
+
# Public: The list of transactions: Array of Plaid::Models::Transaction.
|
53
|
+
property :transactions, coerce: Array[Models::Transaction]
|
54
|
+
|
55
|
+
##
|
56
|
+
# :attr_reader:
|
57
|
+
# Public: The String last updated time (if available).
|
58
|
+
property :last_updated
|
53
59
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
@client.post_with_auth('transactions/get', payload)
|
60
|
+
##
|
61
|
+
# :attr_reader:
|
62
|
+
# Public: The Numeric total transactions count.
|
63
|
+
property :total_transactions
|
59
64
|
end
|
60
65
|
end
|
61
66
|
end
|
data/lib/plaid/version.rb
CHANGED
data/plaid.gemspec
CHANGED
@@ -1,9 +1,8 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
require 'plaid/version'
|
5
4
|
|
6
|
-
Gem::Specification.new do |spec|
|
5
|
+
Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
|
7
6
|
spec.name = 'plaid'
|
8
7
|
spec.version = Plaid::VERSION
|
9
8
|
spec.authors = ['Edmund Loo']
|
@@ -15,8 +14,9 @@ Gem::Specification.new do |spec|
|
|
15
14
|
spec.homepage = 'https://plaid.com/'
|
16
15
|
spec.license = 'MIT'
|
17
16
|
|
18
|
-
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the
|
19
|
-
# to allow pushing to a single host or delete this
|
17
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the
|
18
|
+
# 'allowed_push_host' to allow pushing to a single host or delete this
|
19
|
+
# section to allow pushing to any host.
|
20
20
|
if spec.respond_to?(:metadata)
|
21
21
|
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
22
22
|
else
|
@@ -36,12 +36,14 @@ Gem::Specification.new do |spec|
|
|
36
36
|
|
37
37
|
spec.add_dependency 'faraday'
|
38
38
|
spec.add_dependency 'faraday_middleware'
|
39
|
+
spec.add_dependency 'hashie', '>= 3.4.3'
|
39
40
|
|
40
41
|
spec.add_development_dependency 'bundler', '~> 1.7'
|
41
42
|
spec.add_development_dependency 'dotenv'
|
42
|
-
spec.add_development_dependency 'rake', '>= 10.0'
|
43
|
-
spec.add_development_dependency 'sdoc', '~> 0.4.1'
|
44
43
|
spec.add_development_dependency 'minitest', '~> 5.10'
|
45
44
|
spec.add_development_dependency 'minitest-around', '~> 0.4.0'
|
46
|
-
spec.add_development_dependency '
|
45
|
+
spec.add_development_dependency 'rake', '>= 10.0'
|
46
|
+
spec.add_development_dependency 'rubocop', '~> 0.53.0'
|
47
|
+
spec.add_development_dependency 'sdoc', '~> 1.0.0'
|
48
|
+
spec.add_development_dependency 'vcr', '~> 4.0.0'
|
47
49
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plaid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Edmund Loo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: hashie
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.4.3
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.4.3
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,75 +81,89 @@ dependencies:
|
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
84
|
+
name: minitest
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
|
-
- - "
|
87
|
+
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version: '10
|
89
|
+
version: '5.10'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- - "
|
94
|
+
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version: '10
|
96
|
+
version: '5.10'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
98
|
+
name: minitest-around
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
101
|
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.4.
|
103
|
+
version: 0.4.0
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.4.
|
110
|
+
version: 0.4.0
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
112
|
+
name: rake
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '10.0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '10.0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rubocop
|
99
127
|
requirement: !ruby/object:Gem::Requirement
|
100
128
|
requirements:
|
101
129
|
- - "~>"
|
102
130
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
131
|
+
version: 0.53.0
|
104
132
|
type: :development
|
105
133
|
prerelease: false
|
106
134
|
version_requirements: !ruby/object:Gem::Requirement
|
107
135
|
requirements:
|
108
136
|
- - "~>"
|
109
137
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
138
|
+
version: 0.53.0
|
111
139
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
140
|
+
name: sdoc
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
114
142
|
requirements:
|
115
143
|
- - "~>"
|
116
144
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.
|
145
|
+
version: 1.0.0
|
118
146
|
type: :development
|
119
147
|
prerelease: false
|
120
148
|
version_requirements: !ruby/object:Gem::Requirement
|
121
149
|
requirements:
|
122
150
|
- - "~>"
|
123
151
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0.
|
152
|
+
version: 1.0.0
|
125
153
|
- !ruby/object:Gem::Dependency
|
126
154
|
name: vcr
|
127
155
|
requirement: !ruby/object:Gem::Requirement
|
128
156
|
requirements:
|
129
157
|
- - "~>"
|
130
158
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
159
|
+
version: 4.0.0
|
132
160
|
type: :development
|
133
161
|
prerelease: false
|
134
162
|
version_requirements: !ruby/object:Gem::Requirement
|
135
163
|
requirements:
|
136
164
|
- - "~>"
|
137
165
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
166
|
+
version: 4.0.0
|
139
167
|
description: Ruby gem wrapper for the Plaid API. Read more at the homepage, the wiki,
|
140
168
|
or in the Plaid documentation.
|
141
169
|
email:
|
@@ -144,10 +172,13 @@ executables: []
|
|
144
172
|
extensions: []
|
145
173
|
extra_rdoc_files: []
|
146
174
|
files:
|
175
|
+
- ".circleci/config.yml"
|
147
176
|
- ".env.sample"
|
177
|
+
- ".rubocop.yml"
|
148
178
|
- CHANGELOG.md
|
149
179
|
- CONTRIBUTING.md
|
150
180
|
- Gemfile
|
181
|
+
- Gemfile.lock
|
151
182
|
- LICENSE.txt
|
152
183
|
- PUBLISHING.md
|
153
184
|
- README.md
|
@@ -155,13 +186,14 @@ files:
|
|
155
186
|
- UPGRADING.md
|
156
187
|
- bin/console
|
157
188
|
- bin/setup
|
158
|
-
- circle.yml
|
159
189
|
- lib/plaid.rb
|
160
190
|
- lib/plaid/client.rb
|
161
191
|
- lib/plaid/errors.rb
|
162
192
|
- lib/plaid/middleware.rb
|
193
|
+
- lib/plaid/models.rb
|
163
194
|
- lib/plaid/products/accounts.rb
|
164
195
|
- lib/plaid/products/auth.rb
|
196
|
+
- lib/plaid/products/base_product.rb
|
165
197
|
- lib/plaid/products/categories.rb
|
166
198
|
- lib/plaid/products/credit_details.rb
|
167
199
|
- lib/plaid/products/identity.rb
|