cryptopay-ruby 0.1.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 (95) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/ci.yml +36 -0
  3. data/.gitignore +38 -0
  4. data/.rspec +2 -0
  5. data/.rubocop.yml +104 -0
  6. data/Gemfile +8 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +521 -0
  9. data/Rakefile +8 -0
  10. data/bin/console +15 -0
  11. data/cryptopay.gemspec +40 -0
  12. data/lib/cryptopay/api/accounts.rb +51 -0
  13. data/lib/cryptopay/api/channels.rb +142 -0
  14. data/lib/cryptopay/api/coin_withdrawals.rb +115 -0
  15. data/lib/cryptopay/api/customers.rb +85 -0
  16. data/lib/cryptopay/api/exchange_transfers.rb +64 -0
  17. data/lib/cryptopay/api/invoices.rb +163 -0
  18. data/lib/cryptopay/api/rates.rb +50 -0
  19. data/lib/cryptopay/api/risks.rb +32 -0
  20. data/lib/cryptopay/api/transactions.rb +47 -0
  21. data/lib/cryptopay/authentication.rb +30 -0
  22. data/lib/cryptopay/callbacks.rb +38 -0
  23. data/lib/cryptopay/client.rb +39 -0
  24. data/lib/cryptopay/config.rb +48 -0
  25. data/lib/cryptopay/connection.rb +48 -0
  26. data/lib/cryptopay/encoder.rb +113 -0
  27. data/lib/cryptopay/errors.rb +32 -0
  28. data/lib/cryptopay/models/account.rb +88 -0
  29. data/lib/cryptopay/models/account_list_result.rb +70 -0
  30. data/lib/cryptopay/models/callback.rb +25 -0
  31. data/lib/cryptopay/models/channel.rb +156 -0
  32. data/lib/cryptopay/models/channel_list_result.rb +82 -0
  33. data/lib/cryptopay/models/channel_params.rb +102 -0
  34. data/lib/cryptopay/models/channel_payment.rb +216 -0
  35. data/lib/cryptopay/models/channel_payment_callback.rb +92 -0
  36. data/lib/cryptopay/models/channel_payment_callback_event.rb +21 -0
  37. data/lib/cryptopay/models/channel_payment_list_result.rb +82 -0
  38. data/lib/cryptopay/models/channel_payment_result.rb +68 -0
  39. data/lib/cryptopay/models/channel_payment_status.rb +21 -0
  40. data/lib/cryptopay/models/channel_payment_status_context.rb +18 -0
  41. data/lib/cryptopay/models/channel_result.rb +68 -0
  42. data/lib/cryptopay/models/channel_status.rb +18 -0
  43. data/lib/cryptopay/models/channel_update_params.rb +85 -0
  44. data/lib/cryptopay/models/coin_withdrawal.rb +205 -0
  45. data/lib/cryptopay/models/coin_withdrawal_callback.rb +92 -0
  46. data/lib/cryptopay/models/coin_withdrawal_callback_event.rb +18 -0
  47. data/lib/cryptopay/models/coin_withdrawal_list_result.rb +82 -0
  48. data/lib/cryptopay/models/coin_withdrawal_params.rb +135 -0
  49. data/lib/cryptopay/models/coin_withdrawal_result.rb +68 -0
  50. data/lib/cryptopay/models/coin_withdrawal_status.rb +24 -0
  51. data/lib/cryptopay/models/customer.rb +81 -0
  52. data/lib/cryptopay/models/customer_list_result.rb +82 -0
  53. data/lib/cryptopay/models/customer_params.rb +81 -0
  54. data/lib/cryptopay/models/customer_result.rb +68 -0
  55. data/lib/cryptopay/models/customer_update_params.rb +68 -0
  56. data/lib/cryptopay/models/exchange.rb +89 -0
  57. data/lib/cryptopay/models/exchange_transfer.rb +116 -0
  58. data/lib/cryptopay/models/exchange_transfer_params.rb +101 -0
  59. data/lib/cryptopay/models/exchange_transfer_result.rb +68 -0
  60. data/lib/cryptopay/models/invoice.rb +276 -0
  61. data/lib/cryptopay/models/invoice_callback.rb +90 -0
  62. data/lib/cryptopay/models/invoice_callback_event.rb +22 -0
  63. data/lib/cryptopay/models/invoice_list_result.rb +82 -0
  64. data/lib/cryptopay/models/invoice_params.rb +131 -0
  65. data/lib/cryptopay/models/invoice_recalculation.rb +178 -0
  66. data/lib/cryptopay/models/invoice_recalculation_params.rb +61 -0
  67. data/lib/cryptopay/models/invoice_recalculation_result.rb +68 -0
  68. data/lib/cryptopay/models/invoice_refund.rb +154 -0
  69. data/lib/cryptopay/models/invoice_refund_list_result.rb +70 -0
  70. data/lib/cryptopay/models/invoice_refund_params.rb +61 -0
  71. data/lib/cryptopay/models/invoice_refund_result.rb +68 -0
  72. data/lib/cryptopay/models/invoice_result.rb +68 -0
  73. data/lib/cryptopay/models/invoice_status.rb +21 -0
  74. data/lib/cryptopay/models/invoice_status_context.rb +20 -0
  75. data/lib/cryptopay/models/invoice_transaction.rb +76 -0
  76. data/lib/cryptopay/models/network_fee.rb +84 -0
  77. data/lib/cryptopay/models/network_fee_level.rb +19 -0
  78. data/lib/cryptopay/models/network_fee_list_result.rb +70 -0
  79. data/lib/cryptopay/models/pagination.rb +72 -0
  80. data/lib/cryptopay/models/rate.rb +74 -0
  81. data/lib/cryptopay/models/rate_result.rb +68 -0
  82. data/lib/cryptopay/models/rates_result.rb +64 -0
  83. data/lib/cryptopay/models/risk.rb +98 -0
  84. data/lib/cryptopay/models/risk_level.rb +19 -0
  85. data/lib/cryptopay/models/risk_params.rb +86 -0
  86. data/lib/cryptopay/models/risk_result.rb +68 -0
  87. data/lib/cryptopay/models/transaction.rb +174 -0
  88. data/lib/cryptopay/models/transaction_list_result.rb +82 -0
  89. data/lib/cryptopay/models/transaction_reference_type.rb +25 -0
  90. data/lib/cryptopay/request.rb +46 -0
  91. data/lib/cryptopay/require.rb +79 -0
  92. data/lib/cryptopay/types.rb +11 -0
  93. data/lib/cryptopay/version.rb +5 -0
  94. data/lib/cryptopay.rb +26 -0
  95. metadata +256 -0
@@ -0,0 +1,101 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class ExchangeTransferParams
8
+ ENCODER = Encoder.new(
9
+ name: 'Cryptopay::ExchangeTransferParams',
10
+ attribute_map: {
11
+ 'charged_currency': :charged_currency,
12
+ 'charged_amount': :charged_amount,
13
+ 'received_currency': :received_currency,
14
+ 'received_amount': :received_amount,
15
+ 'custom_id': :custom_id,
16
+ 'force_commit': :force_commit
17
+ },
18
+ types: {
19
+ 'charged_currency': :String,
20
+ 'charged_amount': :Decimal,
21
+ 'received_currency': :String,
22
+ 'received_amount': :Decimal,
23
+ 'custom_id': :String,
24
+ 'force_commit': :Boolean
25
+ },
26
+ nullables: %i[
27
+ charged_amount
28
+ received_amount
29
+ ]
30
+ )
31
+ private_constant :ENCODER
32
+
33
+ # Initializes the object
34
+ # @param [Hash] attributes Model attributes in the form of hash
35
+ def initialize(attributes = {})
36
+ @attributes = ENCODER.sanitize(attributes)
37
+ end
38
+
39
+ def charged_currency
40
+ @attributes[:charged_currency]
41
+ end
42
+
43
+ def charged_amount
44
+ @attributes[:charged_amount]
45
+ end
46
+
47
+ def received_currency
48
+ @attributes[:received_currency]
49
+ end
50
+
51
+ def received_amount
52
+ @attributes[:received_amount]
53
+ end
54
+
55
+ def custom_id
56
+ @attributes[:custom_id]
57
+ end
58
+
59
+ def force_commit
60
+ @attributes[:force_commit]
61
+ end
62
+
63
+ # Show invalid properties with the reasons. Usually used together with valid?
64
+ # @return Array for valid properties with the reasons
65
+ def invalid_properties
66
+ properties = []
67
+
68
+ properties.push('invalid value for "charged_currency", charged_currency cannot be nil.') if charged_currency.nil?
69
+
70
+ if received_currency.nil?
71
+ properties.push('invalid value for "received_currency", received_currency cannot be nil.')
72
+ end
73
+
74
+ properties
75
+ end
76
+
77
+ # Check to see if the all the properties in the model are valid
78
+ # @return true if the model is valid
79
+ def valid?
80
+ invalid_properties.empty?
81
+ end
82
+
83
+ # Builds the object from hash
84
+ # @param [Hash] attributes Model attributes in the form of hash
85
+ # @return [Cryptopay::ExchangeTransferParams] Returns the model itself
86
+ def self.build_from_hash(data)
87
+ attributes = ENCODER.build_from_hash(data)
88
+ new(attributes)
89
+ end
90
+
91
+ # Returns the object in the form of hash
92
+ # @return [Hash] Returns the object in the form of hash
93
+ def to_hash
94
+ ENCODER.to_hash(@attributes)
95
+ end
96
+
97
+ def inspect
98
+ "#<#{self.class}:0x#{object_id.to_s(16)}> JSON: " + JSON.pretty_generate(to_hash)
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class ExchangeTransferResult
8
+ ENCODER = Encoder.new(
9
+ name: 'Cryptopay::ExchangeTransferResult',
10
+ attribute_map: {
11
+ 'data': :data
12
+ },
13
+ types: {
14
+ 'data': :ExchangeTransfer
15
+ },
16
+ nullables: []
17
+ )
18
+ private_constant :ENCODER
19
+
20
+ # Initializes the object
21
+ # @param [Hash] attributes Model attributes in the form of hash
22
+ def initialize(attributes = {})
23
+ @attributes = ENCODER.sanitize(attributes)
24
+ end
25
+
26
+ def data
27
+ @attributes[:data]
28
+ end
29
+
30
+ # Show invalid properties with the reasons. Usually used together with valid?
31
+ # @return Array for valid properties with the reasons
32
+ def invalid_properties
33
+ properties = []
34
+
35
+ properties.push('invalid value for "data", data cannot be nil.') if data.nil?
36
+
37
+ data&.invalid_properties&.each do |prop|
38
+ properties.push("invalid value for \"data\": #{prop}")
39
+ end
40
+
41
+ properties
42
+ end
43
+
44
+ # Check to see if the all the properties in the model are valid
45
+ # @return true if the model is valid
46
+ def valid?
47
+ invalid_properties.empty?
48
+ end
49
+
50
+ # Builds the object from hash
51
+ # @param [Hash] attributes Model attributes in the form of hash
52
+ # @return [Cryptopay::ExchangeTransferResult] Returns the model itself
53
+ def self.build_from_hash(data)
54
+ attributes = ENCODER.build_from_hash(data)
55
+ new(attributes)
56
+ end
57
+
58
+ # Returns the object in the form of hash
59
+ # @return [Hash] Returns the object in the form of hash
60
+ def to_hash
61
+ ENCODER.to_hash(@attributes)
62
+ end
63
+
64
+ def inspect
65
+ "#<#{self.class}:0x#{object_id.to_s(16)}> JSON: " + JSON.pretty_generate(to_hash)
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,276 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class Invoice
8
+ ENCODER = Encoder.new(
9
+ name: 'Cryptopay::Invoice',
10
+ attribute_map: {
11
+ 'id': :id,
12
+ 'custom_id': :custom_id,
13
+ 'customer_id': :customer_id,
14
+ 'status': :status,
15
+ 'status_context': :status_context,
16
+ 'address': :address,
17
+ 'uri': :uri,
18
+ 'price_amount': :price_amount,
19
+ 'price_currency': :price_currency,
20
+ 'fee': :fee,
21
+ 'fee_currency': :fee_currency,
22
+ 'pay_amount': :pay_amount,
23
+ 'pay_currency': :pay_currency,
24
+ 'paid_amount': :paid_amount,
25
+ 'exchange': :exchange,
26
+ 'transactions': :transactions,
27
+ 'name': :name,
28
+ 'description': :description,
29
+ 'metadata': :metadata,
30
+ 'success_redirect_url': :success_redirect_url,
31
+ 'unsuccess_redirect_url': :unsuccess_redirect_url,
32
+ 'hosted_page_url': :hosted_page_url,
33
+ 'created_at': :created_at,
34
+ 'expires_at': :expires_at
35
+ },
36
+ types: {
37
+ 'id': :String,
38
+ 'custom_id': :String,
39
+ 'customer_id': :String,
40
+ 'status': :InvoiceStatus,
41
+ 'status_context': :InvoiceStatusContext,
42
+ 'address': :String,
43
+ 'uri': :String,
44
+ 'price_amount': :Decimal,
45
+ 'price_currency': :String,
46
+ 'fee': :Decimal,
47
+ 'fee_currency': :String,
48
+ 'pay_amount': :Decimal,
49
+ 'pay_currency': :String,
50
+ 'paid_amount': :Decimal,
51
+ 'exchange': :Exchange,
52
+ 'transactions': :'Array<InvoiceTransaction>',
53
+ 'name': :String,
54
+ 'description': :String,
55
+ 'metadata': :Object,
56
+ 'success_redirect_url': :String,
57
+ 'unsuccess_redirect_url': :String,
58
+ 'hosted_page_url': :String,
59
+ 'created_at': :Time,
60
+ 'expires_at': :Time
61
+ },
62
+ nullables: %i[
63
+ custom_id
64
+ customer_id
65
+ status_context
66
+ name
67
+ description
68
+ metadata
69
+ success_redirect_url
70
+ unsuccess_redirect_url
71
+ ]
72
+ )
73
+ private_constant :ENCODER
74
+
75
+ # Initializes the object
76
+ # @param [Hash] attributes Model attributes in the form of hash
77
+ def initialize(attributes = {})
78
+ @attributes = ENCODER.sanitize(attributes)
79
+ end
80
+
81
+ # Invoice ID
82
+ def id
83
+ @attributes[:id]
84
+ end
85
+
86
+ # Invoice reference ID in your system
87
+ def custom_id
88
+ @attributes[:custom_id]
89
+ end
90
+
91
+ # The internal ID of your customer that the invoice relates to
92
+ def customer_id
93
+ @attributes[:customer_id]
94
+ end
95
+
96
+ def status
97
+ @attributes[:status]
98
+ end
99
+
100
+ def status_context
101
+ @attributes[:status_context]
102
+ end
103
+
104
+ # Invoice cryptocurrency address
105
+ def address
106
+ @attributes[:address]
107
+ end
108
+
109
+ # Invoice URI. May be used for generating a QR code
110
+ def uri
111
+ @attributes[:uri]
112
+ end
113
+
114
+ # Invoice amount
115
+ def price_amount
116
+ @attributes[:price_amount]
117
+ end
118
+
119
+ # Invoice amount currency
120
+ def price_currency
121
+ @attributes[:price_currency]
122
+ end
123
+
124
+ # Processing fee
125
+ def fee
126
+ @attributes[:fee]
127
+ end
128
+
129
+ # Processing fee currency
130
+ def fee_currency
131
+ @attributes[:fee_currency]
132
+ end
133
+
134
+ # Cryptocurrency amount to pay
135
+ def pay_amount
136
+ @attributes[:pay_amount]
137
+ end
138
+
139
+ # Cryptocurrency type
140
+ def pay_currency
141
+ @attributes[:pay_currency]
142
+ end
143
+
144
+ # which amount already paid
145
+ def paid_amount
146
+ @attributes[:paid_amount]
147
+ end
148
+
149
+ def exchange
150
+ @attributes[:exchange]
151
+ end
152
+
153
+ def transactions
154
+ @attributes[:transactions]
155
+ end
156
+
157
+ # Invoice name
158
+ def name
159
+ @attributes[:name]
160
+ end
161
+
162
+ # Invoice description
163
+ def description
164
+ @attributes[:description]
165
+ end
166
+
167
+ # Key-value data
168
+ def metadata
169
+ @attributes[:metadata]
170
+ end
171
+
172
+ # URL that a customer will be redirected to upon transaction confirmation
173
+ def success_redirect_url
174
+ @attributes[:success_redirect_url]
175
+ end
176
+
177
+ def unsuccess_redirect_url
178
+ @attributes[:unsuccess_redirect_url]
179
+ end
180
+
181
+ # Invoice hosted page that renders invoice details
182
+ def hosted_page_url
183
+ @attributes[:hosted_page_url]
184
+ end
185
+
186
+ # Invoice creation date and time
187
+ def created_at
188
+ @attributes[:created_at]
189
+ end
190
+
191
+ # Invoice expiration date and time
192
+ def expires_at
193
+ @attributes[:expires_at]
194
+ end
195
+
196
+ # Show invalid properties with the reasons. Usually used together with valid?
197
+ # @return Array for valid properties with the reasons
198
+ def invalid_properties
199
+ properties = []
200
+
201
+ properties.push('invalid value for "id", id cannot be nil.') if id.nil?
202
+
203
+ properties.push('invalid value for "status", status cannot be nil.') if status.nil?
204
+
205
+ if !status.nil? && !%w[new completed unresolved refunded cancelled].include?(status)
206
+ properties.push('invalid value for status, must be one of "new", "completed", "unresolved", "refunded", "cancelled"')
207
+ end
208
+
209
+ if !status_context.nil? && !%w[overpaid underpaid paid_late illicit_resource].include?(status_context)
210
+ properties.push('invalid value for status_context, must be one of "overpaid", "underpaid", "paid_late", "illicit_resource"')
211
+ end
212
+
213
+ properties.push('invalid value for "address", address cannot be nil.') if address.nil?
214
+
215
+ properties.push('invalid value for "uri", uri cannot be nil.') if uri.nil?
216
+
217
+ properties.push('invalid value for "price_amount", price_amount cannot be nil.') if price_amount.nil?
218
+
219
+ properties.push('invalid value for "price_currency", price_currency cannot be nil.') if price_currency.nil?
220
+
221
+ properties.push('invalid value for "fee", fee cannot be nil.') if fee.nil?
222
+
223
+ properties.push('invalid value for "fee_currency", fee_currency cannot be nil.') if fee_currency.nil?
224
+
225
+ properties.push('invalid value for "pay_amount", pay_amount cannot be nil.') if pay_amount.nil?
226
+
227
+ properties.push('invalid value for "pay_currency", pay_currency cannot be nil.') if pay_currency.nil?
228
+
229
+ properties.push('invalid value for "paid_amount", paid_amount cannot be nil.') if paid_amount.nil?
230
+
231
+ exchange&.invalid_properties&.each do |prop|
232
+ properties.push("invalid value for \"exchange\": #{prop}")
233
+ end
234
+
235
+ properties.push('invalid value for "transactions", transactions cannot be nil.') if transactions.nil?
236
+
237
+ transactions&.each_with_index do |item, index|
238
+ item.invalid_properties.each do |prop|
239
+ properties.push("invalid value for \"transactions.#{index}\": #{prop}")
240
+ end
241
+ end
242
+
243
+ properties.push('invalid value for "hosted_page_url", hosted_page_url cannot be nil.') if hosted_page_url.nil?
244
+
245
+ properties.push('invalid value for "created_at", created_at cannot be nil.') if created_at.nil?
246
+
247
+ properties.push('invalid value for "expires_at", expires_at cannot be nil.') if expires_at.nil?
248
+
249
+ properties
250
+ end
251
+
252
+ # Check to see if the all the properties in the model are valid
253
+ # @return true if the model is valid
254
+ def valid?
255
+ invalid_properties.empty?
256
+ end
257
+
258
+ # Builds the object from hash
259
+ # @param [Hash] attributes Model attributes in the form of hash
260
+ # @return [Cryptopay::Invoice] Returns the model itself
261
+ def self.build_from_hash(data)
262
+ attributes = ENCODER.build_from_hash(data)
263
+ new(attributes)
264
+ end
265
+
266
+ # Returns the object in the form of hash
267
+ # @return [Hash] Returns the object in the form of hash
268
+ def to_hash
269
+ ENCODER.to_hash(@attributes)
270
+ end
271
+
272
+ def inspect
273
+ "#<#{self.class}:0x#{object_id.to_s(16)}> JSON: " + JSON.pretty_generate(to_hash)
274
+ end
275
+ end
276
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class InvoiceCallback
8
+ ENCODER = Encoder.new(
9
+ name: 'Cryptopay::InvoiceCallback',
10
+ attribute_map: {
11
+ 'type': :type,
12
+ 'event': :event,
13
+ 'data': :data
14
+ },
15
+ types: {
16
+ 'type': :String,
17
+ 'event': :InvoiceCallbackEvent,
18
+ 'data': :Invoice
19
+ },
20
+ nullables: []
21
+ )
22
+ private_constant :ENCODER
23
+
24
+ # Initializes the object
25
+ # @param [Hash] attributes Model attributes in the form of hash
26
+ def initialize(attributes = {})
27
+ @attributes = ENCODER.sanitize(attributes)
28
+ end
29
+
30
+ def type
31
+ @attributes[:type]
32
+ end
33
+
34
+ def event
35
+ @attributes[:event]
36
+ end
37
+
38
+ def data
39
+ @attributes[:data]
40
+ end
41
+
42
+ # Show invalid properties with the reasons. Usually used together with valid?
43
+ # @return Array for valid properties with the reasons
44
+ def invalid_properties
45
+ properties = []
46
+
47
+ properties.push('invalid value for "type", type cannot be nil.') if type.nil?
48
+
49
+ properties.push('invalid value for type, must be one of "Invoice"') if !type.nil? && !['Invoice'].include?(type)
50
+
51
+ properties.push('invalid value for "event", event cannot be nil.') if event.nil?
52
+
53
+ if !event.nil? && !%w[created refunded recalculated status_changed transaction_created transaction_confirmed].include?(event)
54
+ properties.push('invalid value for event, must be one of "created", "refunded", "recalculated", "status_changed", "transaction_created", "transaction_confirmed"')
55
+ end
56
+
57
+ properties.push('invalid value for "data", data cannot be nil.') if data.nil?
58
+
59
+ data&.invalid_properties&.each do |prop|
60
+ properties.push("invalid value for \"data\": #{prop}")
61
+ end
62
+
63
+ properties
64
+ end
65
+
66
+ # Check to see if the all the properties in the model are valid
67
+ # @return true if the model is valid
68
+ def valid?
69
+ invalid_properties.empty?
70
+ end
71
+
72
+ # Builds the object from hash
73
+ # @param [Hash] attributes Model attributes in the form of hash
74
+ # @return [Cryptopay::InvoiceCallback] Returns the model itself
75
+ def self.build_from_hash(data)
76
+ attributes = ENCODER.build_from_hash(data)
77
+ new(attributes)
78
+ end
79
+
80
+ # Returns the object in the form of hash
81
+ # @return [Hash] Returns the object in the form of hash
82
+ def to_hash
83
+ ENCODER.to_hash(@attributes)
84
+ end
85
+
86
+ def inspect
87
+ "#<#{self.class}:0x#{object_id.to_s(16)}> JSON: " + JSON.pretty_generate(to_hash)
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ module InvoiceCallbackEvent
8
+ CREATED = 'created'
9
+ REFUNDED = 'refunded'
10
+ RECALCULATED = 'recalculated'
11
+ STATUS_CHANGED = 'status_changed'
12
+ TRANSACTION_CREATED = 'transaction_created'
13
+ TRANSACTION_CONFIRMED = 'transaction_confirmed'
14
+
15
+ # Builds the enum from string
16
+ # @param [String] The enum value in the form of the string
17
+ # @return [String] The enum value
18
+ def self.build_from_hash(value)
19
+ value
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class InvoiceListResult
8
+ ENCODER = Encoder.new(
9
+ name: 'Cryptopay::InvoiceListResult',
10
+ attribute_map: {
11
+ 'data': :data,
12
+ 'meta': :meta
13
+ },
14
+ types: {
15
+ 'data': :'Array<Invoice>',
16
+ 'meta': :Pagination
17
+ },
18
+ nullables: []
19
+ )
20
+ private_constant :ENCODER
21
+
22
+ # Initializes the object
23
+ # @param [Hash] attributes Model attributes in the form of hash
24
+ def initialize(attributes = {})
25
+ @attributes = ENCODER.sanitize(attributes)
26
+ end
27
+
28
+ def data
29
+ @attributes[:data]
30
+ end
31
+
32
+ def meta
33
+ @attributes[:meta]
34
+ end
35
+
36
+ # Show invalid properties with the reasons. Usually used together with valid?
37
+ # @return Array for valid properties with the reasons
38
+ def invalid_properties
39
+ properties = []
40
+
41
+ properties.push('invalid value for "data", data cannot be nil.') if data.nil?
42
+
43
+ data&.each_with_index do |item, index|
44
+ item.invalid_properties.each do |prop|
45
+ properties.push("invalid value for \"data.#{index}\": #{prop}")
46
+ end
47
+ end
48
+
49
+ properties.push('invalid value for "meta", meta cannot be nil.') if meta.nil?
50
+
51
+ meta&.invalid_properties&.each do |prop|
52
+ properties.push("invalid value for \"meta\": #{prop}")
53
+ end
54
+
55
+ properties
56
+ end
57
+
58
+ # Check to see if the all the properties in the model are valid
59
+ # @return true if the model is valid
60
+ def valid?
61
+ invalid_properties.empty?
62
+ end
63
+
64
+ # Builds the object from hash
65
+ # @param [Hash] attributes Model attributes in the form of hash
66
+ # @return [Cryptopay::InvoiceListResult] Returns the model itself
67
+ def self.build_from_hash(data)
68
+ attributes = ENCODER.build_from_hash(data)
69
+ new(attributes)
70
+ end
71
+
72
+ # Returns the object in the form of hash
73
+ # @return [Hash] Returns the object in the form of hash
74
+ def to_hash
75
+ ENCODER.to_hash(@attributes)
76
+ end
77
+
78
+ def inspect
79
+ "#<#{self.class}:0x#{object_id.to_s(16)}> JSON: " + JSON.pretty_generate(to_hash)
80
+ end
81
+ end
82
+ end