cryptopay-ruby 2.0.0 → 2.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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +6 -1
  3. data/.rubocop.yml +3 -0
  4. data/README.md +60 -0
  5. data/lib/cryptopay/api/invoices.rb +2 -0
  6. data/lib/cryptopay/api/subscriptions.rb +99 -0
  7. data/lib/cryptopay/client.rb +4 -2
  8. data/lib/cryptopay/models/account.rb +8 -8
  9. data/lib/cryptopay/models/account_list_result.rb +8 -8
  10. data/lib/cryptopay/models/callback.rb +3 -1
  11. data/lib/cryptopay/models/channel.rb +8 -8
  12. data/lib/cryptopay/models/channel_list_result.rb +8 -8
  13. data/lib/cryptopay/models/channel_params.rb +8 -8
  14. data/lib/cryptopay/models/channel_payment.rb +8 -8
  15. data/lib/cryptopay/models/channel_payment_callback.rb +8 -8
  16. data/lib/cryptopay/models/channel_payment_list_result.rb +8 -8
  17. data/lib/cryptopay/models/channel_payment_result.rb +8 -8
  18. data/lib/cryptopay/models/channel_result.rb +8 -8
  19. data/lib/cryptopay/models/channel_update_params.rb +8 -8
  20. data/lib/cryptopay/models/channels_config.rb +8 -8
  21. data/lib/cryptopay/models/coin.rb +8 -8
  22. data/lib/cryptopay/models/coin_destination_tag.rb +8 -8
  23. data/lib/cryptopay/models/coin_list_result.rb +8 -8
  24. data/lib/cryptopay/models/coin_network.rb +8 -8
  25. data/lib/cryptopay/models/coin_withdrawal.rb +8 -8
  26. data/lib/cryptopay/models/coin_withdrawal_callback.rb +8 -8
  27. data/lib/cryptopay/models/coin_withdrawal_list_result.rb +8 -8
  28. data/lib/cryptopay/models/coin_withdrawal_params.rb +8 -8
  29. data/lib/cryptopay/models/coin_withdrawal_result.rb +8 -8
  30. data/lib/cryptopay/models/coin_withdrawals_config.rb +8 -8
  31. data/lib/cryptopay/models/customer.rb +8 -8
  32. data/lib/cryptopay/models/customer_address.rb +8 -8
  33. data/lib/cryptopay/models/customer_list_result.rb +8 -8
  34. data/lib/cryptopay/models/customer_params.rb +8 -8
  35. data/lib/cryptopay/models/customer_result.rb +8 -8
  36. data/lib/cryptopay/models/customer_update_params.rb +8 -8
  37. data/lib/cryptopay/models/exchange.rb +8 -8
  38. data/lib/cryptopay/models/exchange_transfer.rb +8 -8
  39. data/lib/cryptopay/models/exchange_transfer_params.rb +8 -8
  40. data/lib/cryptopay/models/exchange_transfer_result.rb +8 -8
  41. data/lib/cryptopay/models/invoice.rb +15 -8
  42. data/lib/cryptopay/models/invoice_callback.rb +8 -8
  43. data/lib/cryptopay/models/invoice_list_result.rb +8 -8
  44. data/lib/cryptopay/models/invoice_params.rb +17 -10
  45. data/lib/cryptopay/models/invoice_recalculation.rb +8 -8
  46. data/lib/cryptopay/models/invoice_recalculation_params.rb +8 -8
  47. data/lib/cryptopay/models/invoice_recalculation_result.rb +8 -8
  48. data/lib/cryptopay/models/invoice_refund.rb +8 -8
  49. data/lib/cryptopay/models/invoice_refund_list_result.rb +8 -8
  50. data/lib/cryptopay/models/invoice_refund_params.rb +8 -8
  51. data/lib/cryptopay/models/invoice_refund_result.rb +8 -8
  52. data/lib/cryptopay/models/invoice_result.rb +8 -8
  53. data/lib/cryptopay/models/invoice_transaction.rb +8 -8
  54. data/lib/cryptopay/models/invoices_config.rb +8 -8
  55. data/lib/cryptopay/models/network_fee.rb +8 -8
  56. data/lib/cryptopay/models/network_fee_list_result.rb +8 -8
  57. data/lib/cryptopay/models/pagination.rb +8 -8
  58. data/lib/cryptopay/models/rate.rb +8 -8
  59. data/lib/cryptopay/models/rate_result.rb +8 -8
  60. data/lib/cryptopay/models/rates_result.rb +8 -8
  61. data/lib/cryptopay/models/risk.rb +8 -8
  62. data/lib/cryptopay/models/risk_params.rb +8 -8
  63. data/lib/cryptopay/models/risk_result.rb +8 -8
  64. data/lib/cryptopay/models/subscription.rb +222 -0
  65. data/lib/cryptopay/models/subscription_callback.rb +88 -0
  66. data/lib/cryptopay/models/subscription_callback_event.rb +18 -0
  67. data/lib/cryptopay/models/subscription_list_result.rb +82 -0
  68. data/lib/cryptopay/models/subscription_params.rb +159 -0
  69. data/lib/cryptopay/models/subscription_period.rb +20 -0
  70. data/lib/cryptopay/models/subscription_result.rb +68 -0
  71. data/lib/cryptopay/models/subscription_status.rb +18 -0
  72. data/lib/cryptopay/models/transaction.rb +8 -8
  73. data/lib/cryptopay/models/transaction_list_result.rb +8 -8
  74. data/lib/cryptopay/require.rb +9 -0
  75. data/lib/cryptopay/version.rb +1 -1
  76. metadata +15 -6
@@ -0,0 +1,222 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class Subscription
8
+ ENCODER = Encoder.new(
9
+ name: 'Cryptopay::Subscription',
10
+ attribute_map: {
11
+ 'id': :id,
12
+ 'status': :status,
13
+ 'custom_id': :custom_id,
14
+ 'name': :name,
15
+ 'amount': :amount,
16
+ 'currency': :currency,
17
+ 'period': :period,
18
+ 'period_quantity': :period_quantity,
19
+ 'current_period_starts_at': :current_period_starts_at,
20
+ 'current_period_ends_at': :current_period_ends_at,
21
+ 'current_period_paid': :current_period_paid,
22
+ 'payer_email': :payer_email,
23
+ 'payer_name': :payer_name,
24
+ 'product_name': :product_name,
25
+ 'product_description': :product_description,
26
+ 'success_redirect_url': :success_redirect_url,
27
+ 'unsuccess_redirect_url': :unsuccess_redirect_url,
28
+ 'created_at': :created_at,
29
+ 'cancelled_at': :cancelled_at
30
+ },
31
+ types: {
32
+ 'id': :String,
33
+ 'status': :SubscriptionStatus,
34
+ 'custom_id': :String,
35
+ 'name': :String,
36
+ 'amount': :Decimal,
37
+ 'currency': :String,
38
+ 'period': :SubscriptionPeriod,
39
+ 'period_quantity': :Integer,
40
+ 'current_period_starts_at': :Time,
41
+ 'current_period_ends_at': :Time,
42
+ 'current_period_paid': :Boolean,
43
+ 'payer_email': :String,
44
+ 'payer_name': :String,
45
+ 'product_name': :String,
46
+ 'product_description': :String,
47
+ 'success_redirect_url': :String,
48
+ 'unsuccess_redirect_url': :String,
49
+ 'created_at': :Time,
50
+ 'cancelled_at': :Time
51
+ },
52
+ nullables: %i[
53
+ custom_id
54
+ payer_name
55
+ product_name
56
+ product_description
57
+ success_redirect_url
58
+ unsuccess_redirect_url
59
+ cancelled_at
60
+ ]
61
+ )
62
+ private_constant :ENCODER
63
+
64
+ # Builds the object from hash
65
+ # @param [Hash] attributes Model attributes in the form of hash
66
+ # @return [Cryptopay::Subscription] 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
+ # Initializes the object
73
+ # @param [Hash] attributes Model attributes in the form of hash
74
+ def initialize(attributes = {})
75
+ @attributes = ENCODER.sanitize(attributes)
76
+ end
77
+
78
+ # Subscription ID
79
+ def id
80
+ @attributes[:id]
81
+ end
82
+
83
+ def status
84
+ @attributes[:status]
85
+ end
86
+
87
+ # Subscription reference ID in your system
88
+ def custom_id
89
+ @attributes[:custom_id]
90
+ end
91
+
92
+ # Subscription name
93
+ def name
94
+ @attributes[:name]
95
+ end
96
+
97
+ # Subscription amount
98
+ def amount
99
+ @attributes[:amount]
100
+ end
101
+
102
+ # Subscription amount currency
103
+ def currency
104
+ @attributes[:currency]
105
+ end
106
+
107
+ def period
108
+ @attributes[:period]
109
+ end
110
+
111
+ def period_quantity
112
+ @attributes[:period_quantity]
113
+ end
114
+
115
+ def current_period_starts_at
116
+ @attributes[:current_period_starts_at]
117
+ end
118
+
119
+ def current_period_ends_at
120
+ @attributes[:current_period_ends_at]
121
+ end
122
+
123
+ def current_period_paid
124
+ @attributes[:current_period_paid]
125
+ end
126
+
127
+ def payer_email
128
+ @attributes[:payer_email]
129
+ end
130
+
131
+ def payer_name
132
+ @attributes[:payer_name]
133
+ end
134
+
135
+ def product_name
136
+ @attributes[:product_name]
137
+ end
138
+
139
+ def product_description
140
+ @attributes[:product_description]
141
+ end
142
+
143
+ # The URL that the customer will be redirected to upon transaction confirmation
144
+ def success_redirect_url
145
+ @attributes[:success_redirect_url]
146
+ end
147
+
148
+ def unsuccess_redirect_url
149
+ @attributes[:unsuccess_redirect_url]
150
+ end
151
+
152
+ def created_at
153
+ @attributes[:created_at]
154
+ end
155
+
156
+ def cancelled_at
157
+ @attributes[:cancelled_at]
158
+ end
159
+
160
+ # Show invalid properties with the reasons. Usually used together with valid?
161
+ # @return Array for valid properties with the reasons
162
+ def invalid_properties
163
+ properties = []
164
+
165
+ properties.push('invalid value for "id", id cannot be nil.') if id.nil?
166
+
167
+ properties.push('invalid value for "status", status cannot be nil.') if status.nil?
168
+
169
+ if !status.nil? && !%w[active cancelled].include?(status)
170
+ properties.push('invalid value for status, must be one of "active", "cancelled"')
171
+ end
172
+
173
+ properties.push('invalid value for "name", name cannot be nil.') if name.nil?
174
+
175
+ properties.push('invalid value for "amount", amount cannot be nil.') if amount.nil?
176
+
177
+ properties.push('invalid value for "currency", currency cannot be nil.') if currency.nil?
178
+
179
+ properties.push('invalid value for "period", period cannot be nil.') if period.nil?
180
+
181
+ if !period.nil? && !%w[day week month year].include?(period)
182
+ properties.push('invalid value for period, must be one of "day", "week", "month", "year"')
183
+ end
184
+
185
+ properties.push('invalid value for "period_quantity", period_quantity cannot be nil.') if period_quantity.nil?
186
+
187
+ if current_period_starts_at.nil?
188
+ properties.push('invalid value for "current_period_starts_at", current_period_starts_at cannot be nil.')
189
+ end
190
+
191
+ if current_period_ends_at.nil?
192
+ properties.push('invalid value for "current_period_ends_at", current_period_ends_at cannot be nil.')
193
+ end
194
+
195
+ if current_period_paid.nil?
196
+ properties.push('invalid value for "current_period_paid", current_period_paid cannot be nil.')
197
+ end
198
+
199
+ properties.push('invalid value for "payer_email", payer_email cannot be nil.') if payer_email.nil?
200
+
201
+ properties.push('invalid value for "created_at", created_at cannot be nil.') if created_at.nil?
202
+
203
+ properties
204
+ end
205
+
206
+ # Check to see if the all the properties in the model are valid
207
+ # @return true if the model is valid
208
+ def valid?
209
+ invalid_properties.empty?
210
+ end
211
+
212
+ # Returns the object in the form of hash
213
+ # @return [Hash] Returns the object in the form of hash
214
+ def to_hash
215
+ ENCODER.to_hash(@attributes)
216
+ end
217
+
218
+ def inspect
219
+ "#<#{self.class}:0x#{object_id.to_s(16)}> JSON: " + JSON.pretty_generate(to_hash)
220
+ end
221
+ end
222
+ end
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class SubscriptionCallback
8
+ ENCODER = Encoder.new(
9
+ name: 'Cryptopay::SubscriptionCallback',
10
+ attribute_map: {
11
+ 'type': :type,
12
+ 'event': :event,
13
+ 'data': :data
14
+ },
15
+ types: {
16
+ 'type': :String,
17
+ 'event': :SubscriptionCallbackEvent,
18
+ 'data': :Subscription
19
+ },
20
+ nullables: []
21
+ )
22
+ private_constant :ENCODER
23
+
24
+ # Builds the object from hash
25
+ # @param [Hash] attributes Model attributes in the form of hash
26
+ # @return [Cryptopay::SubscriptionCallback] Returns the model itself
27
+ def self.build_from_hash(data)
28
+ attributes = ENCODER.build_from_hash(data)
29
+ new(attributes)
30
+ end
31
+
32
+ # Initializes the object
33
+ # @param [Hash] attributes Model attributes in the form of hash
34
+ def initialize(attributes = {})
35
+ @attributes = ENCODER.sanitize(attributes)
36
+ end
37
+
38
+ def type
39
+ @attributes[:type]
40
+ end
41
+
42
+ def event
43
+ @attributes[:event]
44
+ end
45
+
46
+ def data
47
+ @attributes[:data]
48
+ end
49
+
50
+ # Show invalid properties with the reasons. Usually used together with valid?
51
+ # @return Array for valid properties with the reasons
52
+ def invalid_properties
53
+ properties = []
54
+
55
+ properties.push('invalid value for "type", type cannot be nil.') if type.nil?
56
+
57
+ properties.push('invalid value for "event", event cannot be nil.') if event.nil?
58
+
59
+ if !event.nil? && !%w[paid cancelled].include?(event)
60
+ properties.push('invalid value for event, must be one of "paid", "cancelled"')
61
+ end
62
+
63
+ properties.push('invalid value for "data", data cannot be nil.') if data.nil?
64
+
65
+ data&.invalid_properties&.each do |prop|
66
+ properties.push("invalid value for \"data\": #{prop}")
67
+ end
68
+
69
+ properties
70
+ end
71
+
72
+ # Check to see if the all the properties in the model are valid
73
+ # @return true if the model is valid
74
+ def valid?
75
+ invalid_properties.empty?
76
+ end
77
+
78
+ # Returns the object in the form of hash
79
+ # @return [Hash] Returns the object in the form of hash
80
+ def to_hash
81
+ ENCODER.to_hash(@attributes)
82
+ end
83
+
84
+ def inspect
85
+ "#<#{self.class}:0x#{object_id.to_s(16)}> JSON: " + JSON.pretty_generate(to_hash)
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ module SubscriptionCallbackEvent
8
+ PAID = 'paid'
9
+ CANCELLED = 'cancelled'
10
+
11
+ # Builds the enum from string
12
+ # @param [String] The enum value in the form of the string
13
+ # @return [String] The enum value
14
+ def self.build_from_hash(value)
15
+ value
16
+ end
17
+ end
18
+ 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 SubscriptionListResult
8
+ ENCODER = Encoder.new(
9
+ name: 'Cryptopay::SubscriptionListResult',
10
+ attribute_map: {
11
+ 'data': :data,
12
+ 'meta': :meta
13
+ },
14
+ types: {
15
+ 'data': :'Array<Subscription>',
16
+ 'meta': :Pagination
17
+ },
18
+ nullables: []
19
+ )
20
+ private_constant :ENCODER
21
+
22
+ # Builds the object from hash
23
+ # @param [Hash] attributes Model attributes in the form of hash
24
+ # @return [Cryptopay::SubscriptionListResult] Returns the model itself
25
+ def self.build_from_hash(data)
26
+ attributes = ENCODER.build_from_hash(data)
27
+ new(attributes)
28
+ end
29
+
30
+ # Initializes the object
31
+ # @param [Hash] attributes Model attributes in the form of hash
32
+ def initialize(attributes = {})
33
+ @attributes = ENCODER.sanitize(attributes)
34
+ end
35
+
36
+ def data
37
+ @attributes[:data]
38
+ end
39
+
40
+ def meta
41
+ @attributes[:meta]
42
+ end
43
+
44
+ # Show invalid properties with the reasons. Usually used together with valid?
45
+ # @return Array for valid properties with the reasons
46
+ def invalid_properties
47
+ properties = []
48
+
49
+ properties.push('invalid value for "data", data cannot be nil.') if data.nil?
50
+
51
+ data&.each_with_index do |item, index|
52
+ item.invalid_properties.each do |prop|
53
+ properties.push("invalid value for \"data.#{index}\": #{prop}")
54
+ end
55
+ end
56
+
57
+ properties.push('invalid value for "meta", meta cannot be nil.') if meta.nil?
58
+
59
+ meta&.invalid_properties&.each do |prop|
60
+ properties.push("invalid value for \"meta\": #{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
+ # 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
@@ -0,0 +1,159 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class SubscriptionParams
8
+ ENCODER = Encoder.new(
9
+ name: 'Cryptopay::SubscriptionParams',
10
+ attribute_map: {
11
+ 'name': :name,
12
+ 'amount': :amount,
13
+ 'currency': :currency,
14
+ 'period': :period,
15
+ 'period_quantity': :period_quantity,
16
+ 'starts_at': :starts_at,
17
+ 'payer_email': :payer_email,
18
+ 'payer_name': :payer_name,
19
+ 'custom_id': :custom_id,
20
+ 'product_name': :product_name,
21
+ 'product_description': :product_description,
22
+ 'success_redirect_url': :success_redirect_url,
23
+ 'unsuccess_redirect_url': :unsuccess_redirect_url
24
+ },
25
+ types: {
26
+ 'name': :String,
27
+ 'amount': :Decimal,
28
+ 'currency': :String,
29
+ 'period': :SubscriptionPeriod,
30
+ 'period_quantity': :Integer,
31
+ 'starts_at': :Time,
32
+ 'payer_email': :String,
33
+ 'payer_name': :String,
34
+ 'custom_id': :String,
35
+ 'product_name': :String,
36
+ 'product_description': :String,
37
+ 'success_redirect_url': :String,
38
+ 'unsuccess_redirect_url': :String
39
+ },
40
+ nullables: []
41
+ )
42
+ private_constant :ENCODER
43
+
44
+ # Builds the object from hash
45
+ # @param [Hash] attributes Model attributes in the form of hash
46
+ # @return [Cryptopay::SubscriptionParams] Returns the model itself
47
+ def self.build_from_hash(data)
48
+ attributes = ENCODER.build_from_hash(data)
49
+ new(attributes)
50
+ end
51
+
52
+ # Initializes the object
53
+ # @param [Hash] attributes Model attributes in the form of hash
54
+ def initialize(attributes = {})
55
+ @attributes = ENCODER.sanitize(attributes)
56
+ end
57
+
58
+ # Subscription name
59
+ def name
60
+ @attributes[:name]
61
+ end
62
+
63
+ # Subscription amount
64
+ def amount
65
+ @attributes[:amount]
66
+ end
67
+
68
+ # Subscription amount currency
69
+ def currency
70
+ @attributes[:currency]
71
+ end
72
+
73
+ def period
74
+ @attributes[:period]
75
+ end
76
+
77
+ def period_quantity
78
+ @attributes[:period_quantity]
79
+ end
80
+
81
+ def starts_at
82
+ @attributes[:starts_at]
83
+ end
84
+
85
+ # Email of the payer
86
+ def payer_email
87
+ @attributes[:payer_email]
88
+ end
89
+
90
+ # Name of the payer
91
+ def payer_name
92
+ @attributes[:payer_name]
93
+ end
94
+
95
+ # Subscription reference ID in your system
96
+ def custom_id
97
+ @attributes[:custom_id]
98
+ end
99
+
100
+ def product_name
101
+ @attributes[:product_name]
102
+ end
103
+
104
+ def product_description
105
+ @attributes[:product_description]
106
+ end
107
+
108
+ # The URL that the customer will be redirected to upon transaction confirmation
109
+ def success_redirect_url
110
+ @attributes[:success_redirect_url]
111
+ end
112
+
113
+ def unsuccess_redirect_url
114
+ @attributes[:unsuccess_redirect_url]
115
+ end
116
+
117
+ # Show invalid properties with the reasons. Usually used together with valid?
118
+ # @return Array for valid properties with the reasons
119
+ def invalid_properties
120
+ properties = []
121
+
122
+ properties.push('invalid value for "name", name cannot be nil.') if name.nil?
123
+
124
+ properties.push('invalid value for "amount", amount cannot be nil.') if amount.nil?
125
+
126
+ properties.push('invalid value for "currency", currency cannot be nil.') if currency.nil?
127
+
128
+ properties.push('invalid value for "period", period cannot be nil.') if period.nil?
129
+
130
+ if !period.nil? && !%w[day week month year].include?(period)
131
+ properties.push('invalid value for period, must be one of "day", "week", "month", "year"')
132
+ end
133
+
134
+ properties.push('invalid value for "period_quantity", period_quantity cannot be nil.') if period_quantity.nil?
135
+
136
+ properties.push('invalid value for "starts_at", starts_at cannot be nil.') if starts_at.nil?
137
+
138
+ properties.push('invalid value for "payer_email", payer_email cannot be nil.') if payer_email.nil?
139
+
140
+ properties
141
+ end
142
+
143
+ # Check to see if the all the properties in the model are valid
144
+ # @return true if the model is valid
145
+ def valid?
146
+ invalid_properties.empty?
147
+ end
148
+
149
+ # Returns the object in the form of hash
150
+ # @return [Hash] Returns the object in the form of hash
151
+ def to_hash
152
+ ENCODER.to_hash(@attributes)
153
+ end
154
+
155
+ def inspect
156
+ "#<#{self.class}:0x#{object_id.to_s(16)}> JSON: " + JSON.pretty_generate(to_hash)
157
+ end
158
+ end
159
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ module SubscriptionPeriod
8
+ DAY = 'day'
9
+ WEEK = 'week'
10
+ MONTH = 'month'
11
+ YEAR = 'year'
12
+
13
+ # Builds the enum from string
14
+ # @param [String] The enum value in the form of the string
15
+ # @return [String] The enum value
16
+ def self.build_from_hash(value)
17
+ value
18
+ end
19
+ end
20
+ 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 SubscriptionResult
8
+ ENCODER = Encoder.new(
9
+ name: 'Cryptopay::SubscriptionResult',
10
+ attribute_map: {
11
+ 'data': :data
12
+ },
13
+ types: {
14
+ 'data': :Subscription
15
+ },
16
+ nullables: []
17
+ )
18
+ private_constant :ENCODER
19
+
20
+ # Builds the object from hash
21
+ # @param [Hash] attributes Model attributes in the form of hash
22
+ # @return [Cryptopay::SubscriptionResult] Returns the model itself
23
+ def self.build_from_hash(data)
24
+ attributes = ENCODER.build_from_hash(data)
25
+ new(attributes)
26
+ end
27
+
28
+ # Initializes the object
29
+ # @param [Hash] attributes Model attributes in the form of hash
30
+ def initialize(attributes = {})
31
+ @attributes = ENCODER.sanitize(attributes)
32
+ end
33
+
34
+ def data
35
+ @attributes[:data]
36
+ end
37
+
38
+ # Show invalid properties with the reasons. Usually used together with valid?
39
+ # @return Array for valid properties with the reasons
40
+ def invalid_properties
41
+ properties = []
42
+
43
+ properties.push('invalid value for "data", data cannot be nil.') if data.nil?
44
+
45
+ data&.invalid_properties&.each do |prop|
46
+ properties.push("invalid value for \"data\": #{prop}")
47
+ end
48
+
49
+ properties
50
+ end
51
+
52
+ # Check to see if the all the properties in the model are valid
53
+ # @return true if the model is valid
54
+ def valid?
55
+ invalid_properties.empty?
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,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ module SubscriptionStatus
8
+ ACTIVE = 'active'
9
+ CANCELLED = 'cancelled'
10
+
11
+ # Builds the enum from string
12
+ # @param [String] The enum value in the form of the string
13
+ # @return [String] The enum value
14
+ def self.build_from_hash(value)
15
+ value
16
+ end
17
+ end
18
+ end
@@ -51,6 +51,14 @@ module Cryptopay
51
51
  )
52
52
  private_constant :ENCODER
53
53
 
54
+ # Builds the object from hash
55
+ # @param [Hash] attributes Model attributes in the form of hash
56
+ # @return [Cryptopay::Transaction] Returns the model itself
57
+ def self.build_from_hash(data)
58
+ attributes = ENCODER.build_from_hash(data)
59
+ new(attributes)
60
+ end
61
+
54
62
  # Initializes the object
55
63
  # @param [Hash] attributes Model attributes in the form of hash
56
64
  def initialize(attributes = {})
@@ -166,14 +174,6 @@ module Cryptopay
166
174
  invalid_properties.empty?
167
175
  end
168
176
 
169
- # Builds the object from hash
170
- # @param [Hash] attributes Model attributes in the form of hash
171
- # @return [Cryptopay::Transaction] Returns the model itself
172
- def self.build_from_hash(data)
173
- attributes = ENCODER.build_from_hash(data)
174
- new(attributes)
175
- end
176
-
177
177
  # Returns the object in the form of hash
178
178
  # @return [Hash] Returns the object in the form of hash
179
179
  def to_hash