transferzero-sdk 1.13.0 → 1.15.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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +21 -22
  3. data/README.md +10 -4
  4. data/docs/PayoutMethod.md +1 -1
  5. data/docs/PayoutMethodCountryEnumUSDBank.md +16 -0
  6. data/docs/PayoutMethodDetails.md +22 -8
  7. data/docs/PayoutMethodDetailsKESBank.md +37 -0
  8. data/docs/PayoutMethodDetailsKESMobile.md +31 -0
  9. data/docs/PayoutMethodDetailsMADCash.md +3 -3
  10. data/docs/PayoutMethodDetailsUSDBank.md +27 -0
  11. data/docs/PayoutMethodDetailsZARBank.md +13 -1
  12. data/docs/PayoutMethodLegalEntityTypeEnum.md +16 -0
  13. data/docs/PayoutMethodNatureOfBusinessEnum.md +16 -0
  14. data/docs/TransactionsApi.md +2 -0
  15. data/lib/transferzero-sdk.rb +6 -0
  16. data/lib/transferzero-sdk/api/transactions_api.rb +6 -0
  17. data/lib/transferzero-sdk/api_client.rb +2 -2
  18. data/lib/transferzero-sdk/models/account_validation_request.rb +4 -4
  19. data/lib/transferzero-sdk/models/payout_method.rb +1 -1
  20. data/lib/transferzero-sdk/models/payout_method_country_enum.rb +234 -8
  21. data/lib/transferzero-sdk/models/payout_method_country_enum_usd_bank.rb +269 -0
  22. data/lib/transferzero-sdk/models/payout_method_details.rb +92 -16
  23. data/lib/transferzero-sdk/models/payout_method_details_kes_bank.rb +343 -0
  24. data/lib/transferzero-sdk/models/payout_method_details_kes_mobile.rb +306 -0
  25. data/lib/transferzero-sdk/models/payout_method_details_mad_cash.rb +1 -16
  26. data/lib/transferzero-sdk/models/payout_method_details_usd_bank.rb +278 -0
  27. data/lib/transferzero-sdk/models/payout_method_details_zar_bank.rb +59 -5
  28. data/lib/transferzero-sdk/models/payout_method_legal_entity_type_enum.rb +37 -0
  29. data/lib/transferzero-sdk/models/payout_method_mobile_provider_enum.rb +1 -0
  30. data/lib/transferzero-sdk/models/payout_method_nature_of_business_enum.rb +65 -0
  31. data/lib/transferzero-sdk/version.rb +1 -1
  32. data/spec/models/payout_method_country_enum_usd_bank_spec.rb +35 -0
  33. data/spec/models/payout_method_details_kes_bank_spec.rb +101 -0
  34. data/spec/models/payout_method_details_kes_mobile_spec.rb +83 -0
  35. data/spec/models/payout_method_details_usd_bank_spec.rb +71 -0
  36. data/spec/models/payout_method_legal_entity_type_enum_spec.rb +35 -0
  37. data/spec/models/payout_method_nature_of_business_enum_spec.rb +35 -0
  38. data/transferzero-sdk-1.10.0.gem +0 -0
  39. data/transferzero-sdk-1.11.0.gem +0 -0
  40. data/transferzero-sdk-1.12.0.gem +0 -0
  41. data/transferzero-sdk-1.14.0.gem +0 -0
  42. data/transferzero-sdk-1.14.1.gem +0 -0
  43. metadata +41 -12
@@ -74,6 +74,20 @@ class PayoutMethodDetails
74
74
 
75
75
  attr_accessor :transfer_reason_code
76
76
 
77
+ attr_accessor :contact_first_name
78
+
79
+ attr_accessor :contact_last_name
80
+
81
+ attr_accessor :registration_number
82
+
83
+ attr_accessor :nature_of_business
84
+
85
+ attr_accessor :legal_entity_type
86
+
87
+ attr_accessor :branch_code
88
+
89
+ attr_accessor :swift_code
90
+
77
91
  # Attribute mapping from ruby-style variable name to JSON key.
78
92
  def self.attribute_map
79
93
  {
@@ -106,7 +120,14 @@ class PayoutMethodDetails
106
120
  :'postal_code' => :'postal_code',
107
121
  :'city' => :'city',
108
122
  :'email' => :'email',
109
- :'transfer_reason_code' => :'transfer_reason_code'
123
+ :'transfer_reason_code' => :'transfer_reason_code',
124
+ :'contact_first_name' => :'contact_first_name',
125
+ :'contact_last_name' => :'contact_last_name',
126
+ :'registration_number' => :'registration_number',
127
+ :'nature_of_business' => :'nature_of_business',
128
+ :'legal_entity_type' => :'legal_entity_type',
129
+ :'branch_code' => :'branch_code',
130
+ :'swift_code' => :'swift_code'
110
131
  }
111
132
  end
112
133
 
@@ -120,7 +141,7 @@ class PayoutMethodDetails
120
141
  :'bank_account_type' => :'PayoutMethodBankAccountTypeEnum',
121
142
  :'phone_number' => :'String',
122
143
  :'mobile_provider' => :'PayoutMethodMobileProviderEnum',
123
- :'country' => :'PayoutMethodCountryEnum',
144
+ :'country' => :'PayoutMethodCountryEnumUSDBank',
124
145
  :'iban' => :'String',
125
146
  :'bank_name' => :'String',
126
147
  :'bank_country' => :'String',
@@ -142,7 +163,14 @@ class PayoutMethodDetails
142
163
  :'postal_code' => :'String',
143
164
  :'city' => :'String',
144
165
  :'email' => :'String',
145
- :'transfer_reason_code' => :'String'
166
+ :'transfer_reason_code' => :'String',
167
+ :'contact_first_name' => :'String',
168
+ :'contact_last_name' => :'String',
169
+ :'registration_number' => :'String',
170
+ :'nature_of_business' => :'PayoutMethodNatureOfBusinessEnum',
171
+ :'legal_entity_type' => :'PayoutMethodLegalEntityTypeEnum',
172
+ :'branch_code' => :'String',
173
+ :'swift_code' => :'String'
146
174
  }
147
175
  end
148
176
 
@@ -155,9 +183,12 @@ class PayoutMethodDetails
155
183
  :'PayoutMethodDetailsGHSBank',
156
184
  :'PayoutMethodDetailsGHSCash',
157
185
  :'PayoutMethodDetailsIBAN',
186
+ :'PayoutMethodDetailsKESBank',
187
+ :'PayoutMethodDetailsKESMobile',
158
188
  :'PayoutMethodDetailsMADCash',
159
189
  :'PayoutMethodDetailsMobile',
160
190
  :'PayoutMethodDetailsNGNBank',
191
+ :'PayoutMethodDetailsUSDBank',
161
192
  :'PayoutMethodDetailsXOFBank',
162
193
  :'PayoutMethodDetailsXOFCash',
163
194
  :'PayoutMethodDetailsXOFMobile',
@@ -299,6 +330,34 @@ class PayoutMethodDetails
299
330
  if attributes.key?(:'transfer_reason_code')
300
331
  self.transfer_reason_code = attributes[:'transfer_reason_code']
301
332
  end
333
+
334
+ if attributes.key?(:'contact_first_name')
335
+ self.contact_first_name = attributes[:'contact_first_name']
336
+ end
337
+
338
+ if attributes.key?(:'contact_last_name')
339
+ self.contact_last_name = attributes[:'contact_last_name']
340
+ end
341
+
342
+ if attributes.key?(:'registration_number')
343
+ self.registration_number = attributes[:'registration_number']
344
+ end
345
+
346
+ if attributes.key?(:'nature_of_business')
347
+ self.nature_of_business = attributes[:'nature_of_business']
348
+ end
349
+
350
+ if attributes.key?(:'legal_entity_type')
351
+ self.legal_entity_type = attributes[:'legal_entity_type']
352
+ end
353
+
354
+ if attributes.key?(:'branch_code')
355
+ self.branch_code = attributes[:'branch_code']
356
+ end
357
+
358
+ if attributes.key?(:'swift_code')
359
+ self.swift_code = attributes[:'swift_code']
360
+ end
302
361
  end
303
362
 
304
363
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -329,6 +388,10 @@ class PayoutMethodDetails
329
388
  invalid_properties.push('invalid value for "mobile_provider", mobile_provider cannot be nil.')
330
389
  end
331
390
 
391
+ if @country.nil?
392
+ invalid_properties.push('invalid value for "country", country cannot be nil.')
393
+ end
394
+
332
395
  if @iban.nil?
333
396
  invalid_properties.push('invalid value for "iban", iban cannot be nil.')
334
397
  end
@@ -349,16 +412,12 @@ class PayoutMethodDetails
349
412
  invalid_properties.push('invalid value for "sender_identity_card_id", sender_identity_card_id cannot be nil.')
350
413
  end
351
414
 
352
- if @sender_city_of_birth.nil?
353
- invalid_properties.push('invalid value for "sender_city_of_birth", sender_city_of_birth cannot be nil.')
354
- end
355
-
356
- if @sender_country_of_birth.nil?
357
- invalid_properties.push('invalid value for "sender_country_of_birth", sender_country_of_birth cannot be nil.')
415
+ if @identity_card_type.nil?
416
+ invalid_properties.push('invalid value for "identity_card_type", identity_card_type cannot be nil.')
358
417
  end
359
418
 
360
- if @sender_gender.nil?
361
- invalid_properties.push('invalid value for "sender_gender", sender_gender cannot be nil.')
419
+ if @identity_card_id.nil?
420
+ invalid_properties.push('invalid value for "identity_card_id", identity_card_id cannot be nil.')
362
421
  end
363
422
 
364
423
  if @name.nil?
@@ -381,6 +440,14 @@ class PayoutMethodDetails
381
440
  invalid_properties.push('invalid value for "city", city cannot be nil.')
382
441
  end
383
442
 
443
+ if @transfer_reason_code.nil?
444
+ invalid_properties.push('invalid value for "transfer_reason_code", transfer_reason_code cannot be nil.')
445
+ end
446
+
447
+ if @swift_code.nil?
448
+ invalid_properties.push('invalid value for "swift_code", swift_code cannot be nil.')
449
+ end
450
+
384
451
  invalid_properties
385
452
  end
386
453
 
@@ -393,19 +460,21 @@ class PayoutMethodDetails
393
460
  return false if @bank_account.nil?
394
461
  return false if @phone_number.nil?
395
462
  return false if @mobile_provider.nil?
463
+ return false if @country.nil?
396
464
  return false if @iban.nil?
397
465
  return false if @bank_name.nil?
398
466
  return false if @bank_country.nil?
399
467
  return false if @sender_identity_card_type.nil?
400
468
  return false if @sender_identity_card_id.nil?
401
- return false if @sender_city_of_birth.nil?
402
- return false if @sender_country_of_birth.nil?
403
- return false if @sender_gender.nil?
469
+ return false if @identity_card_type.nil?
470
+ return false if @identity_card_id.nil?
404
471
  return false if @name.nil?
405
472
  return false if @address.nil?
406
473
  return false if @street.nil?
407
474
  return false if @postal_code.nil?
408
475
  return false if @city.nil?
476
+ return false if @transfer_reason_code.nil?
477
+ return false if @swift_code.nil?
409
478
  _one_of_found = false
410
479
  openapi_one_of.each do |_class|
411
480
  _one_of = TransferZero.const_get(_class).build_from_hash(self.to_hash)
@@ -459,7 +528,14 @@ class PayoutMethodDetails
459
528
  postal_code == o.postal_code &&
460
529
  city == o.city &&
461
530
  email == o.email &&
462
- transfer_reason_code == o.transfer_reason_code
531
+ transfer_reason_code == o.transfer_reason_code &&
532
+ contact_first_name == o.contact_first_name &&
533
+ contact_last_name == o.contact_last_name &&
534
+ registration_number == o.registration_number &&
535
+ nature_of_business == o.nature_of_business &&
536
+ legal_entity_type == o.legal_entity_type &&
537
+ branch_code == o.branch_code &&
538
+ swift_code == o.swift_code
463
539
  end
464
540
 
465
541
  # @see the `==` method
@@ -471,7 +547,7 @@ class PayoutMethodDetails
471
547
  # Calculates hash code according to all attributes.
472
548
  # @return [Integer] Hash code
473
549
  def hash
474
- [first_name, last_name, bank_code, bank_account, bank_account_type, phone_number, mobile_provider, country, iban, bank_name, bank_country, cash_provider, sort_code, bic, sender_identity_card_type, sender_identity_card_id, sender_city_of_birth, sender_country_of_birth, sender_gender, reason, identity_card_type, identity_card_id, reference, name, address, street, postal_code, city, email, transfer_reason_code].hash
550
+ [first_name, last_name, bank_code, bank_account, bank_account_type, phone_number, mobile_provider, country, iban, bank_name, bank_country, cash_provider, sort_code, bic, sender_identity_card_type, sender_identity_card_id, sender_city_of_birth, sender_country_of_birth, sender_gender, reason, identity_card_type, identity_card_id, reference, name, address, street, postal_code, city, email, transfer_reason_code, contact_first_name, contact_last_name, registration_number, nature_of_business, legal_entity_type, branch_code, swift_code].hash
475
551
  end
476
552
 
477
553
  require 'active_support/core_ext/hash'
@@ -0,0 +1,343 @@
1
+ =begin
2
+ #TransferZero API
3
+
4
+ #Reference documentation for the TransferZero API V1
5
+
6
+ OpenAPI spec version: 1.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.0.0-beta3
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module TransferZero
16
+ # ```JSON \"details\": { \"first_name\": \"First\", \"last_name\": \"Last\", \"street\": \"Main Street\", \"bank_code\": \"68\", \"bank_account\": \"12345678\", \"bank_name\": \"Equity Bank Ltd\", \"branch_code\": \"404\", \"swift_code\" \"ABCLKENA\", \"transfer_reason_code\": \"185\", \"identity_card_type\": \"ID\", \"identity_card_id\": \"AB12345678\" } ``` The valid bank_code values are: - Habib Bank Limited: 08 - Trans-National Bank Limited: 26 - Housing Finance Co. Kenya: 61 - UBA Kenya Bank Ltd: 76 - Kenya Commercial Bank: 01000 - Standard Chartered Bank: 02000 - Barclays Bank of Kenya: 03000 - Bank of India: 05000 - Bank of Boroda: 06000 - NCBA Bank: 07000 - Prime Bank: 10000 - Co-operative Bank of Kenya: 11000 - National Bank of Kenya: 12000 - M-Oriental Commercial Bank Limited: 14000 - Citibank: 16000 - Habib Bank A.G. Zurich: 17000 - Middle East Bank: 18000 - Bank of Africa Kenya: 19000 - Consolidated Bank of Kenya: 23000 - Credit Bank Ltd: 25000 - Chase Bank: 30000 - Stanbic Bank Kenya: 31000 - African Banking Corporation: 35000 - Giro Bank Limited: 42000 - ECO Bank Kenya: 43000 - Spire Bank Limited: 49000 - Paramount Universal Bank Limited: 50000 - Jamii Bora Bank: 51000 - Guaranty Trust Bank Kenya: 53000 - Victoria Bank Limited: 54000 - Guardian Bank: 55000 - Investments and Mortgages Bank Limited: 57000 - Development Bank of Kenya: 59000 - Fidelity Commercial Bank: 46000 - Diamond Trust Bank: 63000 - Sidian Bank: 66000 - Equity Bank Limited: 68000 - Family Bank: 70000 - Gulf African Bank: 72000 - First Community Bank: 74000 - KWFT Bank: 78000 See [KES Bank](https://docs.transferzero.com/docs/payout-details/#kesbank) documentation for the transfer_reason_code list
17
+ class PayoutMethodDetailsKESBank
18
+ attr_accessor :first_name
19
+
20
+ attr_accessor :last_name
21
+
22
+ attr_accessor :bank_code
23
+
24
+ attr_accessor :street
25
+
26
+ attr_accessor :bank_account
27
+
28
+ attr_accessor :bank_name
29
+
30
+ attr_accessor :branch_code
31
+
32
+ attr_accessor :swift_code
33
+
34
+ attr_accessor :transfer_reason_code
35
+
36
+ attr_accessor :identity_card_type
37
+
38
+ attr_accessor :identity_card_id
39
+
40
+ # Attribute mapping from ruby-style variable name to JSON key.
41
+ def self.attribute_map
42
+ {
43
+ :'first_name' => :'first_name',
44
+ :'last_name' => :'last_name',
45
+ :'bank_code' => :'bank_code',
46
+ :'street' => :'street',
47
+ :'bank_account' => :'bank_account',
48
+ :'bank_name' => :'bank_name',
49
+ :'branch_code' => :'branch_code',
50
+ :'swift_code' => :'swift_code',
51
+ :'transfer_reason_code' => :'transfer_reason_code',
52
+ :'identity_card_type' => :'identity_card_type',
53
+ :'identity_card_id' => :'identity_card_id'
54
+ }
55
+ end
56
+
57
+ # Attribute type mapping.
58
+ def self.openapi_types
59
+ {
60
+ :'first_name' => :'String',
61
+ :'last_name' => :'String',
62
+ :'bank_code' => :'String',
63
+ :'street' => :'String',
64
+ :'bank_account' => :'String',
65
+ :'bank_name' => :'String',
66
+ :'branch_code' => :'String',
67
+ :'swift_code' => :'String',
68
+ :'transfer_reason_code' => :'String',
69
+ :'identity_card_type' => :'PayoutMethodIdentityCardTypeEnum',
70
+ :'identity_card_id' => :'String'
71
+ }
72
+ end
73
+
74
+ # Initializes the object
75
+ # @param [Hash] attributes Model attributes in the form of hash
76
+ def initialize(attributes = {})
77
+ if (!attributes.is_a?(Hash))
78
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TransferZero::PayoutMethodDetailsKESBank` initialize method"
79
+ end
80
+
81
+ # check to see if the attribute exists and convert string to symbol for hash key
82
+ attributes = attributes.each_with_object({}) { |(k, v), h|
83
+ if (!self.class.attribute_map.key?(k.to_sym))
84
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TransferZero::PayoutMethodDetailsKESBank`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
85
+ end
86
+ h[k.to_sym] = v
87
+ }
88
+
89
+ if attributes.key?(:'first_name')
90
+ self.first_name = attributes[:'first_name']
91
+ end
92
+
93
+ if attributes.key?(:'last_name')
94
+ self.last_name = attributes[:'last_name']
95
+ end
96
+
97
+ if attributes.key?(:'bank_code')
98
+ self.bank_code = attributes[:'bank_code']
99
+ end
100
+
101
+ if attributes.key?(:'street')
102
+ self.street = attributes[:'street']
103
+ end
104
+
105
+ if attributes.key?(:'bank_account')
106
+ self.bank_account = attributes[:'bank_account']
107
+ end
108
+
109
+ if attributes.key?(:'bank_name')
110
+ self.bank_name = attributes[:'bank_name']
111
+ end
112
+
113
+ if attributes.key?(:'branch_code')
114
+ self.branch_code = attributes[:'branch_code']
115
+ end
116
+
117
+ if attributes.key?(:'swift_code')
118
+ self.swift_code = attributes[:'swift_code']
119
+ end
120
+
121
+ if attributes.key?(:'transfer_reason_code')
122
+ self.transfer_reason_code = attributes[:'transfer_reason_code']
123
+ end
124
+
125
+ if attributes.key?(:'identity_card_type')
126
+ self.identity_card_type = attributes[:'identity_card_type']
127
+ end
128
+
129
+ if attributes.key?(:'identity_card_id')
130
+ self.identity_card_id = attributes[:'identity_card_id']
131
+ end
132
+ end
133
+
134
+ # Show invalid properties with the reasons. Usually used together with valid?
135
+ # @return Array for valid properties with the reasons
136
+ def list_invalid_properties
137
+ invalid_properties = Array.new
138
+ if @first_name.nil?
139
+ invalid_properties.push('invalid value for "first_name", first_name cannot be nil.')
140
+ end
141
+
142
+ if @last_name.nil?
143
+ invalid_properties.push('invalid value for "last_name", last_name cannot be nil.')
144
+ end
145
+
146
+ if @bank_code.nil?
147
+ invalid_properties.push('invalid value for "bank_code", bank_code cannot be nil.')
148
+ end
149
+
150
+ if @street.nil?
151
+ invalid_properties.push('invalid value for "street", street cannot be nil.')
152
+ end
153
+
154
+ if @bank_account.nil?
155
+ invalid_properties.push('invalid value for "bank_account", bank_account cannot be nil.')
156
+ end
157
+
158
+ if @bank_name.nil?
159
+ invalid_properties.push('invalid value for "bank_name", bank_name cannot be nil.')
160
+ end
161
+
162
+ if @swift_code.nil?
163
+ invalid_properties.push('invalid value for "swift_code", swift_code cannot be nil.')
164
+ end
165
+
166
+ if @transfer_reason_code.nil?
167
+ invalid_properties.push('invalid value for "transfer_reason_code", transfer_reason_code cannot be nil.')
168
+ end
169
+
170
+ if @identity_card_type.nil?
171
+ invalid_properties.push('invalid value for "identity_card_type", identity_card_type cannot be nil.')
172
+ end
173
+
174
+ if @identity_card_id.nil?
175
+ invalid_properties.push('invalid value for "identity_card_id", identity_card_id cannot be nil.')
176
+ end
177
+
178
+ invalid_properties
179
+ end
180
+
181
+ # Check to see if the all the properties in the model are valid
182
+ # @return true if the model is valid
183
+ def valid?
184
+ return false if @first_name.nil?
185
+ return false if @last_name.nil?
186
+ return false if @bank_code.nil?
187
+ return false if @street.nil?
188
+ return false if @bank_account.nil?
189
+ return false if @bank_name.nil?
190
+ return false if @swift_code.nil?
191
+ return false if @transfer_reason_code.nil?
192
+ return false if @identity_card_type.nil?
193
+ return false if @identity_card_id.nil?
194
+ true
195
+ end
196
+
197
+ # Checks equality by comparing each attribute.
198
+ # @param [Object] Object to be compared
199
+ def ==(o)
200
+ return true if self.equal?(o)
201
+ self.class == o.class &&
202
+ first_name == o.first_name &&
203
+ last_name == o.last_name &&
204
+ bank_code == o.bank_code &&
205
+ street == o.street &&
206
+ bank_account == o.bank_account &&
207
+ bank_name == o.bank_name &&
208
+ branch_code == o.branch_code &&
209
+ swift_code == o.swift_code &&
210
+ transfer_reason_code == o.transfer_reason_code &&
211
+ identity_card_type == o.identity_card_type &&
212
+ identity_card_id == o.identity_card_id
213
+ end
214
+
215
+ # @see the `==` method
216
+ # @param [Object] Object to be compared
217
+ def eql?(o)
218
+ self == o
219
+ end
220
+
221
+ # Calculates hash code according to all attributes.
222
+ # @return [Integer] Hash code
223
+ def hash
224
+ [first_name, last_name, bank_code, street, bank_account, bank_name, branch_code, swift_code, transfer_reason_code, identity_card_type, identity_card_id].hash
225
+ end
226
+
227
+ require 'active_support/core_ext/hash'
228
+ require 'active_support/hash_with_indifferent_access.rb'
229
+ # Builds the object from hash
230
+ # @param [Hash] attributes Model attributes in the form of hash
231
+ # @return [Object] Returns the model itself
232
+ def build_from_hash(attributes)
233
+ return nil unless attributes.is_a?(Hash)
234
+ self.class.openapi_types.each_pair do |key, type|
235
+ if type =~ /\AArray<(.*)>/i
236
+ # check to ensure the input is an array given that the the attribute
237
+ # is documented as an array but the input is not
238
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
239
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
240
+ end
241
+ elsif !attributes[self.class.attribute_map[key]].nil?
242
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
243
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
244
+ end
245
+
246
+ self
247
+ end
248
+
249
+ # Deserializes the data based on type
250
+ # @param string type Data type
251
+ # @param string value Value to be deserialized
252
+ # @return [Object] Deserialized data
253
+ def _deserialize(type, value)
254
+ case type.to_sym
255
+ when :DateTime
256
+ DateTime.parse(value)
257
+ when :Date
258
+ Date.parse(value)
259
+ when :String
260
+ value.to_s
261
+ when :Integer
262
+ value.to_i
263
+ when :Float
264
+ value.to_f
265
+ when :Boolean
266
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
267
+ true
268
+ else
269
+ false
270
+ end
271
+ when :Object
272
+ # generic object (usually a Hash), return directly
273
+ value
274
+ when /\AArray<(?<inner_type>.+)>\z/
275
+ inner_type = Regexp.last_match[:inner_type]
276
+ value.map { |v| _deserialize(inner_type, v) }
277
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
278
+ k_type = Regexp.last_match[:k_type]
279
+ v_type = Regexp.last_match[:v_type]
280
+ {}.tap do |hash|
281
+ value.each do |k, v|
282
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
283
+ end
284
+ end
285
+ else # model
286
+ temp_model = TransferZero.const_get(type).new
287
+ temp_model.build_from_hash(value)
288
+ end
289
+ end
290
+
291
+ # Returns the string representation of the object
292
+ # @return [String] String presentation of the object
293
+ def to_s
294
+ to_hash.to_s
295
+ end
296
+
297
+ # to_body is an alias to to_hash (backward compatibility)
298
+ # @return [Hash] Returns the object in the form of hash
299
+ def to_body
300
+ to_hash
301
+ end
302
+
303
+ # Returns the object in the form of hash
304
+ # @return [Hash] Returns the object in the form of hash
305
+ def to_hash
306
+ hash = {}
307
+ self.class.attribute_map.each_pair do |attr, param|
308
+ value = self.send(attr)
309
+ next if value.nil?
310
+ hash[param] = _to_hash(value)
311
+ end
312
+ ::ActiveSupport::HashWithIndifferentAccess.new(hash)
313
+ end
314
+
315
+ def [](key)
316
+ to_hash[key]
317
+ end
318
+
319
+ def dig(*args)
320
+ to_hash.dig(*args)
321
+ end
322
+
323
+ # Outputs non-array value in the form of hash
324
+ # For object, use to_hash. Otherwise, just return the value
325
+ # @param [Object] value Any valid value
326
+ # @return [Hash] Returns the value in the form of hash
327
+ def _to_hash(value)
328
+ if value.is_a?(Array)
329
+ value.compact.map { |v| _to_hash(v) }
330
+ elsif value.is_a?(Hash)
331
+ {}.tap do |hash|
332
+ value.each { |k, v| hash[k] = _to_hash(v) }
333
+ end
334
+ elsif value.respond_to? :to_hash
335
+ value.to_hash
336
+ else
337
+ value
338
+ end
339
+ end
340
+
341
+ end
342
+
343
+ end