atrium-ruby 1.3.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (201) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +5 -2
  3. data/README.md +132 -66
  4. data/Rakefile +7 -4
  5. data/atrium-ruby.gemspec +40 -32
  6. data/docs/Account.md +35 -0
  7. data/docs/AccountNumber.md +12 -0
  8. data/docs/AccountNumbersResponseBody.md +8 -0
  9. data/docs/AccountOwner.md +18 -0
  10. data/docs/AccountOwnersResponseBody.md +8 -0
  11. data/docs/AccountResponseBody.md +8 -0
  12. data/docs/AccountsApi.md +174 -0
  13. data/docs/AccountsResponseBody.md +9 -0
  14. data/docs/Challenge.md +13 -0
  15. data/docs/ChallengeOption.md +10 -0
  16. data/docs/ChallengesResponseBody.md +8 -0
  17. data/docs/ConnectWidget.md +9 -0
  18. data/docs/ConnectWidgetApi.md +44 -0
  19. data/docs/ConnectWidgetRequestBody.md +11 -0
  20. data/docs/ConnectWidgetResponseBody.md +8 -0
  21. data/docs/CredentialOption.md +9 -0
  22. data/docs/CredentialRequest.md +9 -0
  23. data/docs/CredentialResponse.md +12 -0
  24. data/docs/CredentialsResponseBody.md +8 -0
  25. data/docs/IdentityApi.md +82 -0
  26. data/docs/Institution.md +14 -0
  27. data/docs/InstitutionResponseBody.md +8 -0
  28. data/docs/InstitutionsApi.md +120 -0
  29. data/docs/InstitutionsResponseBody.md +9 -0
  30. data/docs/Member.md +18 -0
  31. data/docs/MemberConnectionStatus.md +16 -0
  32. data/docs/MemberConnectionStatusResponseBody.md +8 -0
  33. data/docs/MemberCreateRequest.md +11 -0
  34. data/docs/MemberCreateRequestBody.md +8 -0
  35. data/docs/MemberResponseBody.md +8 -0
  36. data/docs/MemberResumeRequest.md +8 -0
  37. data/docs/MemberResumeRequestBody.md +8 -0
  38. data/docs/MemberUpdateRequest.md +10 -0
  39. data/docs/MemberUpdateRequestBody.md +8 -0
  40. data/docs/MembersApi.md +487 -0
  41. data/docs/MembersResponseBody.md +9 -0
  42. data/docs/Pagination.md +11 -0
  43. data/docs/Transaction.md +38 -0
  44. data/docs/TransactionCleanseAndCategorizeRequest.md +11 -0
  45. data/docs/TransactionCleanseAndCategorizeResponse.md +20 -0
  46. data/docs/TransactionResponseBody.md +8 -0
  47. data/docs/TransactionsApi.md +126 -0
  48. data/docs/TransactionsCleanseAndCategorizeRequestBody.md +8 -0
  49. data/docs/TransactionsCleanseAndCategorizeResponseBody.md +8 -0
  50. data/docs/TransactionsResponseBody.md +9 -0
  51. data/docs/User.md +11 -0
  52. data/docs/UserCreateRequestBody.md +8 -0
  53. data/docs/UserResponseBody.md +8 -0
  54. data/docs/UserUpdateRequestBody.md +8 -0
  55. data/docs/UsersApi.md +193 -0
  56. data/docs/UsersResponseBody.md +9 -0
  57. data/docs/VerificationApi.md +120 -0
  58. data/git_push.sh +49 -0
  59. data/lib/atrium-ruby.rb +88 -0
  60. data/lib/atrium-ruby/api/accounts_api.rb +272 -0
  61. data/lib/atrium-ruby/api/atrium_client.rb +28 -0
  62. data/lib/atrium-ruby/api/connect_widget_api.rb +82 -0
  63. data/lib/atrium-ruby/api/identity_api.rb +140 -0
  64. data/lib/atrium-ruby/api/institutions_api.rb +181 -0
  65. data/lib/atrium-ruby/api/members_api.rb +749 -0
  66. data/lib/atrium-ruby/api/transactions_api.rb +198 -0
  67. data/lib/atrium-ruby/api/users_api.rb +287 -0
  68. data/lib/atrium-ruby/api/verification_api.rb +198 -0
  69. data/lib/atrium-ruby/api_client.rb +384 -0
  70. data/lib/atrium-ruby/api_error.rb +34 -0
  71. data/lib/atrium-ruby/configuration.rb +212 -0
  72. data/lib/atrium-ruby/models/account.rb +422 -0
  73. data/lib/atrium-ruby/models/account_number.rb +215 -0
  74. data/lib/atrium-ruby/models/account_numbers_response_body.rb +181 -0
  75. data/lib/atrium-ruby/models/account_owner.rb +269 -0
  76. data/lib/atrium-ruby/models/account_owners_response_body.rb +181 -0
  77. data/lib/atrium-ruby/models/account_response_body.rb +179 -0
  78. data/lib/atrium-ruby/models/accounts_response_body.rb +190 -0
  79. data/lib/atrium-ruby/models/challenge.rb +226 -0
  80. data/lib/atrium-ruby/models/challenge_option.rb +197 -0
  81. data/lib/atrium-ruby/models/challenges_response_body.rb +181 -0
  82. data/lib/atrium-ruby/models/connect_widget.rb +188 -0
  83. data/lib/atrium-ruby/models/connect_widget_request_body.rb +206 -0
  84. data/lib/atrium-ruby/models/connect_widget_response_body.rb +179 -0
  85. data/lib/atrium-ruby/models/credential_option.rb +188 -0
  86. data/lib/atrium-ruby/models/credential_request.rb +188 -0
  87. data/lib/atrium-ruby/models/credential_response.rb +217 -0
  88. data/lib/atrium-ruby/models/credentials_response_body.rb +181 -0
  89. data/lib/atrium-ruby/models/institution.rb +233 -0
  90. data/lib/atrium-ruby/models/institution_response_body.rb +179 -0
  91. data/lib/atrium-ruby/models/institutions_response_body.rb +190 -0
  92. data/lib/atrium-ruby/models/member.rb +269 -0
  93. data/lib/atrium-ruby/models/member_connection_status.rb +253 -0
  94. data/lib/atrium-ruby/models/member_connection_status_response_body.rb +179 -0
  95. data/lib/atrium-ruby/models/member_create_request.rb +218 -0
  96. data/lib/atrium-ruby/models/member_create_request_body.rb +179 -0
  97. data/lib/atrium-ruby/models/member_response_body.rb +179 -0
  98. data/lib/atrium-ruby/models/member_resume_request.rb +181 -0
  99. data/lib/atrium-ruby/models/member_resume_request_body.rb +179 -0
  100. data/lib/atrium-ruby/models/member_update_request.rb +199 -0
  101. data/lib/atrium-ruby/models/member_update_request_body.rb +179 -0
  102. data/lib/atrium-ruby/models/members_response_body.rb +190 -0
  103. data/lib/atrium-ruby/models/pagination.rb +206 -0
  104. data/lib/atrium-ruby/models/transaction.rb +449 -0
  105. data/lib/atrium-ruby/models/transaction_cleanse_and_categorize_request.rb +206 -0
  106. data/lib/atrium-ruby/models/transaction_cleanse_and_categorize_response.rb +287 -0
  107. data/lib/atrium-ruby/models/transaction_response_body.rb +179 -0
  108. data/lib/atrium-ruby/models/transactions_cleanse_and_categorize_request_body.rb +181 -0
  109. data/lib/atrium-ruby/models/transactions_cleanse_and_categorize_response_body.rb +181 -0
  110. data/lib/atrium-ruby/models/transactions_response_body.rb +190 -0
  111. data/lib/atrium-ruby/models/user.rb +206 -0
  112. data/lib/atrium-ruby/models/user_create_request_body.rb +179 -0
  113. data/lib/atrium-ruby/models/user_response_body.rb +179 -0
  114. data/lib/atrium-ruby/models/user_update_request_body.rb +179 -0
  115. data/lib/atrium-ruby/models/users_response_body.rb +190 -0
  116. data/lib/atrium-ruby/version.rb +11 -0
  117. data/spec/api/accounts_api_spec.rb +88 -0
  118. data/spec/api/connect_widget_api_spec.rb +43 -0
  119. data/spec/api/identity_api_spec.rb +56 -0
  120. data/spec/api/institutions_api_spec.rb +68 -0
  121. data/spec/api/members_api_spec.rb +195 -0
  122. data/spec/api/transactions_api_spec.rb +71 -0
  123. data/spec/api/users_api_spec.rb +92 -0
  124. data/spec/api/verification_api_spec.rb +69 -0
  125. data/spec/api_client_spec.rb +222 -0
  126. data/spec/configuration_spec.rb +38 -0
  127. data/spec/models/account_number_spec.rb +60 -0
  128. data/spec/models/account_numbers_response_body_spec.rb +36 -0
  129. data/spec/models/account_owner_spec.rb +96 -0
  130. data/spec/models/account_owners_response_body_spec.rb +36 -0
  131. data/spec/models/account_response_body_spec.rb +36 -0
  132. data/spec/models/account_spec.rb +198 -0
  133. data/spec/models/accounts_response_body_spec.rb +42 -0
  134. data/spec/models/challenge_option_spec.rb +48 -0
  135. data/spec/models/challenge_spec.rb +66 -0
  136. data/spec/models/challenges_response_body_spec.rb +36 -0
  137. data/spec/models/connect_widget_request_body_spec.rb +54 -0
  138. data/spec/models/connect_widget_response_body_spec.rb +36 -0
  139. data/spec/models/connect_widget_spec.rb +42 -0
  140. data/spec/models/credential_option_spec.rb +42 -0
  141. data/spec/models/credential_request_spec.rb +42 -0
  142. data/spec/models/credential_response_spec.rb +60 -0
  143. data/spec/models/credentials_response_body_spec.rb +36 -0
  144. data/spec/models/institution_response_body_spec.rb +36 -0
  145. data/spec/models/institution_spec.rb +72 -0
  146. data/spec/models/institutions_response_body_spec.rb +42 -0
  147. data/spec/models/member_connection_status_response_body_spec.rb +36 -0
  148. data/spec/models/member_connection_status_spec.rb +84 -0
  149. data/spec/models/member_create_request_body_spec.rb +36 -0
  150. data/spec/models/member_create_request_spec.rb +54 -0
  151. data/spec/models/member_response_body_spec.rb +36 -0
  152. data/spec/models/member_resume_request_body_spec.rb +36 -0
  153. data/spec/models/member_resume_request_spec.rb +36 -0
  154. data/spec/models/member_spec.rb +96 -0
  155. data/spec/models/member_update_request_body_spec.rb +36 -0
  156. data/spec/models/member_update_request_spec.rb +48 -0
  157. data/spec/models/members_response_body_spec.rb +42 -0
  158. data/spec/models/pagination_spec.rb +54 -0
  159. data/spec/models/transaction_cleanse_and_categorize_request_spec.rb +54 -0
  160. data/spec/models/transaction_cleanse_and_categorize_response_spec.rb +108 -0
  161. data/spec/models/transaction_response_body_spec.rb +36 -0
  162. data/spec/models/transaction_spec.rb +216 -0
  163. data/spec/models/transactions_cleanse_and_categorize_request_body_spec.rb +36 -0
  164. data/spec/models/transactions_cleanse_and_categorize_response_body_spec.rb +36 -0
  165. data/spec/models/transactions_response_body_spec.rb +42 -0
  166. data/spec/models/user_create_request_body_spec.rb +36 -0
  167. data/spec/models/user_response_body_spec.rb +36 -0
  168. data/spec/models/user_spec.rb +54 -0
  169. data/spec/models/user_update_request_body_spec.rb +36 -0
  170. data/spec/models/users_response_body_spec.rb +42 -0
  171. data/spec/spec_helper.rb +107 -0
  172. metadata +323 -91
  173. data/.gitignore +0 -10
  174. data/.rubocop.yml +0 -12
  175. data/.travis.yml +0 -12
  176. data/bin/console +0 -14
  177. data/bin/demo +0 -49
  178. data/bin/setup +0 -8
  179. data/examples/accounts_and_transactions.rb +0 -49
  180. data/examples/all_endpoints.rb +0 -226
  181. data/examples/example_workflow.rb +0 -176
  182. data/examples/multi_factor_authentication.rb +0 -57
  183. data/examples/update_credentials.rb +0 -58
  184. data/examples/user_and_member_creation.rb +0 -53
  185. data/lib/atrium.rb +0 -40
  186. data/lib/atrium/account.rb +0 -100
  187. data/lib/atrium/account_number.rb +0 -13
  188. data/lib/atrium/account_owner.rb +0 -19
  189. data/lib/atrium/challenge.rb +0 -13
  190. data/lib/atrium/client.rb +0 -51
  191. data/lib/atrium/connect.rb +0 -34
  192. data/lib/atrium/credential.rb +0 -11
  193. data/lib/atrium/error.rb +0 -4
  194. data/lib/atrium/institution.rb +0 -38
  195. data/lib/atrium/member.rb +0 -264
  196. data/lib/atrium/pageable.rb +0 -74
  197. data/lib/atrium/paginate.rb +0 -92
  198. data/lib/atrium/ruby.rb +0 -3
  199. data/lib/atrium/transaction.rb +0 -74
  200. data/lib/atrium/user.rb +0 -150
  201. data/lib/atrium/version.rb +0 -3
@@ -1,3 +0,0 @@
1
- # This file allows bundler to auto-load the atrium gem.
2
- # Do not remove this file.
3
- require "atrium"
@@ -1,74 +0,0 @@
1
- module Atrium
2
- class Transaction
3
- extend ::Atrium::Pageable
4
- include ::ActiveAttr::Model
5
-
6
- attribute :account_guid
7
- attribute :amount
8
- attribute :category
9
- attribute :check_number
10
- attribute :check_number_string
11
- attribute :created_at
12
- attribute :date
13
- attribute :description
14
- attribute :guid
15
- attribute :id
16
- attribute :is_bill_pay
17
- attribute :is_direct_deposit
18
- attribute :is_expense
19
- attribute :is_fee
20
- attribute :is_income
21
- attribute :is_overdraft_fee
22
- attribute :is_payroll_advance
23
- attribute :latitude
24
- attribute :longitude
25
- attribute :member_guid
26
- attribute :memo
27
- attribute :merchant_category_code
28
- attribute :original_description
29
- attribute :posted_at
30
- attribute :status
31
- attribute :top_level_category
32
- attribute :transacted_at
33
- attribute :type
34
- attribute :updated_at
35
- attribute :user_guid
36
-
37
- def self.categorize_and_describe(transaction_hash = {})
38
- endpoint = "/categorize_and_describe"
39
- body = { :transactions => transaction_hash }
40
- transaction_response = ::Atrium.client.make_request(:post, endpoint, body)
41
-
42
- transaction_response["transactions"].map do |transaction|
43
- ::Atrium::Transaction.new(transaction)
44
- end
45
- end
46
-
47
- def self.list(options = {})
48
- options = _transaction_pagination_options(options)
49
- paginate(options)
50
- end
51
-
52
- def self.list_each(options = {})
53
- options = _transaction_pagination_options(options)
54
- paginate_each(options) { |transaction| yield transaction }
55
- end
56
-
57
- def self.list_in_batches(options = {})
58
- options = _transaction_pagination_options(options)
59
- paginate_in_batches(options) { |batch| yield batch }
60
- end
61
-
62
- def self.read(user_guid:, transaction_guid:)
63
- endpoint = "/users/#{user_guid}/transactions/#{transaction_guid}"
64
- raw_transaction = ::Atrium.client.make_request(:get, endpoint)
65
- ::Atrium::Transaction.new(raw_transaction["transaction"])
66
- end
67
-
68
- def self._transaction_pagination_options(options)
69
- user_guid = options.fetch(:user_guid)
70
- endpoint = "/users/#{user_guid}/transactions"
71
- options.merge(:endpoint => endpoint, :resource => "transactions")
72
- end
73
- end
74
- end
@@ -1,150 +0,0 @@
1
- module Atrium
2
- class User
3
- extend ::Atrium::Pageable
4
- include ::ActiveAttr::Model
5
-
6
- # ATTRIBUTES
7
- attribute :guid
8
- attribute :identifier
9
- attribute :is_disabled
10
- attribute :metadata
11
-
12
- ##
13
- # CLASS METHODS
14
- #
15
- def self.create(identifier:, is_disabled:, metadata:)
16
- endpoint = "/users"
17
- body = user_body(identifier, is_disabled, metadata)
18
- response = ::Atrium.client.make_request(:post, endpoint, body)
19
-
20
- user_params = response["user"]
21
- ::Atrium::User.new(user_params)
22
- end
23
-
24
- def self.list(options = {})
25
- options = _user_pagination_options(options)
26
- paginate(options)
27
- end
28
-
29
- def self.list_each(options = {})
30
- options = _user_pagination_options(options)
31
- paginate_each(options) { |user| yield user }
32
- end
33
-
34
- def self.list_in_batches(options = {})
35
- options = _user_pagination_options(options)
36
- paginate_in_batches(options) { |batch| yield batch }
37
- end
38
-
39
- def self.read(guid:)
40
- endpoint = "/users/#{guid}"
41
- response = ::Atrium.client.make_request(:get, endpoint)
42
-
43
- user_params = response["user"]
44
- ::Atrium::User.new(user_params)
45
- end
46
-
47
- ##
48
- # INSTANCE METHODS
49
- #
50
- def accounts(options = {})
51
- options = _account_pagination_options(options)
52
- self.class.paginate(options)
53
- end
54
-
55
- def each_account(options = {})
56
- options = _account_pagination_options(options)
57
- self.class.paginate_each(options) { |account| yield account }
58
- end
59
-
60
- def accounts_in_batches(options = {})
61
- options = _account_pagination_options(options)
62
- self.class.paginate_in_batches(options) { |batch| yield batch }
63
- end
64
-
65
- def delete
66
- endpoint = "/users/#{guid}"
67
- ::Atrium.client.make_request(:delete, endpoint)
68
-
69
- self
70
- end
71
-
72
- def members(options = {})
73
- options = _member_pagination_options(options)
74
- self.class.paginate(options)
75
- end
76
-
77
- def each_member(options = {})
78
- options = _member_pagination_options(options)
79
- self.class.paginate_each(options) { |member| yield member }
80
- end
81
-
82
- def members_in_batches(options = {})
83
- options = _member_pagination_options(options)
84
- self.class.paginate_in_batches(options) { |batch| yield batch }
85
- end
86
-
87
- def transactions(options = {})
88
- options = _transaction_pagination_options(options)
89
- self.class.paginate(options)
90
- end
91
-
92
- def each_transaction(options = {})
93
- options = _transaction_pagination_options(options)
94
- self.class.paginate_each(options) { |transaction| yield transaction }
95
- end
96
-
97
- def transactions_in_batches(options = {})
98
- options = _transaction_pagination_options(options)
99
- self.class.paginate_in_batches(options) { |batch| yield batch }
100
- end
101
-
102
- def update(params)
103
- endpoint = "/users/#{guid}"
104
- body = update_params(params)
105
- response = ::Atrium.client.make_request(:put, endpoint, body)
106
-
107
- user_params = response["user"]
108
- assign_attributes(user_params)
109
- self
110
- end
111
-
112
- def self._user_pagination_options(options)
113
- options.merge(:endpoint => "/users", :resource => "users")
114
- end
115
-
116
- private
117
-
118
- def _account_pagination_options(options)
119
- endpoint = "/users/#{guid}/accounts"
120
- options.merge(:endpoint => endpoint, :resource => "accounts", :klass => ::Atrium::Account)
121
- end
122
-
123
- def _member_pagination_options(options)
124
- endpoint = "/users/#{guid}/members"
125
- options.merge(:endpoint => endpoint, :resource => "members", :klass => ::Atrium::Member)
126
- end
127
-
128
- def _transaction_pagination_options(options)
129
- endpoint = "/users/#{guid}/transactions"
130
- options.merge(:endpoint => endpoint, :resource => "transactions", :klass => ::Atrium::Transaction)
131
- end
132
-
133
- def update_params(params)
134
- {
135
- :user => params
136
- }
137
- end
138
-
139
- def self.user_body(identifier, is_disabled, metadata)
140
- {
141
- :user => {
142
- :identifier => identifier,
143
- :is_disabled => is_disabled,
144
- :metadata => metadata
145
- }
146
- }
147
- end
148
- private_class_method :user_body
149
- end
150
- end
@@ -1,3 +0,0 @@
1
- module Atrium
2
- VERSION = "1.3.2".freeze
3
- end