moneykit 0.0.2 → 0.0.5

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 (222) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/lib/moneykit/api/access_token_api.rb +53 -55
  4. data/lib/moneykit/api/account_numbers_api.rb +26 -26
  5. data/lib/moneykit/api/accounts_api.rb +88 -82
  6. data/lib/moneykit/api/identity_api.rb +31 -30
  7. data/lib/moneykit/api/institutions_api.rb +50 -48
  8. data/lib/moneykit/api/link_session_api.rb +47 -50
  9. data/lib/moneykit/api/links_api.rb +137 -81
  10. data/lib/moneykit/api/products_api.rb +33 -35
  11. data/lib/moneykit/api/transactions_api.rb +126 -101
  12. data/lib/moneykit/api/users_api.rb +100 -83
  13. data/lib/moneykit/api/webhooks_api.rb +97 -0
  14. data/lib/moneykit/api_client.rb +100 -103
  15. data/lib/moneykit/api_error.rb +14 -16
  16. data/lib/moneykit/configuration.rb +52 -65
  17. data/lib/moneykit/models/account.rb +69 -112
  18. data/lib/moneykit/models/account_balances.rb +64 -78
  19. data/lib/moneykit/models/account_group.rb +58 -61
  20. data/lib/moneykit/models/account_identity.rb +79 -124
  21. data/lib/moneykit/models/account_numbers.rb +96 -71
  22. data/lib/moneykit/models/account_numbers_link_product.rb +57 -69
  23. data/lib/moneykit/models/account_numbers_product_settings.rb +59 -63
  24. data/lib/moneykit/models/account_type.rb +23 -23
  25. data/lib/moneykit/models/account_with_account_numbers.rb +76 -124
  26. data/lib/moneykit/models/accounts_link_product.rb +53 -61
  27. data/lib/moneykit/models/ach_number.rb +57 -65
  28. data/lib/moneykit/models/address.rb +70 -90
  29. data/lib/moneykit/models/api_error_auth_expired_access_token_response.rb +72 -78
  30. data/lib/moneykit/models/api_error_auth_unauthorized_response.rb +69 -78
  31. data/lib/moneykit/models/api_error_rate_limit_exceeded_response.rb +72 -78
  32. data/lib/moneykit/models/app.rb +46 -50
  33. data/lib/moneykit/models/bacs_number.rb +53 -61
  34. data/lib/moneykit/models/balances.rb +58 -64
  35. data/lib/moneykit/models/basic_account_details.rb +62 -77
  36. data/lib/moneykit/models/country.rb +13 -14
  37. data/lib/moneykit/models/create_link_session_request.rb +109 -119
  38. data/lib/moneykit/models/create_link_session_response.rb +48 -52
  39. data/lib/moneykit/models/currency.rb +193 -193
  40. data/lib/moneykit/models/cursor.rb +40 -39
  41. data/lib/moneykit/models/cursor_pagination.rb +49 -54
  42. data/lib/moneykit/models/cursors.rb +40 -39
  43. data/lib/moneykit/models/customer_app.rb +54 -64
  44. data/lib/moneykit/models/customer_user.rb +59 -69
  45. data/lib/moneykit/models/eft_number.rb +56 -67
  46. data/lib/moneykit/models/email.rb +56 -63
  47. data/lib/moneykit/models/email1.rb +50 -53
  48. data/lib/moneykit/models/exchange_token_request.rb +48 -52
  49. data/lib/moneykit/models/exchange_token_response.rb +54 -64
  50. data/lib/moneykit/models/generate_access_token_response.rb +59 -73
  51. data/lib/moneykit/models/get_account_numbers_response.rb +58 -66
  52. data/lib/moneykit/models/get_account_response.rb +55 -67
  53. data/lib/moneykit/models/get_accounts_response.rb +58 -67
  54. data/lib/moneykit/models/get_institutions_response.rb +58 -67
  55. data/lib/moneykit/models/get_transactions_response.rb +81 -105
  56. data/lib/moneykit/models/get_user_accounts_response.rb +50 -58
  57. data/lib/moneykit/models/get_user_links_response.rb +50 -58
  58. data/lib/moneykit/models/get_user_transactions_response.rb +75 -95
  59. data/lib/moneykit/models/http_validation_error.rb +77 -84
  60. data/lib/moneykit/models/identity.rb +49 -49
  61. data/lib/moneykit/models/identity_link_product.rb +57 -69
  62. data/lib/moneykit/models/identity_product_settings.rb +59 -63
  63. data/lib/moneykit/models/identity_response.rb +58 -67
  64. data/lib/moneykit/models/institution.rb +85 -113
  65. data/lib/moneykit/models/institution_error_not_found_response.rb +72 -80
  66. data/lib/moneykit/models/institution_styling_response.rb +77 -93
  67. data/lib/moneykit/models/international_number.rb +54 -64
  68. data/lib/moneykit/models/introspect_client_response.rb +70 -89
  69. data/lib/moneykit/models/jwk_set.rb +51 -55
  70. data/lib/moneykit/models/link.rb +78 -100
  71. data/lib/moneykit/models/link1.rb +78 -100
  72. data/lib/moneykit/models/link2.rb +78 -100
  73. data/lib/moneykit/models/link3.rb +78 -100
  74. data/lib/moneykit/models/link4.rb +78 -100
  75. data/lib/moneykit/models/link_common.rb +82 -117
  76. data/lib/moneykit/models/link_error.rb +19 -19
  77. data/lib/moneykit/models/link_error_bad_config_response.rb +269 -0
  78. data/lib/moneykit/models/link_error_bad_state_response.rb +71 -88
  79. data/lib/moneykit/models/link_error_deleted_response.rb +72 -80
  80. data/lib/moneykit/models/link_error_forbidden_action_response.rb +69 -78
  81. data/lib/moneykit/models/link_error_not_found_response.rb +72 -80
  82. data/lib/moneykit/models/link_error_unauthorized_access_response.rb +72 -80
  83. data/lib/moneykit/models/link_permission_scope.rb +14 -15
  84. data/lib/moneykit/models/link_permissions.rb +52 -62
  85. data/lib/moneykit/models/link_products.rb +62 -78
  86. data/lib/moneykit/models/link_response.rb +95 -136
  87. data/lib/moneykit/models/link_session_customer_user.rb +65 -83
  88. data/lib/moneykit/models/link_session_customer_user_email.rb +59 -68
  89. data/lib/moneykit/models/link_session_customer_user_phone.rb +67 -82
  90. data/lib/moneykit/models/link_session_error_forbidden_config_response.rb +69 -78
  91. data/lib/moneykit/models/link_session_error_invalid_token_exchange.rb +69 -78
  92. data/lib/moneykit/models/link_session_setting_overrides.rb +64 -99
  93. data/lib/moneykit/models/link_state.rb +15 -16
  94. data/lib/moneykit/models/link_state_changed_webhook.rb +121 -148
  95. data/lib/moneykit/models/location_inner.rb +41 -46
  96. data/lib/moneykit/models/money_kit_env.rb +12 -13
  97. data/lib/moneykit/models/money_link_features.rb +62 -66
  98. data/lib/moneykit/models/moneylink_features.rb +50 -49
  99. data/lib/moneykit/models/numbers.rb +60 -73
  100. data/lib/moneykit/models/owner.rb +76 -89
  101. data/lib/moneykit/models/phone.rb +60 -68
  102. data/lib/moneykit/models/phone_number.rb +63 -74
  103. data/lib/moneykit/models/phone_number_type.rb +14 -15
  104. data/lib/moneykit/models/product.rb +14 -15
  105. data/lib/moneykit/models/products.rb +52 -64
  106. data/lib/moneykit/models/products1.rb +48 -56
  107. data/lib/moneykit/models/products_settings.rb +58 -70
  108. data/lib/moneykit/models/provider.rb +18 -17
  109. data/lib/moneykit/models/public_link_error.rb +43 -0
  110. data/lib/moneykit/models/refresh_products_request.rb +52 -65
  111. data/lib/moneykit/models/requested_link_permission.rb +60 -75
  112. data/lib/moneykit/models/response401_disconnect_links_id_delete.rb +83 -283
  113. data/lib/moneykit/models/response401_exchange_token_link_session_exchange_token_post.rb +82 -281
  114. data/lib/moneykit/models/response401_get_account_links_id_accounts_account_id_get.rb +83 -283
  115. data/lib/moneykit/models/response401_get_account_numbers_links_id_accounts_numbers_get.rb +83 -283
  116. data/lib/moneykit/models/response401_get_accounts_links_id_accounts_get.rb +83 -283
  117. data/lib/moneykit/models/response401_get_identities_links_id_identity_get.rb +83 -283
  118. data/lib/moneykit/models/response401_get_institution_institutions_institution_id_get.rb +82 -281
  119. data/lib/moneykit/models/response401_get_institution_styling_institutions_institution_id_styling_get.rb +66 -72
  120. data/lib/moneykit/models/response401_get_institutions_institutions_get.rb +82 -281
  121. data/lib/moneykit/models/response401_get_link_links_id_get.rb +83 -283
  122. data/lib/moneykit/models/response401_get_transactions_diff_links_id_transactions_sync_get.rb +83 -283
  123. data/lib/moneykit/models/response401_get_transactions_links_id_transactions_get.rb +83 -283
  124. data/lib/moneykit/models/response401_get_user_accounts_users_id_accounts_get.rb +82 -281
  125. data/lib/moneykit/models/response401_get_user_links_users_id_links_get.rb +82 -281
  126. data/lib/moneykit/models/response401_get_user_transactions_users_id_transactions_get.rb +82 -281
  127. data/lib/moneykit/models/response401_get_well_known_jwks_well_known_jwks_json_get.rb +82 -281
  128. data/lib/moneykit/models/response401_instrospect_client_auth_introspect_get.rb +82 -281
  129. data/lib/moneykit/models/response401_refresh_products_links_id_products_post.rb +83 -283
  130. data/lib/moneykit/models/response401_reset_login_links_id_reset_post.rb +102 -0
  131. data/lib/moneykit/models/response401_trigger_test_link_webhook_event_webhooks_test_link_id_post.rb +102 -0
  132. data/lib/moneykit/models/response401_update_link_links_id_patch.rb +83 -283
  133. data/lib/moneykit/models/settings.rb +61 -73
  134. data/lib/moneykit/models/supported_version.rb +11 -12
  135. data/lib/moneykit/models/transaction.rb +104 -131
  136. data/lib/moneykit/models/transaction_diff.rb +69 -78
  137. data/lib/moneykit/models/transaction_sync_response.rb +65 -87
  138. data/lib/moneykit/models/transaction_type.rb +12 -13
  139. data/lib/moneykit/models/transaction_type_filter.rb +12 -13
  140. data/lib/moneykit/models/transactions.rb +58 -57
  141. data/lib/moneykit/models/transactions1.rb +55 -63
  142. data/lib/moneykit/models/transactions_link_product.rb +57 -69
  143. data/lib/moneykit/models/transactions_product_settings.rb +67 -71
  144. data/lib/moneykit/models/update_link_request.rb +63 -69
  145. data/lib/moneykit/models/user_accounts_out.rb +40 -40
  146. data/lib/moneykit/models/user_links_out.rb +40 -40
  147. data/lib/moneykit/models/user_transactions_paged_response.rb +40 -40
  148. data/lib/moneykit/models/validation_error.rb +63 -77
  149. data/lib/moneykit/models/validation_error_location_inner.rb +101 -0
  150. data/lib/moneykit/models/webhook_link_test_event.rb +40 -0
  151. data/lib/moneykit/models/webhook_test_link_request.rb +252 -0
  152. data/lib/moneykit/models/webhook_test_link_response.rb +220 -0
  153. data/lib/moneykit/version.rb +10 -12
  154. data/lib/moneykit.rb +18 -39
  155. data/lib/plaid_compatible/money_kit_plaid_compatible/api/plaid_api.rb +738 -737
  156. data/lib/plaid_compatible/money_kit_plaid_compatible/api_client.rb +339 -340
  157. data/lib/plaid_compatible/money_kit_plaid_compatible/api_error.rb +47 -47
  158. data/lib/plaid_compatible/money_kit_plaid_compatible/configuration.rb +258 -260
  159. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_balance.rb +210 -212
  160. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_base.rb +221 -237
  161. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_identity.rb +231 -252
  162. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_subtype.rb +100 -101
  163. data/lib/plaid_compatible/money_kit_plaid_compatible/models/account_type.rb +35 -36
  164. data/lib/plaid_compatible/money_kit_plaid_compatible/models/accounts_get_request.rb +209 -211
  165. data/lib/plaid_compatible/money_kit_plaid_compatible/models/accounts_get_request_options.rb +188 -185
  166. data/lib/plaid_compatible/money_kit_plaid_compatible/models/accounts_get_response.rb +205 -210
  167. data/lib/plaid_compatible/money_kit_plaid_compatible/models/address.rb +195 -193
  168. data/lib/plaid_compatible/money_kit_plaid_compatible/models/address_data.rb +222 -226
  169. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_numbers.rb +218 -226
  170. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_request.rb +209 -211
  171. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_request_options.rb +188 -185
  172. data/lib/plaid_compatible/money_kit_plaid_compatible/models/auth_get_response.rb +211 -222
  173. data/lib/plaid_compatible/money_kit_plaid_compatible/models/country_code.rb +32 -33
  174. data/lib/plaid_compatible/money_kit_plaid_compatible/models/email.rb +197 -198
  175. data/lib/plaid_compatible/money_kit_plaid_compatible/models/http_validation_error.rb +183 -181
  176. data/lib/plaid_compatible/money_kit_plaid_compatible/models/identity_get_request.rb +209 -211
  177. data/lib/plaid_compatible/money_kit_plaid_compatible/models/identity_get_request_options.rb +188 -185
  178. data/lib/plaid_compatible/money_kit_plaid_compatible/models/identity_get_response.rb +205 -210
  179. data/lib/plaid_compatible/money_kit_plaid_compatible/models/institution.rb +228 -232
  180. data/lib/plaid_compatible/money_kit_plaid_compatible/models/institutions_get_by_id_request.rb +216 -217
  181. data/lib/plaid_compatible/money_kit_plaid_compatible/models/institutions_get_by_id_response.rb +195 -196
  182. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item.rb +251 -261
  183. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_error_webhook.rb +217 -229
  184. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_get_request.rb +205 -205
  185. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_get_response.rb +201 -205
  186. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_public_token_exchange_request.rb +205 -205
  187. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_public_token_exchange_response.rb +206 -211
  188. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_remove_request.rb +205 -205
  189. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_remove_response.rb +188 -185
  190. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_investments.rb +195 -193
  191. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_last_webhook.rb +195 -193
  192. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_nullable.rb +194 -198
  193. data/lib/plaid_compatible/money_kit_plaid_compatible/models/item_status_transactions.rb +195 -193
  194. data/lib/plaid_compatible/money_kit_plaid_compatible/models/link_token_create_request.rb +272 -291
  195. data/lib/plaid_compatible/money_kit_plaid_compatible/models/link_token_create_request_user.rb +225 -225
  196. data/lib/plaid_compatible/money_kit_plaid_compatible/models/link_token_create_response.rb +206 -211
  197. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_ach.rb +215 -221
  198. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_bacs.rb +206 -211
  199. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_eft.rb +215 -224
  200. data/lib/plaid_compatible/money_kit_plaid_compatible/models/numbers_international.rb +206 -211
  201. data/lib/plaid_compatible/money_kit_plaid_compatible/models/owner.rb +218 -226
  202. data/lib/plaid_compatible/money_kit_plaid_compatible/models/personal_finance_category.rb +197 -198
  203. data/lib/plaid_compatible/money_kit_plaid_compatible/models/phone_number.rb +206 -211
  204. data/lib/plaid_compatible/money_kit_plaid_compatible/models/plaid_error.rb +253 -266
  205. data/lib/plaid_compatible/money_kit_plaid_compatible/models/plaid_error_type.rb +43 -44
  206. data/lib/plaid_compatible/money_kit_plaid_compatible/models/products.rb +33 -34
  207. data/lib/plaid_compatible/money_kit_plaid_compatible/models/removed_transaction.rb +187 -183
  208. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transaction.rb +288 -315
  209. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_get_request.rb +225 -235
  210. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_get_request_options.rb +222 -224
  211. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_get_response.rb +225 -236
  212. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_refresh_request.rb +205 -205
  213. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_refresh_response.rb +188 -185
  214. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_sync_request.rb +223 -229
  215. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_sync_request_options.rb +197 -193
  216. data/lib/plaid_compatible/money_kit_plaid_compatible/models/transactions_sync_response.rb +235 -252
  217. data/lib/plaid_compatible/money_kit_plaid_compatible/models/validation_error.rb +198 -207
  218. data/lib/plaid_compatible/money_kit_plaid_compatible/models/webhook_environment_values.rb +32 -33
  219. data/lib/plaid_compatible/money_kit_plaid_compatible/version.rb +14 -14
  220. data/lib/plaid_compatible/money_kit_plaid_compatible.rb +24 -24
  221. data/moneykit.gemspec +22 -25
  222. metadata +14 -5
@@ -1,300 +1,101 @@
1
- =begin
2
- #MoneyKit API
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: 6.5.0
10
-
11
- =end
1
+ # #MoneyKit API
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: 7.1.0
9
+ #
12
10
 
13
11
  require 'date'
14
12
  require 'time'
15
13
 
16
14
  module MoneyKit
17
- class Response401GetInstitutionInstitutionsInstitutionIdGet
18
- attr_accessor :error_code
19
-
20
- # Error message
21
- attr_accessor :error_message
22
-
23
- attr_accessor :documentation_url
24
-
25
- class EnumAttributeValidator
26
- attr_reader :datatype
27
- attr_reader :allowable_values
28
-
29
- def initialize(datatype, allowable_values)
30
- @allowable_values = allowable_values.map do |value|
31
- case datatype.to_s
32
- when /Integer/i
33
- value.to_i
34
- when /Float/i
35
- value.to_f
36
- else
37
- value
38
- end
39
- end
15
+ module Response401GetInstitutionInstitutionsInstitutionIdGet
16
+ class << self
17
+ # List of class defined in anyOf (OpenAPI v3)
18
+ def openapi_any_of
19
+ %i[
20
+ APIErrorAuthExpiredAccessTokenResponse
21
+ APIErrorAuthUnauthorizedResponse
22
+ ]
40
23
  end
41
24
 
42
- def valid?(value)
43
- !value || allowable_values.include?(value)
44
- end
45
- end
46
-
47
- # Attribute mapping from ruby-style variable name to JSON key.
48
- def self.attribute_map
49
- {
50
- :'error_code' => :'error_code',
51
- :'error_message' => :'error_message',
52
- :'documentation_url' => :'documentation_url'
53
- }
54
- end
55
-
56
- # Returns all the JSON keys this model knows about
57
- def self.acceptable_attributes
58
- attribute_map.values
59
- end
60
-
61
- # Attribute type mapping.
62
- def self.openapi_types
63
- {
64
- :'error_code' => :'String',
65
- :'error_message' => :'String',
66
- :'documentation_url' => :'String'
67
- }
68
- end
69
-
70
- # List of attributes with nullable: true
71
- def self.openapi_nullable
72
- Set.new([
73
- :'documentation_url'
74
- ])
75
- end
76
-
77
- # List of class defined in anyOf (OpenAPI v3)
78
- def self.openapi_any_of
79
- [
80
- :'APIErrorAuthExpiredAccessTokenResponse',
81
- :'APIErrorAuthUnauthorizedResponse'
82
- ]
83
- end
84
-
85
- # Initializes the object
86
- # @param [Hash] attributes Model attributes in the form of hash
87
- def initialize(attributes = {})
88
- if (!attributes.is_a?(Hash))
89
- fail ArgumentError, "The input argument (attributes) must be a hash in `MoneyKit::Response401GetInstitutionInstitutionsInstitutionIdGet` initialize method"
90
- end
91
-
92
- # check to see if the attribute exists and convert string to symbol for hash key
93
- attributes = attributes.each_with_object({}) { |(k, v), h|
94
- if (!self.class.attribute_map.key?(k.to_sym))
95
- fail ArgumentError, "`#{k}` is not a valid attribute in `MoneyKit::Response401GetInstitutionInstitutionsInstitutionIdGet`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
25
+ # Builds the object
26
+ # @param [Mixed] Data to be matched against the list of anyOf items
27
+ # @return [Object] Returns the model or the data itself
28
+ def build(data)
29
+ # Go through the list of anyOf items and attempt to identify the appropriate one.
30
+ # Note:
31
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
32
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
33
+ # - TODO: scalar values are de facto behaving as if they were nullable.
34
+ # - TODO: logging when debugging is set.
35
+ openapi_any_of.each do |klass|
36
+ next if klass == :AnyType # "nullable: true"
37
+
38
+ typed_data = find_and_cast_into_type(klass, data)
39
+ return typed_data if typed_data
40
+ rescue StandardError # rescue all errors so we keep iterating even if the current item lookup raises
96
41
  end
97
- h[k.to_sym] = v
98
- }
99
-
100
- if attributes.key?(:'error_code')
101
- self.error_code = attributes[:'error_code']
102
- else
103
- self.error_code = 'api_error.auth.unauthorized'
104
- end
105
-
106
- if attributes.key?(:'error_message')
107
- self.error_message = attributes[:'error_message']
108
- end
109
42
 
110
- if attributes.key?(:'documentation_url')
111
- self.documentation_url = attributes[:'documentation_url']
112
- end
113
- end
114
-
115
- # Show invalid properties with the reasons. Usually used together with valid?
116
- # @return Array for valid properties with the reasons
117
- def list_invalid_properties
118
- invalid_properties = Array.new
119
- if @error_message.nil?
120
- invalid_properties.push('invalid value for "error_message", error_message cannot be nil.')
121
- end
122
-
123
- invalid_properties
124
- end
125
-
126
- # Check to see if the all the properties in the model are valid
127
- # @return true if the model is valid
128
- def valid?
129
- error_code_validator = EnumAttributeValidator.new('String', ["api_error.auth.unauthorized"])
130
- return false unless error_code_validator.valid?(@error_code)
131
- return false if @error_message.nil?
132
- _any_of_found = false
133
- self.class.openapi_any_of.each do |_class|
134
- _any_of = MoneyKit.const_get(_class).build_from_hash(self.to_hash)
135
- if _any_of.valid?
136
- _any_of_found = true
137
- end
43
+ openapi_any_of.include?(:AnyType) ? data : nil
138
44
  end
139
45
 
140
- if !_any_of_found
141
- return false
142
- end
143
-
144
- true
145
- end
146
-
147
- # Custom attribute writer method checking allowed values (enum).
148
- # @param [Object] error_code Object to be assigned
149
- def error_code=(error_code)
150
- validator = EnumAttributeValidator.new('String', ["api_error.auth.unauthorized"])
151
- unless validator.valid?(error_code)
152
- fail ArgumentError, "invalid value for \"error_code\", must be one of #{validator.allowable_values}."
153
- end
154
- @error_code = error_code
155
- end
156
-
157
- # Checks equality by comparing each attribute.
158
- # @param [Object] Object to be compared
159
- def ==(o)
160
- return true if self.equal?(o)
161
- self.class == o.class &&
162
- error_code == o.error_code &&
163
- error_message == o.error_message &&
164
- documentation_url == o.documentation_url
165
- end
166
-
167
- # @see the `==` method
168
- # @param [Object] Object to be compared
169
- def eql?(o)
170
- self == o
171
- end
172
-
173
- # Calculates hash code according to all attributes.
174
- # @return [Integer] Hash code
175
- def hash
176
- [error_code, error_message, documentation_url].hash
177
- end
178
-
179
- # Builds the object from hash
180
- # @param [Hash] attributes Model attributes in the form of hash
181
- # @return [Object] Returns the model itself
182
- def self.build_from_hash(attributes)
183
- new.build_from_hash(attributes)
184
- end
185
-
186
- # Builds the object from hash
187
- # @param [Hash] attributes Model attributes in the form of hash
188
- # @return [Object] Returns the model itself
189
- def build_from_hash(attributes)
190
- return nil unless attributes.is_a?(Hash)
191
- attributes = attributes.transform_keys(&:to_sym)
192
- self.class.openapi_types.each_pair do |key, type|
193
- if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
194
- self.send("#{key}=", nil)
195
- elsif type =~ /\AArray<(.*)>/i
196
- # check to ensure the input is an array given that the attribute
197
- # is documented as an array but the input is not
198
- if attributes[self.class.attribute_map[key]].is_a?(Array)
199
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
46
+ private
47
+
48
+ SchemaMismatchError = Class.new(StandardError)
49
+
50
+ # NOTE: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
51
+ def find_and_cast_into_type(klass, data)
52
+ return if data.nil?
53
+
54
+ case klass.to_s
55
+ when 'Boolean'
56
+ return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
57
+ when 'Float'
58
+ return data if data.instance_of?(Float)
59
+ when 'Integer'
60
+ return data if data.instance_of?(Integer)
61
+ when 'Time'
62
+ return Time.parse(data)
63
+ when 'Date'
64
+ return Date.parse(data)
65
+ when 'String'
66
+ return data if data.instance_of?(String)
67
+ when 'Object' # "type: object"
68
+ return data if data.instance_of?(Hash)
69
+ when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
70
+ if data.instance_of?(Array)
71
+ sub_type = Regexp.last_match[:sub_type]
72
+ return data.map { |item| find_and_cast_into_type(sub_type, item) }
200
73
  end
201
- elsif !attributes[self.class.attribute_map[key]].nil?
202
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
203
- end
204
- end
205
-
206
- self
207
- end
208
-
209
- # Deserializes the data based on type
210
- # @param string type Data type
211
- # @param string value Value to be deserialized
212
- # @return [Object] Deserialized data
213
- def _deserialize(type, value)
214
- case type.to_sym
215
- when :Time
216
- Time.parse(value)
217
- when :Date
218
- Date.parse(value)
219
- when :String
220
- value.to_s
221
- when :Integer
222
- value.to_i
223
- when :Float
224
- value.to_f
225
- when :Boolean
226
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
227
- true
228
- else
229
- false
230
- end
231
- when :Object
232
- # generic object (usually a Hash), return directly
233
- value
234
- when /\AArray<(?<inner_type>.+)>\z/
235
- inner_type = Regexp.last_match[:inner_type]
236
- value.map { |v| _deserialize(inner_type, v) }
237
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
238
- k_type = Regexp.last_match[:k_type]
239
- v_type = Regexp.last_match[:v_type]
240
- {}.tap do |hash|
241
- value.each do |k, v|
242
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
74
+ when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
75
+ if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
76
+ sub_type = Regexp.last_match[:sub_type]
77
+ return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
78
+ end
79
+ else # model
80
+ const = MoneyKit.const_get(klass)
81
+ if const
82
+ if const.respond_to?(:openapi_any_of) # nested anyOf model
83
+ model = const.build(data)
84
+ return model if model
85
+ else
86
+ # raise if data contains keys that are not known to the model
87
+ raise unless (data.keys - const.acceptable_attributes).empty?
88
+
89
+ model = const.build_from_hash(data)
90
+ return model if model
91
+ end
243
92
  end
244
- end
245
- else # model
246
- # models (e.g. Pet) or oneOf
247
- klass = MoneyKit.const_get(type)
248
- klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
249
- end
250
- end
251
-
252
- # Returns the string representation of the object
253
- # @return [String] String presentation of the object
254
- def to_s
255
- to_hash.to_s
256
- end
257
-
258
- # to_body is an alias to to_hash (backward compatibility)
259
- # @return [Hash] Returns the object in the form of hash
260
- def to_body
261
- to_hash
262
- end
263
-
264
- # Returns the object in the form of hash
265
- # @return [Hash] Returns the object in the form of hash
266
- def to_hash
267
- hash = {}
268
- self.class.attribute_map.each_pair do |attr, param|
269
- value = self.send(attr)
270
- if value.nil?
271
- is_nullable = self.class.openapi_nullable.include?(attr)
272
- next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
273
93
  end
274
94
 
275
- hash[param] = _to_hash(value)
95
+ raise # if no match by now, raise
96
+ rescue StandardError
97
+ raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
276
98
  end
277
- hash
278
99
  end
279
-
280
- # Outputs non-array value in the form of hash
281
- # For object, use to_hash. Otherwise, just return the value
282
- # @param [Object] value Any valid value
283
- # @return [Hash] Returns the value in the form of hash
284
- def _to_hash(value)
285
- if value.is_a?(Array)
286
- value.compact.map { |v| _to_hash(v) }
287
- elsif value.is_a?(Hash)
288
- {}.tap do |hash|
289
- value.each { |k, v| hash[k] = _to_hash(v) }
290
- end
291
- elsif value.respond_to? :to_hash
292
- value.to_hash
293
- else
294
- value
295
- end
296
- end
297
-
298
100
  end
299
-
300
101
  end
@@ -1,30 +1,25 @@
1
- =begin
2
- #MoneyKit API
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: 6.5.0
10
-
11
- =end
1
+ # #MoneyKit API
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: 6.5.0
9
+ #
12
10
 
13
11
  require 'date'
14
12
  require 'time'
15
13
 
16
14
  module MoneyKit
17
15
  class Response401GetInstitutionStylingInstitutionsInstitutionIdStylingGet
18
- attr_accessor :error_code
16
+ attr_accessor :error_code, :documentation_url
19
17
 
20
18
  # Error message
21
19
  attr_accessor :error_message
22
20
 
23
- attr_accessor :documentation_url
24
-
25
21
  class EnumAttributeValidator
26
- attr_reader :datatype
27
- attr_reader :allowable_values
22
+ attr_reader :datatype, :allowable_values
28
23
 
29
24
  def initialize(datatype, allowable_values)
30
25
  @allowable_values = allowable_values.map do |value|
@@ -47,9 +42,9 @@ module MoneyKit
47
42
  # Attribute mapping from ruby-style variable name to JSON key.
48
43
  def self.attribute_map
49
44
  {
50
- :'error_code' => :'error_code',
51
- :'error_message' => :'error_message',
52
- :'documentation_url' => :'documentation_url'
45
+ 'error_code': :error_code,
46
+ 'error_message': :error_message,
47
+ 'documentation_url': :documentation_url
53
48
  }
54
49
  end
55
50
 
@@ -61,64 +56,63 @@ module MoneyKit
61
56
  # Attribute type mapping.
62
57
  def self.openapi_types
63
58
  {
64
- :'error_code' => :'String',
65
- :'error_message' => :'String',
66
- :'documentation_url' => :'String'
59
+ 'error_code': :String,
60
+ 'error_message': :String,
61
+ 'documentation_url': :String
67
62
  }
68
63
  end
69
64
 
70
65
  # List of attributes with nullable: true
71
66
  def self.openapi_nullable
72
67
  Set.new([
73
- :'documentation_url'
74
- ])
68
+ :documentation_url
69
+ ])
75
70
  end
76
71
 
77
72
  # List of class defined in anyOf (OpenAPI v3)
78
73
  def self.openapi_any_of
79
- [
80
- :'APIErrorAuthExpiredAccessTokenResponse',
81
- :'APIErrorAuthUnauthorizedResponse'
74
+ %i[
75
+ APIErrorAuthExpiredAccessTokenResponse
76
+ APIErrorAuthUnauthorizedResponse
82
77
  ]
83
78
  end
84
79
 
85
80
  # Initializes the object
86
81
  # @param [Hash] attributes Model attributes in the form of hash
87
82
  def initialize(attributes = {})
88
- if (!attributes.is_a?(Hash))
89
- fail ArgumentError, "The input argument (attributes) must be a hash in `MoneyKit::Response401GetInstitutionStylingInstitutionsInstitutionIdStylingGet` initialize method"
83
+ unless attributes.is_a?(Hash)
84
+ raise ArgumentError,
85
+ 'The input argument (attributes) must be a hash in `MoneyKit::Response401GetInstitutionStylingInstitutionsInstitutionIdStylingGet` initialize method'
90
86
  end
91
87
 
92
88
  # check to see if the attribute exists and convert string to symbol for hash key
93
- attributes = attributes.each_with_object({}) { |(k, v), h|
94
- if (!self.class.attribute_map.key?(k.to_sym))
95
- fail ArgumentError, "`#{k}` is not a valid attribute in `MoneyKit::Response401GetInstitutionStylingInstitutionsInstitutionIdStylingGet`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
89
+ attributes = attributes.each_with_object({}) do |(k, v), h|
90
+ unless self.class.attribute_map.key?(k.to_sym)
91
+ raise ArgumentError,
92
+ "`#{k}` is not a valid attribute in `MoneyKit::Response401GetInstitutionStylingInstitutionsInstitutionIdStylingGet`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
96
93
  end
97
- h[k.to_sym] = v
98
- }
99
94
 
100
- if attributes.key?(:'error_code')
101
- self.error_code = attributes[:'error_code']
102
- else
103
- self.error_code = 'api_error.auth.unauthorized'
95
+ h[k.to_sym] = v
104
96
  end
105
97
 
106
- if attributes.key?(:'error_message')
107
- self.error_message = attributes[:'error_message']
108
- end
98
+ self.error_code = if attributes.key?(:error_code)
99
+ attributes[:error_code]
100
+ else
101
+ 'api_error.auth.unauthorized'
102
+ end
109
103
 
110
- if attributes.key?(:'documentation_url')
111
- self.documentation_url = attributes[:'documentation_url']
112
- end
104
+ self.error_message = attributes[:error_message] if attributes.key?(:error_message)
105
+
106
+ return unless attributes.key?(:documentation_url)
107
+
108
+ self.documentation_url = attributes[:documentation_url]
113
109
  end
114
110
 
115
111
  # Show invalid properties with the reasons. Usually used together with valid?
116
112
  # @return Array for valid properties with the reasons
117
113
  def list_invalid_properties
118
- invalid_properties = Array.new
119
- if @error_message.nil?
120
- invalid_properties.push('invalid value for "error_message", error_message cannot be nil.')
121
- end
114
+ invalid_properties = []
115
+ invalid_properties.push('invalid value for "error_message", error_message cannot be nil.') if @error_message.nil?
122
116
 
123
117
  invalid_properties
124
118
  end
@@ -126,20 +120,17 @@ module MoneyKit
126
120
  # Check to see if the all the properties in the model are valid
127
121
  # @return true if the model is valid
128
122
  def valid?
129
- error_code_validator = EnumAttributeValidator.new('String', ["api_error.auth.unauthorized"])
123
+ error_code_validator = EnumAttributeValidator.new('String', ['api_error.auth.unauthorized'])
130
124
  return false unless error_code_validator.valid?(@error_code)
131
125
  return false if @error_message.nil?
126
+
132
127
  _any_of_found = false
133
128
  self.class.openapi_any_of.each do |_class|
134
- _any_of = MoneyKit.const_get(_class).build_from_hash(self.to_hash)
135
- if _any_of.valid?
136
- _any_of_found = true
137
- end
129
+ _any_of = MoneyKit.const_get(_class).build_from_hash(to_hash)
130
+ _any_of_found = true if _any_of.valid?
138
131
  end
139
132
 
140
- if !_any_of_found
141
- return false
142
- end
133
+ return false unless _any_of_found
143
134
 
144
135
  true
145
136
  end
@@ -147,27 +138,29 @@ module MoneyKit
147
138
  # Custom attribute writer method checking allowed values (enum).
148
139
  # @param [Object] error_code Object to be assigned
149
140
  def error_code=(error_code)
150
- validator = EnumAttributeValidator.new('String', ["api_error.auth.unauthorized"])
141
+ validator = EnumAttributeValidator.new('String', ['api_error.auth.unauthorized'])
151
142
  unless validator.valid?(error_code)
152
- fail ArgumentError, "invalid value for \"error_code\", must be one of #{validator.allowable_values}."
143
+ raise ArgumentError, "invalid value for \"error_code\", must be one of #{validator.allowable_values}."
153
144
  end
145
+
154
146
  @error_code = error_code
155
147
  end
156
148
 
157
149
  # Checks equality by comparing each attribute.
158
150
  # @param [Object] Object to be compared
159
- def ==(o)
160
- return true if self.equal?(o)
161
- self.class == o.class &&
162
- error_code == o.error_code &&
163
- error_message == o.error_message &&
164
- documentation_url == o.documentation_url
151
+ def ==(other)
152
+ return true if equal?(other)
153
+
154
+ self.class == other.class &&
155
+ error_code == other.error_code &&
156
+ error_message == other.error_message &&
157
+ documentation_url == other.documentation_url
165
158
  end
166
159
 
167
160
  # @see the `==` method
168
161
  # @param [Object] Object to be compared
169
- def eql?(o)
170
- self == o
162
+ def eql?(other)
163
+ self == other
171
164
  end
172
165
 
173
166
  # Calculates hash code according to all attributes.
@@ -188,18 +181,21 @@ module MoneyKit
188
181
  # @return [Object] Returns the model itself
189
182
  def build_from_hash(attributes)
190
183
  return nil unless attributes.is_a?(Hash)
184
+
191
185
  attributes = attributes.transform_keys(&:to_sym)
192
186
  self.class.openapi_types.each_pair do |key, type|
193
187
  if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
194
- self.send("#{key}=", nil)
188
+ send("#{key}=", nil)
195
189
  elsif type =~ /\AArray<(.*)>/i
196
190
  # check to ensure the input is an array given that the attribute
197
191
  # is documented as an array but the input is not
198
192
  if attributes[self.class.attribute_map[key]].is_a?(Array)
199
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
193
+ send("#{key}=", attributes[self.class.attribute_map[key]].map do |v|
194
+ _deserialize(::Regexp.last_match(1), v)
195
+ end)
200
196
  end
201
197
  elsif !attributes[self.class.attribute_map[key]].nil?
202
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
198
+ send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
203
199
  end
204
200
  end
205
201
 
@@ -266,7 +262,7 @@ module MoneyKit
266
262
  def to_hash
267
263
  hash = {}
268
264
  self.class.attribute_map.each_pair do |attr, param|
269
- value = self.send(attr)
265
+ value = send(attr)
270
266
  if value.nil?
271
267
  is_nullable = self.class.openapi_nullable.include?(attr)
272
268
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
@@ -294,7 +290,5 @@ module MoneyKit
294
290
  value
295
291
  end
296
292
  end
297
-
298
293
  end
299
-
300
294
  end