moneykit 0.0.2 → 0.0.3

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 (212) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moneykit/api/access_token_api.rb +53 -55
  3. data/lib/moneykit/api/account_numbers_api.rb +24 -24
  4. data/lib/moneykit/api/accounts_api.rb +86 -80
  5. data/lib/moneykit/api/identity_api.rb +29 -28
  6. data/lib/moneykit/api/institutions_api.rb +50 -48
  7. data/lib/moneykit/api/link_session_api.rb +47 -50
  8. data/lib/moneykit/api/links_api.rb +74 -81
  9. data/lib/moneykit/api/products_api.rb +31 -33
  10. data/lib/moneykit/api/transactions_api.rb +112 -87
  11. data/lib/moneykit/api/users_api.rb +96 -79
  12. data/lib/moneykit/api_client.rb +64 -71
  13. data/lib/moneykit/api_error.rb +14 -16
  14. data/lib/moneykit/configuration.rb +42 -45
  15. data/lib/moneykit/models/account.rb +62 -78
  16. data/lib/moneykit/models/account_balances.rb +58 -63
  17. data/lib/moneykit/models/account_group.rb +47 -47
  18. data/lib/moneykit/models/account_identity.rb +69 -89
  19. data/lib/moneykit/models/account_numbers.rb +50 -49
  20. data/lib/moneykit/models/account_numbers_link_product.rb +52 -54
  21. data/lib/moneykit/models/account_numbers_product_settings.rb +49 -48
  22. data/lib/moneykit/models/account_type.rb +23 -23
  23. data/lib/moneykit/models/account_with_account_numbers.rb +68 -89
  24. data/lib/moneykit/models/accounts_link_product.rb +46 -46
  25. data/lib/moneykit/models/ach_number.rb +48 -49
  26. data/lib/moneykit/models/address.rb +66 -75
  27. data/lib/moneykit/models/api_error_auth_expired_access_token_response.rb +63 -62
  28. data/lib/moneykit/models/api_error_auth_unauthorized_response.rb +60 -62
  29. data/lib/moneykit/models/api_error_rate_limit_exceeded_response.rb +63 -62
  30. data/lib/moneykit/models/app.rb +46 -50
  31. data/lib/moneykit/models/bacs_number.rb +45 -46
  32. data/lib/moneykit/models/balances.rb +58 -64
  33. data/lib/moneykit/models/basic_account_details.rb +55 -61
  34. data/lib/moneykit/models/country.rb +13 -14
  35. data/lib/moneykit/models/create_link_session_request.rb +83 -96
  36. data/lib/moneykit/models/create_link_session_response.rb +40 -37
  37. data/lib/moneykit/models/currency.rb +193 -193
  38. data/lib/moneykit/models/cursor.rb +40 -39
  39. data/lib/moneykit/models/cursor_pagination.rb +40 -38
  40. data/lib/moneykit/models/cursors.rb +40 -39
  41. data/lib/moneykit/models/customer_app.rb +46 -49
  42. data/lib/moneykit/models/customer_user.rb +59 -69
  43. data/lib/moneykit/models/eft_number.rb +48 -52
  44. data/lib/moneykit/models/email.rb +46 -48
  45. data/lib/moneykit/models/email1.rb +50 -53
  46. data/lib/moneykit/models/exchange_token_request.rb +40 -37
  47. data/lib/moneykit/models/exchange_token_response.rb +46 -49
  48. data/lib/moneykit/models/generate_access_token_response.rb +51 -58
  49. data/lib/moneykit/models/get_account_numbers_response.rb +48 -53
  50. data/lib/moneykit/models/get_account_response.rb +47 -52
  51. data/lib/moneykit/models/get_accounts_response.rb +47 -50
  52. data/lib/moneykit/models/get_institutions_response.rb +47 -50
  53. data/lib/moneykit/models/get_transactions_response.rb +68 -87
  54. data/lib/moneykit/models/get_user_accounts_response.rb +42 -42
  55. data/lib/moneykit/models/get_user_links_response.rb +42 -42
  56. data/lib/moneykit/models/get_user_transactions_response.rb +64 -82
  57. data/lib/moneykit/models/http_validation_error.rb +68 -71
  58. data/lib/moneykit/models/identity.rb +49 -49
  59. data/lib/moneykit/models/identity_link_product.rb +52 -54
  60. data/lib/moneykit/models/identity_product_settings.rb +49 -48
  61. data/lib/moneykit/models/identity_response.rb +47 -50
  62. data/lib/moneykit/models/institution.rb +77 -96
  63. data/lib/moneykit/models/institution_error_not_found_response.rb +63 -64
  64. data/lib/moneykit/models/institution_styling_response.rb +77 -93
  65. data/lib/moneykit/models/international_number.rb +46 -49
  66. data/lib/moneykit/models/introspect_client_response.rb +61 -73
  67. data/lib/moneykit/models/jwk_set.rb +41 -42
  68. data/lib/moneykit/models/link.rb +78 -100
  69. data/lib/moneykit/models/link1.rb +78 -100
  70. data/lib/moneykit/models/link2.rb +78 -100
  71. data/lib/moneykit/models/link3.rb +78 -100
  72. data/lib/moneykit/models/link4.rb +78 -100
  73. data/lib/moneykit/models/link_common.rb +78 -99
  74. data/lib/moneykit/models/link_error.rb +19 -19
  75. data/lib/moneykit/models/link_error_bad_state_response.rb +64 -72
  76. data/lib/moneykit/models/link_error_deleted_response.rb +63 -64
  77. data/lib/moneykit/models/link_error_forbidden_action_response.rb +60 -62
  78. data/lib/moneykit/models/link_error_not_found_response.rb +63 -64
  79. data/lib/moneykit/models/link_error_unauthorized_access_response.rb +63 -64
  80. data/lib/moneykit/models/link_permission_scope.rb +14 -15
  81. data/lib/moneykit/models/link_permissions.rb +43 -43
  82. data/lib/moneykit/models/link_products.rb +52 -63
  83. data/lib/moneykit/models/link_response.rb +90 -118
  84. data/lib/moneykit/models/link_session_customer_user.rb +58 -68
  85. data/lib/moneykit/models/link_session_customer_user_email.rb +50 -52
  86. data/lib/moneykit/models/link_session_customer_user_phone.rb +60 -67
  87. data/lib/moneykit/models/link_session_error_forbidden_config_response.rb +60 -62
  88. data/lib/moneykit/models/link_session_error_invalid_token_exchange.rb +60 -62
  89. data/lib/moneykit/models/link_session_setting_overrides.rb +61 -72
  90. data/lib/moneykit/models/link_state.rb +15 -16
  91. data/lib/moneykit/models/link_state_changed_webhook.rb +110 -134
  92. data/lib/moneykit/models/location_inner.rb +41 -46
  93. data/lib/moneykit/models/money_kit_env.rb +12 -13
  94. data/lib/moneykit/models/money_link_features.rb +49 -48
  95. data/lib/moneykit/models/moneylink_features.rb +50 -49
  96. data/lib/moneykit/models/numbers.rb +60 -73
  97. data/lib/moneykit/models/owner.rb +59 -72
  98. data/lib/moneykit/models/phone.rb +60 -68
  99. data/lib/moneykit/models/phone_number.rb +55 -59
  100. data/lib/moneykit/models/phone_number_type.rb +14 -15
  101. data/lib/moneykit/models/product.rb +14 -15
  102. data/lib/moneykit/models/products.rb +52 -64
  103. data/lib/moneykit/models/products1.rb +48 -56
  104. data/lib/moneykit/models/products_settings.rb +48 -55
  105. data/lib/moneykit/models/provider.rb +15 -16
  106. data/lib/moneykit/models/refresh_products_request.rb +43 -45
  107. data/lib/moneykit/models/requested_link_permission.rb +52 -60
  108. data/lib/moneykit/models/response401_disconnect_links_id_delete.rb +71 -77
  109. data/lib/moneykit/models/response401_exchange_token_link_session_exchange_token_post.rb +66 -72
  110. data/lib/moneykit/models/response401_get_account_links_id_accounts_account_id_get.rb +71 -77
  111. data/lib/moneykit/models/response401_get_account_numbers_links_id_accounts_numbers_get.rb +71 -77
  112. data/lib/moneykit/models/response401_get_accounts_links_id_accounts_get.rb +71 -77
  113. data/lib/moneykit/models/response401_get_identities_links_id_identity_get.rb +71 -77
  114. data/lib/moneykit/models/response401_get_institution_institutions_institution_id_get.rb +66 -72
  115. data/lib/moneykit/models/response401_get_institution_styling_institutions_institution_id_styling_get.rb +66 -72
  116. data/lib/moneykit/models/response401_get_institutions_institutions_get.rb +66 -72
  117. data/lib/moneykit/models/response401_get_link_links_id_get.rb +71 -77
  118. data/lib/moneykit/models/response401_get_transactions_diff_links_id_transactions_sync_get.rb +71 -77
  119. data/lib/moneykit/models/response401_get_transactions_links_id_transactions_get.rb +71 -77
  120. data/lib/moneykit/models/response401_get_user_accounts_users_id_accounts_get.rb +66 -72
  121. data/lib/moneykit/models/response401_get_user_links_users_id_links_get.rb +66 -72
  122. data/lib/moneykit/models/response401_get_user_transactions_users_id_transactions_get.rb +66 -72
  123. data/lib/moneykit/models/response401_get_well_known_jwks_well_known_jwks_json_get.rb +66 -72
  124. data/lib/moneykit/models/response401_instrospect_client_auth_introspect_get.rb +66 -72
  125. data/lib/moneykit/models/response401_refresh_products_links_id_products_post.rb +71 -77
  126. data/lib/moneykit/models/response401_update_link_links_id_patch.rb +71 -77
  127. data/lib/moneykit/models/settings.rb +61 -73
  128. data/lib/moneykit/models/supported_version.rb +11 -12
  129. data/lib/moneykit/models/transaction.rb +87 -114
  130. data/lib/moneykit/models/transaction_diff.rb +54 -62
  131. data/lib/moneykit/models/transaction_sync_response.rb +57 -72
  132. data/lib/moneykit/models/transaction_type.rb +12 -13
  133. data/lib/moneykit/models/transaction_type_filter.rb +12 -13
  134. data/lib/moneykit/models/transactions.rb +58 -57
  135. data/lib/moneykit/models/transactions1.rb +55 -63
  136. data/lib/moneykit/models/transactions_link_product.rb +52 -54
  137. data/lib/moneykit/models/transactions_product_settings.rb +57 -56
  138. data/lib/moneykit/models/update_link_request.rb +53 -52
  139. data/lib/moneykit/models/user_accounts_out.rb +40 -40
  140. data/lib/moneykit/models/user_links_out.rb +40 -40
  141. data/lib/moneykit/models/user_transactions_paged_response.rb +40 -40
  142. data/lib/moneykit/models/validation_error.rb +53 -64
  143. data/lib/moneykit/version.rb +10 -12
  144. data/lib/moneykit.rb +9 -11
  145. data/lib/plaid_compatible/money_kit_plaid_compatible/api/plaid_api.rb +203 -207
  146. data/lib/plaid_compatible/money_kit_plaid_compatible/api_client.rb +75 -76
  147. data/lib/plaid_compatible/money_kit_plaid_compatible/api_error.rb +19 -19
  148. data/lib/plaid_compatible/money_kit_plaid_compatible/configuration.rb +38 -40
  149. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_balance.rb +59 -61
  150. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_base.rb +71 -87
  151. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_identity.rb +77 -98
  152. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_subtype.rb +85 -86
  153. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_type.rb +18 -19
  154. data/lib/plaid_compatible/money_kit_plaid_compatible/models/accounts_get_request.rb +59 -61
  155. data/lib/plaid_compatible/money_kit_plaid_compatible/models/accounts_get_request_options.rb +44 -41
  156. data/lib/plaid_compatible/money_kit_plaid_compatible/models/accounts_get_response.rb +55 -60
  157. data/lib/plaid_compatible/money_kit_plaid_compatible/models/address.rb +49 -47
  158. data/lib/plaid_compatible/money_kit_plaid_compatible/models/address_data.rb +65 -69
  159. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_numbers.rb +63 -73
  160. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_request.rb +59 -61
  161. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_request_options.rb +44 -41
  162. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_response.rb +61 -72
  163. data/lib/plaid_compatible/money_kit_plaid_compatible/models/country_code.rb +15 -16
  164. data/lib/plaid_compatible/money_kit_plaid_compatible/models/email.rb +49 -50
  165. data/lib/plaid_compatible/money_kit_plaid_compatible/models/http_validation_error.rb +43 -41
  166. data/lib/plaid_compatible/money_kit_plaid_compatible/models/identity_get_request.rb +59 -61
  167. data/lib/plaid_compatible/money_kit_plaid_compatible/models/identity_get_request_options.rb +44 -41
  168. data/lib/plaid_compatible/money_kit_plaid_compatible/models/identity_get_response.rb +55 -60
  169. data/lib/plaid_compatible/money_kit_plaid_compatible/models/institution.rb +65 -71
  170. data/lib/plaid_compatible/money_kit_plaid_compatible/models/institutions_get_by_id_request.rb +60 -61
  171. data/lib/plaid_compatible/money_kit_plaid_compatible/models/institutions_get_by_id_response.rb +49 -50
  172. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item.rb +85 -96
  173. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_error_webhook.rb +65 -77
  174. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_get_request.rb +55 -55
  175. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_get_response.rb +55 -59
  176. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_public_token_exchange_request.rb +55 -55
  177. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_public_token_exchange_response.rb +54 -59
  178. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_remove_request.rb +55 -55
  179. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_remove_response.rb +44 -41
  180. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_investments.rb +49 -47
  181. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_last_webhook.rb +50 -48
  182. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_nullable.rb +55 -59
  183. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_transactions.rb +49 -47
  184. data/lib/plaid_compatible/money_kit_plaid_compatible/models/link_token_create_request.rb +100 -121
  185. data/lib/plaid_compatible/money_kit_plaid_compatible/models/link_token_create_request_user.rb +66 -66
  186. data/lib/plaid_compatible/money_kit_plaid_compatible/models/link_token_create_response.rb +54 -59
  187. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_ach.rb +59 -65
  188. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_bacs.rb +54 -59
  189. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_eft.rb +59 -68
  190. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_international.rb +54 -59
  191. data/lib/plaid_compatible/money_kit_plaid_compatible/models/owner.rb +63 -73
  192. data/lib/plaid_compatible/money_kit_plaid_compatible/models/personal_finance_category.rb +49 -50
  193. data/lib/plaid_compatible/money_kit_plaid_compatible/models/phone_number.rb +54 -59
  194. data/lib/plaid_compatible/money_kit_plaid_compatible/models/plaid_error.rb +88 -103
  195. data/lib/plaid_compatible/money_kit_plaid_compatible/models/plaid_error_type.rb +26 -27
  196. data/lib/plaid_compatible/money_kit_plaid_compatible/models/products.rb +16 -17
  197. data/lib/plaid_compatible/money_kit_plaid_compatible/models/removed_transaction.rb +43 -39
  198. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transaction.rb +107 -134
  199. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_get_request.rb +69 -79
  200. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_get_request_options.rb +66 -68
  201. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_get_response.rb +65 -76
  202. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_refresh_request.rb +55 -55
  203. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_refresh_response.rb +44 -41
  204. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_sync_request.rb +69 -75
  205. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_sync_request_options.rb +50 -46
  206. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_sync_response.rb +72 -89
  207. data/lib/plaid_compatible/money_kit_plaid_compatible/models/validation_error.rb +56 -65
  208. data/lib/plaid_compatible/money_kit_plaid_compatible/models/webhook_environment_values.rb +15 -16
  209. data/lib/plaid_compatible/money_kit_plaid_compatible/version.rb +13 -13
  210. data/lib/plaid_compatible/money_kit_plaid_compatible.rb +12 -12
  211. data/moneykit.gemspec +21 -25
  212. metadata +1 -1
@@ -1,14 +1,12 @@
1
- =begin
2
- #Plaid Compatibility Layer
3
-
4
- #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
-
6
- The version of the OpenAPI document: 0.1.0
7
-
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.1.1
10
-
11
- =end
1
+ # #Plaid Compatibility Layer
2
+ #
3
+ # No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
+ #
5
+ # The version of the OpenAPI document: 0.1.0
6
+ #
7
+ # Generated by: https://openapi-generator.tech
8
+ # OpenAPI Generator version: 5.1.1
9
+ #
12
10
 
13
11
  require 'date'
14
12
  require 'json'
@@ -17,7 +15,8 @@ require 'tempfile'
17
15
  require 'faraday'
18
16
  require 'faraday/multipart'
19
17
 
20
- module MoneyKit::PlaidCompatible
18
+ module MoneyKit
19
+ module PlaidCompatible
21
20
  class ApiClient
22
21
  # The Configuration object holding settings to be used in the API client.
23
22
  attr_accessor :config
@@ -34,10 +33,10 @@ module MoneyKit::PlaidCompatible
34
33
  # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
35
34
  def initialize(config = Configuration.default)
36
35
  @config = config
37
- @user_agent = "Plaid Ruby v1.0.0"
36
+ @user_agent = 'Plaid Ruby v1.0.0'
38
37
  @default_headers = {
39
38
  'Content-Type' => 'application/json',
40
- 'User-Agent' => @user_agent,
39
+ 'User-Agent' => @user_agent
41
40
  }
42
41
  @connection = create_connection
43
42
  end
@@ -57,7 +56,7 @@ module MoneyKit::PlaidCompatible
57
56
  # @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
58
57
  # the data deserialized from response body (could be nil), response status code and response headers.
59
58
  def call_api(http_method, path, opts = {})
60
- if opts[:header_params]["Content-Type"] == "multipart/form-data"
59
+ if opts[:header_params]['Content-Type'] == 'multipart/form-data'
61
60
  connection.request :multipart
62
61
  connection.request :url_encoded
63
62
  end
@@ -67,32 +66,30 @@ module MoneyKit::PlaidCompatible
67
66
  build_request(http_method, path, req, opts)
68
67
  end
69
68
 
70
- if @config.debugging
71
- @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
72
- end
69
+ @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n" if @config.debugging
73
70
 
74
71
  unless response.success?
75
72
  if response.status == 0
76
73
  # Errors from libcurl will be made visible here
77
- fail ApiError.new(:code => 0,
78
- :message => response.return_message)
74
+ raise ApiError.new(code: 0,
75
+ message: response.return_message)
79
76
  else
80
77
  raw_body = response.body
81
78
  # Gracefully handle malformed body which is possible during API outage/maintanance
82
79
  parsed_body = begin
83
- JSON.parse(raw_body)
84
- rescue JSON::ParserError
85
- nil
86
- end
87
- fail ApiError.new(:code => response.status,
88
- :response_headers => response.headers,
89
- :response_body => raw_body,
90
- :data => parsed_body),
91
- response.reason_phrase
80
+ JSON.parse(raw_body)
81
+ rescue JSON::ParserError
82
+ nil
83
+ end
84
+ raise ApiError.new(code: response.status,
85
+ response_headers: response.headers,
86
+ response_body: raw_body,
87
+ data: parsed_body),
88
+ response.reason_phrase
92
89
  end
93
90
  end
94
91
  rescue Faraday::TimeoutError
95
- fail ApiError.new('Connection timed out')
92
+ raise ApiError, 'Connection timed out'
96
93
  end
97
94
 
98
95
  if opts[:return_type]
@@ -101,7 +98,7 @@ module MoneyKit::PlaidCompatible
101
98
  else
102
99
  data = nil
103
100
  end
104
- return data, response.status, response.headers
101
+ [data, response.status, response.headers]
105
102
  end
106
103
 
107
104
  # Builds the HTTP request
@@ -124,20 +121,18 @@ module MoneyKit::PlaidCompatible
124
121
  update_params_for_auth! header_params, query_params, opts[:auth_names]
125
122
 
126
123
  req_opts = {
127
- :method => http_method,
128
- :headers => header_params,
129
- :params => query_params,
130
- :params_encoding => @config.params_encoding,
131
- :timeout => @config.timeout,
132
- :verbose => @config.debugging
124
+ method: http_method,
125
+ headers: header_params,
126
+ params: query_params,
127
+ params_encoding: @config.params_encoding,
128
+ timeout: @config.timeout,
129
+ verbose: @config.debugging
133
130
  }
134
131
 
135
- if [:post, :patch, :put, :delete].include?(http_method)
132
+ if %i[post patch put delete].include?(http_method)
136
133
  req_body = build_request_body(header_params, form_params, opts[:body])
137
- req_opts.update :body => req_body
138
- if @config.debugging
139
- @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
140
- end
134
+ req_opts.update body: req_body
135
+ @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n" if @config.debugging
141
136
  end
142
137
  request.headers = header_params
143
138
  request.body = req_body
@@ -159,16 +154,16 @@ module MoneyKit::PlaidCompatible
159
154
  elsif header_params['Content-Type'] == 'multipart/form-data'
160
155
  data = {}
161
156
  form_params.each do |key, value|
162
- case value
163
- when ::File, ::Tempfile
164
- # TODO hardcode to application/octet-stream, need better way to detect content type
165
- data[key] = Faraday::Multipart::Post::UploadIO.new(value.path, 'application/octet-stream', value.path)
166
- when ::Array, nil
167
- # let Faraday handle Array and nil parameters
168
- data[key] = value
169
- else
170
- data[key] = value.to_s
171
- end
157
+ data[key] = case value
158
+ when ::File, ::Tempfile
159
+ # TODO: hardcode to application/octet-stream, need better way to detect content type
160
+ Faraday::Multipart::Post::UploadIO.new(value.path, 'application/octet-stream', value.path)
161
+ when ::Array, nil
162
+ # let Faraday handle Array and nil parameters
163
+ value
164
+ else
165
+ value.to_s
166
+ end
172
167
  end
173
168
  elsif body
174
169
  data = body.is_a?(String) ? body : body.to_json
@@ -187,7 +182,7 @@ module MoneyKit::PlaidCompatible
187
182
  # @param [String] mime MIME
188
183
  # @return [Boolean] True if the MIME is application/json
189
184
  def json_mime?(mime)
190
- (mime == '*/*') || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
185
+ (mime == '*/*') || !(mime =~ %r{Application/.*json(?!p)(;.*)?}i).nil?
191
186
  end
192
187
 
193
188
  # Deserialize the response to the given return type.
@@ -209,16 +204,14 @@ module MoneyKit::PlaidCompatible
209
204
  # ensuring a default content type
210
205
  content_type = response.headers['Content-Type'] || 'application/json'
211
206
 
212
- fail "Content-Type is not supported: #{content_type}" unless json_mime?(content_type)
207
+ raise "Content-Type is not supported: #{content_type}" unless json_mime?(content_type)
213
208
 
214
209
  begin
215
- data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
210
+ data = JSON.parse("[#{body}]", symbolize_names: true)[0]
216
211
  rescue JSON::ParserError => e
217
- if %w(String Date DateTime).include?(return_type)
218
- data = body
219
- else
220
- raise e
221
- end
212
+ raise e unless %w[String Date DateTime].include?(return_type)
213
+
214
+ data = body
222
215
  end
223
216
 
224
217
  convert_to_type data, return_type
@@ -230,6 +223,7 @@ module MoneyKit::PlaidCompatible
230
223
  # @return [Mixed] Data in a particular type
231
224
  def convert_to_type(data, return_type)
232
225
  return nil if data.nil?
226
+
233
227
  case return_type
234
228
  when 'String'
235
229
  data.to_s
@@ -250,11 +244,11 @@ module MoneyKit::PlaidCompatible
250
244
  data
251
245
  when /\AArray<(.+)>\z/
252
246
  # e.g. Array<Pet>
253
- sub_type = $1
247
+ sub_type = ::Regexp.last_match(1)
254
248
  data.map { |item| convert_to_type(item, sub_type) }
255
- when /\AHash\<String, (.+)\>\z/
249
+ when /\AHash<String, (.+)>\z/
256
250
  # e.g. Hash<String, Integer>
257
- sub_type = $1
251
+ sub_type = ::Regexp.last_match(1)
258
252
  {}.tap do |hash|
259
253
  data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
260
254
  end
@@ -272,14 +266,14 @@ module MoneyKit::PlaidCompatible
272
266
  #
273
267
  # @see Configuration#temp_folder_path
274
268
  def prepare_file(response)
275
- content_disposition = response.headers["Content-Disposition"]
269
+ content_disposition = response.headers['Content-Disposition']
276
270
  if content_disposition && content_disposition =~ /filename=/i
277
271
  filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
278
272
  prefix = sanitize_filename(filename)
279
273
  else
280
- prefix = "download-"
274
+ prefix = 'download-'
281
275
  end
282
- prefix = prefix + "-" unless prefix.end_with?("-")
276
+ prefix += '-' unless prefix.end_with?('-')
283
277
  encoding = response.body.encoding
284
278
  tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
285
279
  @tempfile = tempfile
@@ -288,7 +282,7 @@ module MoneyKit::PlaidCompatible
288
282
  @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder " \
289
283
  "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file " \
290
284
  "will be deleted automatically with GC. It's also recommended to delete the temp file " \
291
- "explicitly with `tempfile.delete`"
285
+ 'explicitly with `tempfile.delete`'
292
286
  end
293
287
 
294
288
  # Sanitize filename by removing path.
@@ -297,12 +291,12 @@ module MoneyKit::PlaidCompatible
297
291
  # @param [String] filename the filename to be sanitized
298
292
  # @return [String] the sanitized filename
299
293
  def sanitize_filename(filename)
300
- filename.gsub(/.*[\/\\]/, '')
294
+ filename.gsub(%r{.*[/\\]}, '')
301
295
  end
302
296
 
303
297
  def build_request_url(path)
304
298
  # Add leading and trailing slashes to path
305
- path = "/#{path}".gsub(/\/+/, '/')
299
+ path = "/#{path}".gsub(%r{/+}, '/')
306
300
  @config.base_url + path
307
301
  end
308
302
 
@@ -315,10 +309,11 @@ module MoneyKit::PlaidCompatible
315
309
  Array(auth_names).each do |auth_name|
316
310
  auth_setting = @config.auth_settings[auth_name]
317
311
  next unless auth_setting
312
+
318
313
  case auth_setting[:in]
319
314
  when 'header' then header_params[auth_setting[:key]] = auth_setting[:value]
320
315
  when 'query' then query_params[auth_setting[:key]] = auth_setting[:value]
321
- else fail ArgumentError, 'Authentication token must be in `query` of `header`'
316
+ else raise ArgumentError, 'Authentication token must be in `query` of `header`'
322
317
  end
323
318
  end
324
319
  end
@@ -336,6 +331,7 @@ module MoneyKit::PlaidCompatible
336
331
  # @return [String] the Accept header (e.g. application/json)
337
332
  def select_header_accept(accepts)
338
333
  return nil if accepts.nil? || accepts.empty?
334
+
339
335
  # use JSON when present, otherwise use all of the provided
340
336
  json_accept = accepts.find { |s| json_mime?(s) }
341
337
  json_accept || accepts.join(',')
@@ -347,6 +343,7 @@ module MoneyKit::PlaidCompatible
347
343
  def select_header_content_type(content_types)
348
344
  # use application/json by default
349
345
  return 'application/json' if content_types.nil? || content_types.empty?
346
+
350
347
  # use JSON when present, otherwise use the first one
351
348
  json_content_type = content_types.find { |s| json_mime?(s) }
352
349
  json_content_type || content_types.first
@@ -357,12 +354,13 @@ module MoneyKit::PlaidCompatible
357
354
  # @return [String] JSON string representation of the object
358
355
  def object_to_http_body(model)
359
356
  return model if model.nil? || model.is_a?(String)
357
+
360
358
  local_body = nil
361
- if model.is_a?(Array)
362
- local_body = model.map { |m| object_to_hash(m) }
363
- else
364
- local_body = object_to_hash(model)
365
- end
359
+ local_body = if model.is_a?(Array)
360
+ model.map { |m| object_to_hash(m) }
361
+ else
362
+ object_to_hash(model)
363
+ end
366
364
  local_body.to_json
367
365
  end
368
366
 
@@ -393,8 +391,9 @@ module MoneyKit::PlaidCompatible
393
391
  # return the array directly as typhoeus will handle it as expected
394
392
  param
395
393
  else
396
- fail "unknown collection format: #{collection_format.inspect}"
394
+ raise "unknown collection format: #{collection_format.inspect}"
397
395
  end
398
396
  end
399
397
  end
398
+ end
400
399
  end
@@ -1,16 +1,15 @@
1
- =begin
2
- #Plaid Compatibility Layer
3
-
4
- #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
-
6
- The version of the OpenAPI document: 0.1.0
7
-
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.1.1
10
-
11
- =end
12
-
13
- module MoneyKit::PlaidCompatible
1
+ # #Plaid Compatibility Layer
2
+ #
3
+ # No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
+ #
5
+ # The version of the OpenAPI document: 0.1.0
6
+ #
7
+ # Generated by: https://openapi-generator.tech
8
+ # OpenAPI Generator version: 5.1.1
9
+ #
10
+
11
+ module MoneyKit
12
+ module PlaidCompatible
14
13
  class ApiError < StandardError
15
14
  attr_reader :code, :response_headers, :response_body, :data
16
15
 
@@ -41,11 +40,11 @@ module MoneyKit::PlaidCompatible
41
40
  end
42
41
 
43
42
  def message
44
- if @message.nil?
45
- msg = "Error message: the server returns an error"
46
- else
47
- msg = @message
48
- end
43
+ msg = if @message.nil?
44
+ 'Error message: the server returns an error'
45
+ else
46
+ @message
47
+ end
49
48
 
50
49
  msg += "\nHTTP status code: #{code}" if code
51
50
  msg += "\nResponse headers: #{response_headers}" if response_headers
@@ -54,4 +53,5 @@ module MoneyKit::PlaidCompatible
54
53
  msg
55
54
  end
56
55
  end
57
- end
56
+ end
57
+ end
@@ -1,21 +1,19 @@
1
- =begin
2
- #Plaid Compatibility Layer
3
-
4
- #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
-
6
- The version of the OpenAPI document: 0.1.0
7
-
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.1.1
10
-
11
- =end
12
-
13
- module MoneyKit::PlaidCompatible
14
-
1
+ # #Plaid Compatibility Layer
2
+ #
3
+ # No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
+ #
5
+ # The version of the OpenAPI document: 0.1.0
6
+ #
7
+ # Generated by: https://openapi-generator.tech
8
+ # OpenAPI Generator version: 5.1.1
9
+ #
10
+
11
+ module MoneyKit
12
+ module PlaidCompatible
15
13
  class Configuration
16
14
  # Plaid Environment mapping
17
15
  # production, development, sandbox
18
- Environment = { "production" => 0, "sandbox" => 1 }
16
+ Environment = { 'production' => 0, 'sandbox' => 1 }
19
17
 
20
18
  # Defines url scheme
21
19
  attr_accessor :scheme
@@ -132,9 +130,7 @@ module MoneyKit::PlaidCompatible
132
130
  # https://github.com/typhoeus/ethon/blob/master/lib/ethon/easy/queryable.rb#L96
133
131
  attr_accessor :params_encoding
134
132
 
135
- attr_accessor :inject_format
136
-
137
- attr_accessor :force_ending_format
133
+ attr_accessor :inject_format, :force_ending_format
138
134
 
139
135
  def initialize
140
136
  @scheme = 'https'
@@ -145,7 +141,7 @@ module MoneyKit::PlaidCompatible
145
141
  @server_variables = {}
146
142
  @server_operation_variables = {}
147
143
  @api_key = {
148
- 'Plaid-Version' => '',
144
+ 'Plaid-Version' => ''
149
145
  }
150
146
  @api_key_prefix = {}
151
147
  @timeout = 60
@@ -158,7 +154,7 @@ module MoneyKit::PlaidCompatible
158
154
  @debugging = false
159
155
  @inject_format = false
160
156
  @force_ending_format = false
161
- @logger = (defined?(Rails) && Rails.respond_to?(:logger)) ? Rails.logger : Logger.new(STDOUT)
157
+ @logger = defined?(Rails) && Rails.respond_to?(:logger) ? Rails.logger : Logger.new(STDOUT)
162
158
 
163
159
  yield(self) if block_given?
164
160
  end
@@ -174,26 +170,27 @@ module MoneyKit::PlaidCompatible
174
170
 
175
171
  def scheme=(scheme)
176
172
  # remove :// from scheme
177
- @scheme = scheme.sub(/:\/\//, '')
173
+ @scheme = scheme.sub(%r{://}, '')
178
174
  end
179
175
 
180
176
  def host=(host)
181
177
  # remove http(s):// and anything after a slash
182
- @host = host.sub(/https?:\/\//, '').split('/').first
178
+ @host = host.sub(%r{https?://}, '').split('/').first
183
179
  end
184
180
 
185
181
  def base_path=(base_path)
186
182
  # Add leading and trailing slashes to base_path
187
- @base_path = "/#{base_path}".gsub(/\/+/, '/')
183
+ @base_path = "/#{base_path}".gsub(%r{/+}, '/')
188
184
  @base_path = '' if @base_path == '/'
189
185
  end
190
186
 
191
187
  # Returns base URL for specified operation based on server settings
192
188
  def base_url(operation = nil)
193
189
  index = server_operation_index.fetch(operation, server_index)
194
- return "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') if index == nil
190
+ return "#{scheme}://#{[host, base_path].join('/').gsub(%r{/+}, '/')}".sub(%r{/+\z}, '') if index.nil?
195
191
 
196
- server_url(index, server_operation_variables.fetch(operation, server_variables), operation_server_settings[operation])
192
+ server_url(index, server_operation_variables.fetch(operation, server_variables),
193
+ operation_server_settings[operation])
197
194
  end
198
195
 
199
196
  # Gets API key (with prefix if set).
@@ -227,7 +224,7 @@ module MoneyKit::PlaidCompatible
227
224
  in: 'header',
228
225
  key: 'PLAID-SECRET',
229
226
  value: api_key_with_prefix('PLAID-SECRET')
230
- },
227
+ }
231
228
  }
232
229
  end
233
230
 
@@ -235,19 +232,18 @@ module MoneyKit::PlaidCompatible
235
232
  def server_settings
236
233
  [
237
234
  {
238
- url: "https://production.moneykit.com/plaid-compatible",
239
- description: "MoneyKit production environment (Live institution data)",
235
+ url: 'https://production.moneykit.com/plaid-compatible',
236
+ description: 'MoneyKit production environment (Live institution data)'
240
237
  },
241
238
  {
242
- url: "https://sandbox.moneykit.com/plaid-compatible",
243
- description: "MoneyKit sandbox environment (Unrestricted environment with fake institution data)",
239
+ url: 'https://sandbox.moneykit.com/plaid-compatible',
240
+ description: 'MoneyKit sandbox environment (Unrestricted environment with fake institution data)'
244
241
  }
245
242
  ]
246
243
  end
247
244
 
248
245
  def operation_server_settings
249
- {
250
- }
246
+ {}
251
247
  end
252
248
 
253
249
  # Returns URL based on server settings
@@ -255,11 +251,11 @@ module MoneyKit::PlaidCompatible
255
251
  # @param index array index of the server settings
256
252
  # @param variables hash of variable and the corresponding value
257
253
  def server_url(index, variables = {}, servers = nil)
258
- servers = server_settings if servers == nil
254
+ servers = server_settings if servers.nil?
259
255
 
260
256
  # check array index out of bound
261
- if (index < 0 || index >= servers.size)
262
- fail ArgumentError, "Invalid index #{index} when selecting the server. Must be less than #{servers.size}"
257
+ if index < 0 || index >= servers.size
258
+ raise ArgumentError, "Invalid index #{index} when selecting the server. Must be less than #{servers.size}"
263
259
  end
264
260
 
265
261
  server = servers[index]
@@ -268,20 +264,22 @@ module MoneyKit::PlaidCompatible
268
264
  return url unless server.key? :variables
269
265
 
270
266
  # go through variable and assign a value
271
- server[:variables].each do |name, variable|
267
+ server[:variables].each do |name, _variable|
272
268
  if variables.key?(name)
273
- if (!server[:variables][name].key?(:enum_values) || server[:variables][name][:enum_values].include?(variables[name]))
274
- url.gsub! "{" + name.to_s + "}", variables[name]
269
+ if !server[:variables][name].key?(:enum_values) || server[:variables][name][:enum_values].include?(variables[name])
270
+ url.gsub! '{' + name.to_s + '}', variables[name]
275
271
  else
276
- fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
272
+ raise ArgumentError,
273
+ "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
277
274
  end
278
275
  else
279
276
  # use default value
280
- url.gsub! "{" + name.to_s + "}", server[:variables][name][:default_value]
277
+ url.gsub! '{' + name.to_s + '}', server[:variables][name][:default_value]
281
278
  end
282
279
  end
283
280
 
284
281
  url
285
282
  end
286
283
  end
284
+ end
287
285
  end