cryptopay-ruby 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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