atrium-ruby 1.3.2 → 2.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.
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