mx-platform-ruby 0.1.1 → 0.2.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 (260) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +6 -2
  3. data/Gemfile.lock +84 -0
  4. data/README.md +236 -33
  5. data/Rakefile +8 -9
  6. data/lib/mx-platform-ruby.rb +126 -35
  7. data/lib/mx-platform-ruby/api/mx_platform_api.rb +4917 -0
  8. data/lib/mx-platform-ruby/api_client.rb +395 -0
  9. data/lib/mx-platform-ruby/api_error.rb +57 -0
  10. data/lib/mx-platform-ruby/configuration.rb +276 -0
  11. data/lib/mx-platform-ruby/models/account.rb +569 -0
  12. data/lib/mx-platform-ruby/models/account_number.rb +281 -0
  13. data/lib/mx-platform-ruby/models/account_numbers_response_body.rb +229 -0
  14. data/lib/mx-platform-ruby/models/account_owner.rb +317 -0
  15. data/lib/mx-platform-ruby/models/account_owners_response_body.rb +229 -0
  16. data/lib/mx-platform-ruby/models/account_response_body.rb +218 -0
  17. data/lib/mx-platform-ruby/models/account_update_request.rb +218 -0
  18. data/lib/mx-platform-ruby/models/account_update_request_body.rb +218 -0
  19. data/lib/mx-platform-ruby/models/accounts_response_body.rb +229 -0
  20. data/lib/mx-platform-ruby/models/categories_response_body.rb +229 -0
  21. data/lib/mx-platform-ruby/models/category.rb +281 -0
  22. data/lib/mx-platform-ruby/models/category_create_request.rb +241 -0
  23. data/lib/mx-platform-ruby/models/category_create_request_body.rb +218 -0
  24. data/lib/mx-platform-ruby/models/category_response_body.rb +218 -0
  25. data/lib/mx-platform-ruby/models/category_update_request.rb +227 -0
  26. data/lib/mx-platform-ruby/models/category_update_request_body.rb +218 -0
  27. data/lib/mx-platform-ruby/models/challenge.rb +276 -0
  28. data/lib/mx-platform-ruby/models/challenge_image_options.rb +236 -0
  29. data/lib/mx-platform-ruby/models/challenge_options.rb +227 -0
  30. data/lib/mx-platform-ruby/models/challenges_response_body.rb +229 -0
  31. data/lib/mx-platform-ruby/models/connect_widget.rb +227 -0
  32. data/lib/mx-platform-ruby/models/connect_widget_request.rb +308 -0
  33. data/lib/mx-platform-ruby/models/connect_widget_request_body.rb +218 -0
  34. data/lib/mx-platform-ruby/models/connect_widget_response_body.rb +218 -0
  35. data/lib/mx-platform-ruby/models/credential.rb +254 -0
  36. data/lib/mx-platform-ruby/models/credential_request.rb +227 -0
  37. data/lib/mx-platform-ruby/models/credentials_response_body.rb +229 -0
  38. data/lib/mx-platform-ruby/models/enhance_transaction.rb +353 -0
  39. data/lib/mx-platform-ruby/models/enhance_transactions_request.rb +264 -0
  40. data/lib/mx-platform-ruby/models/enhance_transactions_request_body.rb +220 -0
  41. data/lib/mx-platform-ruby/models/enhance_transactions_response_body.rb +220 -0
  42. data/lib/mx-platform-ruby/models/holding.rb +371 -0
  43. data/lib/mx-platform-ruby/models/holding_response_body.rb +218 -0
  44. data/lib/mx-platform-ruby/models/holdings_response_body.rb +229 -0
  45. data/lib/mx-platform-ruby/models/inline_response200.rb +218 -0
  46. data/lib/mx-platform-ruby/models/institution.rb +299 -0
  47. data/lib/mx-platform-ruby/models/institution_response_body.rb +218 -0
  48. data/lib/mx-platform-ruby/models/institutions_response_body.rb +229 -0
  49. data/lib/mx-platform-ruby/models/member.rb +317 -0
  50. data/lib/mx-platform-ruby/models/member_create_request.rb +284 -0
  51. data/lib/mx-platform-ruby/models/member_create_request_body.rb +236 -0
  52. data/lib/mx-platform-ruby/models/member_response_body.rb +218 -0
  53. data/lib/mx-platform-ruby/models/member_resume_request.rb +220 -0
  54. data/lib/mx-platform-ruby/models/member_resume_request_body.rb +218 -0
  55. data/lib/mx-platform-ruby/models/member_status.rb +292 -0
  56. data/lib/mx-platform-ruby/models/member_status_response_body.rb +218 -0
  57. data/lib/mx-platform-ruby/models/member_update_request.rb +256 -0
  58. data/lib/mx-platform-ruby/models/member_update_request_body.rb +218 -0
  59. data/lib/mx-platform-ruby/models/members_response_body.rb +229 -0
  60. data/lib/mx-platform-ruby/models/merchant.rb +263 -0
  61. data/lib/mx-platform-ruby/models/merchant_response_body.rb +218 -0
  62. data/lib/mx-platform-ruby/models/merchants_response_body.rb +229 -0
  63. data/lib/mx-platform-ruby/models/o_auth_window.rb +227 -0
  64. data/lib/mx-platform-ruby/models/o_auth_window_response_body.rb +218 -0
  65. data/lib/mx-platform-ruby/models/pagination.rb +245 -0
  66. data/lib/mx-platform-ruby/models/statement.rb +281 -0
  67. data/lib/mx-platform-ruby/models/statement_response_body.rb +218 -0
  68. data/lib/mx-platform-ruby/models/statements_response_body.rb +229 -0
  69. data/lib/mx-platform-ruby/models/tag.rb +236 -0
  70. data/lib/mx-platform-ruby/models/tag_create_request.rb +223 -0
  71. data/lib/mx-platform-ruby/models/tag_create_request_body.rb +218 -0
  72. data/lib/mx-platform-ruby/models/tag_response_body.rb +218 -0
  73. data/lib/mx-platform-ruby/models/tag_update_request.rb +223 -0
  74. data/lib/mx-platform-ruby/models/tag_update_request_body.rb +218 -0
  75. data/lib/mx-platform-ruby/models/tagging.rb +254 -0
  76. data/lib/mx-platform-ruby/models/tagging_create_request.rb +237 -0
  77. data/lib/mx-platform-ruby/models/tagging_create_request_body.rb +218 -0
  78. data/lib/mx-platform-ruby/models/tagging_response_body.rb +218 -0
  79. data/lib/mx-platform-ruby/models/tagging_update_request.rb +223 -0
  80. data/lib/mx-platform-ruby/models/tagging_update_request_body.rb +218 -0
  81. data/lib/mx-platform-ruby/models/taggings_response_body.rb +229 -0
  82. data/lib/mx-platform-ruby/models/tags_response_body.rb +229 -0
  83. data/lib/mx-platform-ruby/models/transaction.rb +533 -0
  84. data/lib/mx-platform-ruby/models/transaction_response_body.rb +218 -0
  85. data/lib/mx-platform-ruby/models/transaction_rule.rb +272 -0
  86. data/lib/mx-platform-ruby/models/transaction_rule_create_request.rb +246 -0
  87. data/lib/mx-platform-ruby/models/transaction_rule_create_request_body.rb +218 -0
  88. data/lib/mx-platform-ruby/models/transaction_rule_response_body.rb +218 -0
  89. data/lib/mx-platform-ruby/models/transaction_rule_update_request.rb +236 -0
  90. data/lib/mx-platform-ruby/models/transaction_rule_update_request_body.rb +218 -0
  91. data/lib/mx-platform-ruby/models/transaction_rules_response_body.rb +229 -0
  92. data/lib/mx-platform-ruby/models/transaction_update_request.rb +223 -0
  93. data/lib/mx-platform-ruby/models/transaction_update_request_body.rb +218 -0
  94. data/lib/mx-platform-ruby/models/transactions_response_body.rb +229 -0
  95. data/lib/mx-platform-ruby/models/user.rb +254 -0
  96. data/lib/mx-platform-ruby/models/user_create_request.rb +245 -0
  97. data/lib/mx-platform-ruby/models/user_create_request_body.rb +218 -0
  98. data/lib/mx-platform-ruby/models/user_response_body.rb +218 -0
  99. data/lib/mx-platform-ruby/models/user_update_request.rb +245 -0
  100. data/lib/mx-platform-ruby/models/user_update_request_body.rb +218 -0
  101. data/lib/mx-platform-ruby/models/users_response_body.rb +229 -0
  102. data/lib/mx-platform-ruby/models/widget.rb +236 -0
  103. data/lib/mx-platform-ruby/models/widget_request.rb +331 -0
  104. data/lib/mx-platform-ruby/models/widget_request_body.rb +218 -0
  105. data/lib/mx-platform-ruby/models/widget_response_body.rb +218 -0
  106. data/lib/mx-platform-ruby/version.rb +13 -3
  107. data/mx-platform-ruby.gemspec +34 -27
  108. data/openapi/mx_platform_ruby.yml +11 -0
  109. data/spec/api/mx_platform_api_spec.rb +979 -0
  110. data/spec/api_client_spec.rb +188 -0
  111. data/spec/configuration_spec.rb +42 -0
  112. data/spec/models/account_number_spec.rb +76 -0
  113. data/spec/models/account_numbers_response_body_spec.rb +40 -0
  114. data/spec/models/account_owner_spec.rb +100 -0
  115. data/spec/models/account_owners_response_body_spec.rb +40 -0
  116. data/spec/models/account_response_body_spec.rb +34 -0
  117. data/spec/models/account_spec.rb +268 -0
  118. data/spec/models/account_update_request_body_spec.rb +34 -0
  119. data/spec/models/account_update_request_spec.rb +34 -0
  120. data/spec/models/accounts_response_body_spec.rb +40 -0
  121. data/spec/models/categories_response_body_spec.rb +40 -0
  122. data/spec/models/category_create_request_body_spec.rb +34 -0
  123. data/spec/models/category_create_request_spec.rb +46 -0
  124. data/spec/models/category_response_body_spec.rb +34 -0
  125. data/spec/models/category_spec.rb +76 -0
  126. data/spec/models/category_update_request_body_spec.rb +34 -0
  127. data/spec/models/category_update_request_spec.rb +40 -0
  128. data/spec/models/challenge_image_options_spec.rb +46 -0
  129. data/spec/models/challenge_options_spec.rb +40 -0
  130. data/spec/models/challenge_spec.rb +70 -0
  131. data/spec/models/challenges_response_body_spec.rb +40 -0
  132. data/spec/models/connect_widget_request_body_spec.rb +34 -0
  133. data/spec/models/connect_widget_request_spec.rb +94 -0
  134. data/spec/models/connect_widget_response_body_spec.rb +34 -0
  135. data/spec/models/connect_widget_spec.rb +40 -0
  136. data/spec/models/credential_request_spec.rb +40 -0
  137. data/spec/models/credential_spec.rb +58 -0
  138. data/spec/models/credentials_response_body_spec.rb +40 -0
  139. data/spec/models/enhance_transaction_spec.rb +124 -0
  140. data/spec/models/enhance_transactions_request_body_spec.rb +34 -0
  141. data/spec/models/enhance_transactions_request_spec.rb +58 -0
  142. data/spec/models/enhance_transactions_response_body_spec.rb +34 -0
  143. data/spec/models/holding_response_body_spec.rb +34 -0
  144. data/spec/models/holding_spec.rb +136 -0
  145. data/spec/models/holdings_response_body_spec.rb +40 -0
  146. data/spec/models/inline_response200_spec.rb +34 -0
  147. data/spec/models/institution_response_body_spec.rb +34 -0
  148. data/spec/models/institution_spec.rb +88 -0
  149. data/spec/models/institutions_response_body_spec.rb +40 -0
  150. data/spec/models/member_create_request_body_spec.rb +46 -0
  151. data/spec/models/member_create_request_spec.rb +70 -0
  152. data/spec/models/member_response_body_spec.rb +34 -0
  153. data/spec/models/member_resume_request_body_spec.rb +34 -0
  154. data/spec/models/member_resume_request_spec.rb +34 -0
  155. data/spec/models/member_spec.rb +100 -0
  156. data/spec/models/member_status_response_body_spec.rb +34 -0
  157. data/spec/models/member_status_spec.rb +82 -0
  158. data/spec/models/member_update_request_body_spec.rb +34 -0
  159. data/spec/models/member_update_request_spec.rb +58 -0
  160. data/spec/models/members_response_body_spec.rb +40 -0
  161. data/spec/models/merchant_response_body_spec.rb +34 -0
  162. data/spec/models/merchant_spec.rb +64 -0
  163. data/spec/models/merchants_response_body_spec.rb +40 -0
  164. data/spec/models/o_auth_window_response_body_spec.rb +34 -0
  165. data/spec/models/o_auth_window_spec.rb +40 -0
  166. data/spec/models/pagination_spec.rb +52 -0
  167. data/spec/models/statement_response_body_spec.rb +34 -0
  168. data/spec/models/statement_spec.rb +76 -0
  169. data/spec/models/statements_response_body_spec.rb +40 -0
  170. data/spec/models/tag_create_request_body_spec.rb +34 -0
  171. data/spec/models/tag_create_request_spec.rb +34 -0
  172. data/spec/models/tag_response_body_spec.rb +34 -0
  173. data/spec/models/tag_spec.rb +46 -0
  174. data/spec/models/tag_update_request_body_spec.rb +34 -0
  175. data/spec/models/tag_update_request_spec.rb +34 -0
  176. data/spec/models/tagging_create_request_body_spec.rb +34 -0
  177. data/spec/models/tagging_create_request_spec.rb +40 -0
  178. data/spec/models/tagging_response_body_spec.rb +34 -0
  179. data/spec/models/tagging_spec.rb +58 -0
  180. data/spec/models/tagging_update_request_body_spec.rb +34 -0
  181. data/spec/models/tagging_update_request_spec.rb +34 -0
  182. data/spec/models/taggings_response_body_spec.rb +40 -0
  183. data/spec/models/tags_response_body_spec.rb +40 -0
  184. data/spec/models/transaction_response_body_spec.rb +34 -0
  185. data/spec/models/transaction_rule_create_request_body_spec.rb +34 -0
  186. data/spec/models/transaction_rule_create_request_spec.rb +46 -0
  187. data/spec/models/transaction_rule_response_body_spec.rb +34 -0
  188. data/spec/models/transaction_rule_spec.rb +70 -0
  189. data/spec/models/transaction_rule_update_request_body_spec.rb +34 -0
  190. data/spec/models/transaction_rule_update_request_spec.rb +46 -0
  191. data/spec/models/transaction_rules_response_body_spec.rb +40 -0
  192. data/spec/models/transaction_spec.rb +244 -0
  193. data/spec/models/transaction_update_request_body_spec.rb +34 -0
  194. data/spec/models/transaction_update_request_spec.rb +34 -0
  195. data/spec/models/transactions_response_body_spec.rb +40 -0
  196. data/spec/models/user_create_request_body_spec.rb +34 -0
  197. data/spec/models/user_create_request_spec.rb +52 -0
  198. data/spec/models/user_response_body_spec.rb +34 -0
  199. data/spec/models/user_spec.rb +58 -0
  200. data/spec/models/user_update_request_body_spec.rb +34 -0
  201. data/spec/models/user_update_request_spec.rb +52 -0
  202. data/spec/models/users_response_body_spec.rb +40 -0
  203. data/spec/models/widget_request_body_spec.rb +34 -0
  204. data/spec/models/widget_request_spec.rb +106 -0
  205. data/spec/models/widget_response_body_spec.rb +34 -0
  206. data/spec/models/widget_spec.rb +46 -0
  207. data/spec/spec_helper.rb +100 -13
  208. metadata +317 -144
  209. data/.github/workflows/test.yml +0 -20
  210. data/.gitignore +0 -13
  211. data/.rubocop.yml +0 -44
  212. data/lib/mx-platform-ruby/account.rb +0 -107
  213. data/lib/mx-platform-ruby/account_number.rb +0 -57
  214. data/lib/mx-platform-ruby/account_owner.rb +0 -42
  215. data/lib/mx-platform-ruby/category.rb +0 -127
  216. data/lib/mx-platform-ruby/challenge.rb +0 -37
  217. data/lib/mx-platform-ruby/client.rb +0 -59
  218. data/lib/mx-platform-ruby/connect_widget.rb +0 -43
  219. data/lib/mx-platform-ruby/credential.rb +0 -54
  220. data/lib/mx-platform-ruby/enhanced_transaction.rb +0 -44
  221. data/lib/mx-platform-ruby/error.rb +0 -6
  222. data/lib/mx-platform-ruby/holding.rb +0 -87
  223. data/lib/mx-platform-ruby/institution.rb +0 -78
  224. data/lib/mx-platform-ruby/member.rb +0 -242
  225. data/lib/mx-platform-ruby/member_status.rb +0 -35
  226. data/lib/mx-platform-ruby/merchant.rb +0 -52
  227. data/lib/mx-platform-ruby/oauth_window.rb +0 -32
  228. data/lib/mx-platform-ruby/pageable.rb +0 -29
  229. data/lib/mx-platform-ruby/statement.rb +0 -70
  230. data/lib/mx-platform-ruby/tag.rb +0 -104
  231. data/lib/mx-platform-ruby/tagging.rb +0 -107
  232. data/lib/mx-platform-ruby/transaction.rb +0 -162
  233. data/lib/mx-platform-ruby/transaction_rule.rb +0 -112
  234. data/lib/mx-platform-ruby/user.rb +0 -112
  235. data/lib/mx-platform-ruby/widget.rb +0 -49
  236. data/spec/lib/mx-platform-ruby/account_number_spec.rb +0 -100
  237. data/spec/lib/mx-platform-ruby/account_owner_spec.rb +0 -71
  238. data/spec/lib/mx-platform-ruby/account_spec.rb +0 -267
  239. data/spec/lib/mx-platform-ruby/category_spec.rb +0 -244
  240. data/spec/lib/mx-platform-ruby/challenge_spec.rb +0 -72
  241. data/spec/lib/mx-platform-ruby/client_spec.rb +0 -101
  242. data/spec/lib/mx-platform-ruby/connect_widget_spec.rb +0 -66
  243. data/spec/lib/mx-platform-ruby/credential_spec.rb +0 -90
  244. data/spec/lib/mx-platform-ruby/enhanced_transaction_spec.rb +0 -89
  245. data/spec/lib/mx-platform-ruby/holding_spec.rb +0 -178
  246. data/spec/lib/mx-platform-ruby/institution_spec.rb +0 -141
  247. data/spec/lib/mx-platform-ruby/member_spec.rb +0 -557
  248. data/spec/lib/mx-platform-ruby/member_status_spec.rb +0 -76
  249. data/spec/lib/mx-platform-ruby/merchant_spec.rb +0 -89
  250. data/spec/lib/mx-platform-ruby/oauth_window_spec.rb +0 -47
  251. data/spec/lib/mx-platform-ruby/pageable_spec.rb +0 -75
  252. data/spec/lib/mx-platform-ruby/statement_spec.rb +0 -130
  253. data/spec/lib/mx-platform-ruby/tag_spec.rb +0 -179
  254. data/spec/lib/mx-platform-ruby/tagging_spec.rb +0 -191
  255. data/spec/lib/mx-platform-ruby/transaction_rule_spec.rb +0 -207
  256. data/spec/lib/mx-platform-ruby/transaction_spec.rb +0 -449
  257. data/spec/lib/mx-platform-ruby/user_spec.rb +0 -196
  258. data/spec/lib/mx-platform-ruby/widget_spec.rb +0 -76
  259. data/spec/lib/mx-platform-ruby_spec.rb +0 -15
  260. data/spec/sample.pdf +0 -0
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module MXPlatformRuby
4
- class MemberStatus
5
- include ::ActiveAttr::Model
6
-
7
- attribute :aggregated_at
8
- attribute :challenges
9
- attribute :connection_status
10
- attribute :guid
11
- attribute :has_processed_accounts
12
- attribute :has_processed_transactions
13
- attribute :is_authenticated
14
- attribute :is_being_aggregated
15
- attribute :successfully_aggregated_at
16
-
17
- def self.read_member_status(options = {})
18
- read_member_status_options = read_member_status_options(options)
19
- response = ::MXPlatformRuby.client.make_request(read_member_status_options)
20
-
21
- member_params = response['member']
22
- ::MXPlatformRuby::MemberStatus.new(member_params)
23
- end
24
-
25
- # Private class methods
26
-
27
- def self.read_member_status_options(options)
28
- {
29
- endpoint: "/users/#{options[:user_guid]}/members/#{options[:member_guid]}/status",
30
- http_method: :get
31
- }
32
- end
33
- private_class_method :read_member_status_options
34
- end
35
- end
@@ -1,52 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module MXPlatformRuby
4
- class Merchant
5
- extend ::MXPlatformRuby::Pageable
6
- include ::ActiveAttr::Model
7
-
8
- attribute :created_at
9
- attribute :guid
10
- attribute :logo_url
11
- attribute :name
12
- attribute :updated_at
13
- attribute :website_url
14
-
15
- def self.list_merchants(options = {})
16
- options = list_merchants_options(options)
17
-
18
- paginate(options)
19
- end
20
-
21
- def self.read_merchant(options = {})
22
- read_merchant_options = read_merchant_options(options)
23
- response = ::MXPlatformRuby.client.make_request(read_merchant_options)
24
-
25
- merchant_params = response['merchant']
26
- ::MXPlatformRuby::Merchant.new(merchant_params)
27
- end
28
-
29
- # Private class methods
30
-
31
- def self.list_merchants_options(options)
32
- {
33
- endpoint: '/merchants',
34
- http_method: :get,
35
- query_params: {
36
- page: options[:page],
37
- records_per_page: options[:records_per_page]
38
- }.compact,
39
- resource: 'merchants'
40
- }
41
- end
42
- private_class_method :list_merchants_options
43
-
44
- def self.read_merchant_options(options)
45
- {
46
- endpoint: "/merchants/#{options[:merchant_guid]}",
47
- http_method: :get
48
- }
49
- end
50
- private_class_method :read_merchant_options
51
- end
52
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module MXPlatformRuby
4
- class OAuthWindow
5
- include ::ActiveAttr::Model
6
-
7
- attribute :guid
8
- attribute :oauth_window_uri
9
-
10
- def self.request_oauth_window(options = {})
11
- request_oauth_window_options = request_oauth_window_options(options)
12
- response = ::MXPlatformRuby.client.make_request(request_oauth_window_options)
13
-
14
- member_params = response['member']
15
- ::MXPlatformRuby::OAuthWindow.new(member_params)
16
- end
17
-
18
- # Private class methods
19
-
20
- def self.request_oauth_window_options(options)
21
- {
22
- endpoint: "/users/#{options[:user_guid]}/members/#{options[:member_guid]}/oauth_window_uri",
23
- http_method: :get,
24
- query_params: {
25
- referral_source: options[:referral_source],
26
- ui_message_webview_url_scheme: options[:ui_message_webview_url_scheme]
27
- }.compact
28
- }
29
- end
30
- private_class_method :request_oauth_window_options
31
- end
32
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module MXPlatformRuby
4
- class Page < ::Array
5
- attr_accessor :current_page, :per_page, :total_entries, :total_pages
6
- end
7
-
8
- module Pageable
9
- def paginate(options = {})
10
- klass = options.fetch(:klass, self)
11
- resource = options.fetch(:resource)
12
-
13
- response = ::MXPlatformRuby.client.make_request(options)
14
- return nil if response.nil?
15
-
16
- pagination = response['pagination']
17
-
18
- records = response[resource].map { |attributes| klass.new(attributes) }
19
-
20
- page = ::MXPlatformRuby::Page.new(records)
21
- page.current_page = pagination['current_page']
22
- page.per_page = pagination['per_page']
23
- page.total_entries = pagination['total_entries']
24
- page.total_pages = pagination['total_pages']
25
-
26
- page
27
- end
28
- end
29
- end
@@ -1,70 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module MXPlatformRuby
4
- class Statement
5
- extend ::MXPlatformRuby::Pageable
6
- include ::ActiveAttr::Model
7
-
8
- attribute :account_guid
9
- attribute :content_hash
10
- attribute :created_at
11
- attribute :guid
12
- attribute :member_guid
13
- attribute :updated_at
14
- attribute :uri
15
- attribute :user_guid
16
-
17
- def self.download_statement_pdf(options = {})
18
- download_statement_pdf_options = download_statement_pdf_options(options)
19
- ::MXPlatformRuby.client.make_request(download_statement_pdf_options)
20
- end
21
-
22
- def self.list_statements_by_member(options = {})
23
- options = list_statements_by_member_options(options)
24
-
25
- paginate(options)
26
- end
27
-
28
- def self.read_statement_by_member(options = {})
29
- read_statement_by_member_options = read_statement_by_member_options(options)
30
- response = ::MXPlatformRuby.client.make_request(read_statement_by_member_options)
31
-
32
- statement_params = response['statement']
33
- ::MXPlatformRuby::Statement.new(statement_params)
34
- end
35
-
36
- # Private class methods
37
-
38
- def self.download_statement_pdf_options(options)
39
- {
40
- endpoint: "/users/#{options[:user_guid]}/members/#{options[:member_guid]}/statements/#{options[:statement_guid]}.pdf",
41
- headers: {
42
- 'Accept': 'application/vnd.mx.api.v1+pdf'
43
- },
44
- http_method: :get
45
- }
46
- end
47
- private_class_method :download_statement_pdf_options
48
-
49
- def self.list_statements_by_member_options(options)
50
- {
51
- endpoint: "/users/#{options[:user_guid]}/members/#{options[:member_guid]}/statements",
52
- http_method: :get,
53
- query_params: {
54
- page: options[:page],
55
- records_per_page: options[:records_per_page]
56
- }.compact,
57
- resource: 'statements'
58
- }
59
- end
60
- private_class_method :list_statements_by_member_options
61
-
62
- def self.read_statement_by_member_options(options)
63
- {
64
- endpoint: "/users/#{options[:user_guid]}/members/#{options[:member_guid]}/statements/#{options[:statement_guid]}",
65
- http_method: :get
66
- }
67
- end
68
- private_class_method :read_statement_by_member_options
69
- end
70
- end
@@ -1,104 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module MXPlatformRuby
4
- class Tag
5
- extend ::MXPlatformRuby::Pageable
6
- include ::ActiveAttr::Model
7
-
8
- attribute :guid
9
- attribute :name
10
- attribute :user_guid
11
-
12
- def self.create_tag(options = {})
13
- create_tag_options = create_tag_options(options)
14
- response = ::MXPlatformRuby.client.make_request(create_tag_options)
15
-
16
- tag_params = response['tag']
17
- ::MXPlatformRuby::Tag.new(tag_params)
18
- end
19
-
20
- def self.delete_tag(options = {})
21
- delete_tag_options = delete_tag_options(options)
22
- ::MXPlatformRuby.client.make_request(delete_tag_options)
23
- end
24
-
25
- def self.list_tags(options = {})
26
- options = list_tags_options(options)
27
-
28
- paginate(options)
29
- end
30
-
31
- def self.read_tag(options = {})
32
- read_tag_options = read_tag_options(options)
33
- response = ::MXPlatformRuby.client.make_request(read_tag_options)
34
-
35
- tag_params = response['tag']
36
- ::MXPlatformRuby::Tag.new(tag_params)
37
- end
38
-
39
- def self.update_tag(options = {})
40
- update_tag_options = update_tag_options(options)
41
- response = ::MXPlatformRuby.client.make_request(update_tag_options)
42
-
43
- tag_params = response['tag']
44
- ::MXPlatformRuby::Tag.new(tag_params)
45
- end
46
-
47
- # Private class methods
48
-
49
- def self.create_tag_options(options)
50
- {
51
- endpoint: "/users/#{options[:user_guid]}/tags",
52
- http_method: :post,
53
- request_body: {
54
- tag: {
55
- name: options[:name]
56
- }.compact
57
- }
58
- }
59
- end
60
- private_class_method :create_tag_options
61
-
62
- def self.delete_tag_options(options)
63
- {
64
- endpoint: "/users/#{options[:user_guid]}/tags/#{options[:tag_guid]}",
65
- http_method: :delete
66
- }
67
- end
68
- private_class_method :delete_tag_options
69
-
70
- def self.list_tags_options(options)
71
- {
72
- endpoint: "/users/#{options[:user_guid]}/tags",
73
- http_method: :get,
74
- query_params: {
75
- page: options[:page],
76
- records_per_page: options[:records_per_page]
77
- }.compact,
78
- resource: 'tags'
79
- }
80
- end
81
- private_class_method :list_tags_options
82
-
83
- def self.read_tag_options(options)
84
- {
85
- endpoint: "/users/#{options[:user_guid]}/tags/#{options[:tag_guid]}",
86
- http_method: :get
87
- }
88
- end
89
- private_class_method :read_tag_options
90
-
91
- def self.update_tag_options(options)
92
- {
93
- endpoint: "/users/#{options[:user_guid]}/tags/#{options[:tag_guid]}",
94
- http_method: :put,
95
- request_body: {
96
- tag: {
97
- name: options[:name]
98
- }.compact
99
- }
100
- }
101
- end
102
- private_class_method :update_tag_options
103
- end
104
- end
@@ -1,107 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module MXPlatformRuby
4
- class Tagging
5
- extend ::MXPlatformRuby::Pageable
6
- include ::ActiveAttr::Model
7
-
8
- attribute :guid
9
- attribute :member_is_managed_by_user
10
- attribute :tag_guid
11
- attribute :transaction_guid
12
- attribute :user_guid
13
-
14
- def self.create_tagging(options = {})
15
- create_tagging_options = create_tagging_options(options)
16
- response = ::MXPlatformRuby.client.make_request(create_tagging_options)
17
-
18
- tagging_params = response['tagging']
19
- ::MXPlatformRuby::Tagging.new(tagging_params)
20
- end
21
-
22
- def self.delete_tagging(options = {})
23
- delete_tagging_options = delete_tagging_options(options)
24
- ::MXPlatformRuby.client.make_request(delete_tagging_options)
25
- end
26
-
27
- def self.list_taggings(options = {})
28
- options = list_taggings_options(options)
29
-
30
- paginate(options)
31
- end
32
-
33
- def self.read_tagging(options = {})
34
- read_tagging_options = read_tagging_options(options)
35
- response = ::MXPlatformRuby.client.make_request(read_tagging_options)
36
-
37
- tagging_params = response['tagging']
38
- ::MXPlatformRuby::Tagging.new(tagging_params)
39
- end
40
-
41
- def self.update_tagging(options = {})
42
- update_tagging_options = update_tagging_options(options)
43
- response = ::MXPlatformRuby.client.make_request(update_tagging_options)
44
-
45
- tagging_params = response['tagging']
46
- ::MXPlatformRuby::Tagging.new(tagging_params)
47
- end
48
-
49
- # Private class methods
50
-
51
- def self.create_tagging_options(options)
52
- {
53
- endpoint: "/users/#{options[:user_guid]}/taggings",
54
- http_method: :post,
55
- request_body: {
56
- tagging: {
57
- tag_guid: options[:tag_guid],
58
- transaction_guid: options[:transaction_guid]
59
- }.compact
60
- }
61
- }
62
- end
63
- private_class_method :create_tagging_options
64
-
65
- def self.delete_tagging_options(options)
66
- {
67
- endpoint: "/users/#{options[:user_guid]}/taggings/#{options[:tagging_guid]}",
68
- http_method: :delete
69
- }
70
- end
71
- private_class_method :delete_tagging_options
72
-
73
- def self.list_taggings_options(options)
74
- {
75
- endpoint: "/users/#{options[:user_guid]}/taggings",
76
- http_method: :get,
77
- query_params: {
78
- page: options[:page],
79
- records_per_page: options[:records_per_page]
80
- }.compact,
81
- resource: 'taggings'
82
- }
83
- end
84
- private_class_method :list_taggings_options
85
-
86
- def self.read_tagging_options(options)
87
- {
88
- endpoint: "/users/#{options[:user_guid]}/taggings/#{options[:tagging_guid]}",
89
- http_method: :get
90
- }
91
- end
92
- private_class_method :read_tagging_options
93
-
94
- def self.update_tagging_options(options)
95
- {
96
- endpoint: "/users/#{options[:user_guid]}/taggings/#{options[:tagging_guid]}",
97
- http_method: :put,
98
- request_body: {
99
- tagging: {
100
- tag_guid: options[:tag_guid]
101
- }.compact
102
- }
103
- }
104
- end
105
- private_class_method :update_tagging_options
106
- end
107
- end
@@ -1,162 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module MXPlatformRuby
4
- class Transaction
5
- extend ::MXPlatformRuby::Pageable
6
- include ::ActiveAttr::Model
7
-
8
- attribute :account_guid
9
- attribute :amount
10
- attribute :category
11
- attribute :check_number_string
12
- attribute :created_at
13
- attribute :currency_code
14
- attribute :date
15
- attribute :description
16
- attribute :guid
17
- attribute :id
18
- attribute :is_bill_pay
19
- attribute :is_direct_deposit
20
- attribute :is_expense
21
- attribute :is_fee
22
- attribute :is_income
23
- attribute :is_international
24
- attribute :is_overdraft_fee
25
- attribute :is_payroll_advance
26
- attribute :is_recurring
27
- attribute :is_subscription
28
- attribute :latitude
29
- attribute :localized_description
30
- attribute :localized_memo
31
- attribute :longitude
32
- attribute :member_guid
33
- attribute :memo
34
- attribute :merchant_category_code
35
- attribute :merchant_guid
36
- attribute :original_description
37
- attribute :posted_at
38
- attribute :status
39
- attribute :top_level_category
40
- attribute :transacted_at
41
- attribute :type
42
- attribute :updated_at
43
- attribute :user_guid
44
-
45
- def self.list_transactions_by_account(options = {})
46
- options = list_transactions_by_account_options(options)
47
-
48
- paginate(options)
49
- end
50
-
51
- def self.list_transactions_by_member(options = {})
52
- options = list_transactions_by_member_options(options)
53
-
54
- paginate(options)
55
- end
56
-
57
- def self.list_transactions_by_tag(options = {})
58
- options = list_transactions_by_tag_options(options)
59
-
60
- paginate(options)
61
- end
62
-
63
- def self.list_transactions_by_user(options = {})
64
- options = list_transactions_by_user_options(options)
65
-
66
- paginate(options)
67
- end
68
-
69
- def self.read_transaction(options = {})
70
- read_transaction_options = read_transaction_options(options)
71
- response = ::MXPlatformRuby.client.make_request(read_transaction_options)
72
-
73
- transaction_params = response['transaction']
74
- ::MXPlatformRuby::Transaction.new(transaction_params)
75
- end
76
-
77
- def self.update_transaction(options = {})
78
- update_transaction_options = update_transaction_options(options)
79
- response = ::MXPlatformRuby.client.make_request(update_transaction_options)
80
-
81
- transaction_params = response['transaction']
82
- ::MXPlatformRuby::Transaction.new(transaction_params)
83
- end
84
-
85
- # Private class methods
86
-
87
- def self.list_transactions_by_account_options(options)
88
- {
89
- endpoint: "/users/#{options[:user_guid]}/accounts/#{options[:account_guid]}/transactions",
90
- http_method: :get,
91
- query_params: {
92
- from_date: options[:from_date],
93
- page: options[:page],
94
- records_per_page: options[:records_per_page],
95
- to_date: options[:to_date]
96
- }.compact,
97
- resource: 'transactions'
98
- }
99
- end
100
- private_class_method :list_transactions_by_account_options
101
-
102
- def self.list_transactions_by_member_options(options)
103
- {
104
- endpoint: "/users/#{options[:user_guid]}/members/#{options[:member_guid]}/transactions",
105
- http_method: :get,
106
- query_params: {
107
- from_date: options[:from_date],
108
- page: options[:page],
109
- records_per_page: options[:records_per_page],
110
- to_date: options[:to_date]
111
- }.compact,
112
- resource: 'transactions'
113
- }
114
- end
115
- private_class_method :list_transactions_by_member_options
116
-
117
- def self.list_transactions_by_tag_options(options)
118
- {
119
- endpoint: "/users/#{options[:user_guid]}/tags/#{options[:tag_guid]}/transactions",
120
- http_method: :get,
121
- resource: 'transactions'
122
- }
123
- end
124
- private_class_method :list_transactions_by_tag_options
125
-
126
- def self.list_transactions_by_user_options(options)
127
- {
128
- endpoint: "/users/#{options[:user_guid]}/transactions",
129
- http_method: :get,
130
- query_params: {
131
- from_date: options[:from_date],
132
- page: options[:page],
133
- records_per_page: options[:records_per_page],
134
- to_date: options[:to_date]
135
- }.compact,
136
- resource: 'transactions'
137
- }
138
- end
139
- private_class_method :list_transactions_by_user_options
140
-
141
- def self.read_transaction_options(options)
142
- {
143
- endpoint: "/users/#{options[:user_guid]}/transactions/#{options[:transaction_guid]}",
144
- http_method: :get
145
- }
146
- end
147
- private_class_method :read_transaction_options
148
-
149
- def self.update_transaction_options(options)
150
- {
151
- endpoint: "/users/#{options[:user_guid]}/transactions/#{options[:transaction_guid]}",
152
- http_method: :put,
153
- request_body: {
154
- transaction: {
155
- description: options[:description]
156
- }.compact
157
- }
158
- }
159
- end
160
- private_class_method :update_transaction_options
161
- end
162
- end