bleumi_pay_sdk_ruby 1.0.2 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/README.md +67 -47
  4. data/bleumi_pay_sdk_ruby.gemspec +4 -5
  5. data/docs/AlgorandBalance.md +28 -0
  6. data/docs/AlgorandWalletAddress.md +24 -0
  7. data/docs/AlgorandWalletInputs.md +23 -0
  8. data/docs/BadRequest.md +2 -1
  9. data/docs/Chain.md +14 -0
  10. data/docs/CheckoutToken.md +28 -0
  11. data/docs/CreateCheckoutUrlRequest.md +28 -0
  12. data/docs/CreateCheckoutUrlResponse.md +17 -0
  13. data/docs/CreatePaymentRequest.md +19 -0
  14. data/docs/CreatePaymentResponse.md +15 -0
  15. data/docs/CreatePayoutRequest.md +28 -0
  16. data/docs/CreatePayoutResponse.md +15 -0
  17. data/docs/EthereumBalance.md +30 -0
  18. data/docs/EthereumWalletAddress.md +23 -0
  19. data/docs/EthereumWalletInputs.md +23 -0
  20. data/docs/HostedCheckoutsApi.md +197 -0
  21. data/docs/PaginatedPaymentOperations.md +28 -0
  22. data/docs/PaginatedPayments.md +95 -0
  23. data/docs/PaginatedPayoutItems.md +59 -0
  24. data/docs/Payment.md +67 -0
  25. data/docs/PaymentAddresses.md +21 -0
  26. data/docs/PaymentBalances.md +21 -0
  27. data/docs/PaymentOperation.md +46 -0
  28. data/docs/PaymentOperationInputs.md +31 -0
  29. data/docs/PaymentOperationResponse.md +15 -0
  30. data/docs/PaymentRefundRequest.md +14 -0
  31. data/docs/PaymentSettleRequest.md +17 -0
  32. data/docs/PaymentsApi.md +368 -0
  33. data/docs/Payout.md +18 -0
  34. data/docs/PayoutItem.md +39 -0
  35. data/docs/PayoutItemInputs.md +28 -0
  36. data/docs/PayoutsApi.md +137 -0
  37. data/docs/RskBalance.md +28 -0
  38. data/docs/ValidateCheckoutRequest.md +21 -0
  39. data/docs/ValidateCheckoutResponse.md +15 -0
  40. data/docs/WalletBalance.md +18 -4
  41. data/hc_create.rb +40 -0
  42. data/hc_list.rb +17 -0
  43. data/hc_validate.rb +22 -0
  44. data/lib/bleumi_pay_sdk_ruby.rb +38 -17
  45. data/lib/bleumi_pay_sdk_ruby/api/hosted_checkouts_api.rb +212 -0
  46. data/lib/bleumi_pay_sdk_ruby/api/payments_api.rb +517 -0
  47. data/lib/bleumi_pay_sdk_ruby/api/payouts_api.rb +157 -0
  48. data/lib/bleumi_pay_sdk_ruby/api/request_validator.rb +288 -0
  49. data/lib/bleumi_pay_sdk_ruby/api_client.rb +11 -9
  50. data/lib/bleumi_pay_sdk_ruby/api_error.rb +3 -3
  51. data/lib/bleumi_pay_sdk_ruby/configuration.rb +4 -4
  52. data/lib/bleumi_pay_sdk_ruby/models/algorand_balance.rb +219 -0
  53. data/lib/bleumi_pay_sdk_ruby/models/algorand_wallet_address.rb +221 -0
  54. data/lib/bleumi_pay_sdk_ruby/models/algorand_wallet_inputs.rb +247 -0
  55. data/lib/bleumi_pay_sdk_ruby/models/bad_request.rb +15 -5
  56. data/lib/bleumi_pay_sdk_ruby/models/{eth_network.rb → chain.rb} +12 -9
  57. data/lib/bleumi_pay_sdk_ruby/models/checkout_token.rb +302 -0
  58. data/lib/bleumi_pay_sdk_ruby/models/create_checkout_url_request.rb +312 -0
  59. data/lib/bleumi_pay_sdk_ruby/models/create_checkout_url_response.rb +227 -0
  60. data/lib/bleumi_pay_sdk_ruby/models/{wallet_create_input.rb → create_payment_request.rb} +33 -11
  61. data/lib/bleumi_pay_sdk_ruby/models/{wallet_create_output.rb → create_payment_response.rb} +19 -23
  62. data/lib/bleumi_pay_sdk_ruby/models/create_payout_request.rb +244 -0
  63. data/lib/bleumi_pay_sdk_ruby/models/create_payout_response.rb +212 -0
  64. data/lib/bleumi_pay_sdk_ruby/models/ethereum_balance.rb +241 -0
  65. data/lib/bleumi_pay_sdk_ruby/models/ethereum_wallet_address.rb +221 -0
  66. data/lib/bleumi_pay_sdk_ruby/models/{wallet_inputs.rb → ethereum_wallet_inputs.rb} +35 -50
  67. data/lib/bleumi_pay_sdk_ruby/models/paginated_payment_operations.rb +224 -0
  68. data/lib/bleumi_pay_sdk_ruby/models/{paginated_wallet_operations.rb → paginated_payments.rb} +19 -9
  69. data/lib/bleumi_pay_sdk_ruby/models/{paginated_wallets.rb → paginated_payout_items.rb} +19 -9
  70. data/lib/bleumi_pay_sdk_ruby/models/{wallet.rb → payment.rb} +31 -54
  71. data/lib/bleumi_pay_sdk_ruby/models/payment_addresses.rb +231 -0
  72. data/lib/bleumi_pay_sdk_ruby/models/payment_balances.rb +225 -0
  73. data/lib/bleumi_pay_sdk_ruby/models/{wallet_operation.rb → payment_operation.rb} +44 -18
  74. data/lib/bleumi_pay_sdk_ruby/models/{wallet_operation_inputs.rb → payment_operation_inputs.rb} +38 -12
  75. data/lib/bleumi_pay_sdk_ruby/models/{wallet_operation_output.rb → payment_operation_response.rb} +18 -8
  76. data/lib/bleumi_pay_sdk_ruby/models/{wallet_refund_operation_input.rb → payment_refund_request.rb} +18 -8
  77. data/lib/bleumi_pay_sdk_ruby/models/{wallet_settle_operation_input.rb → payment_settle_request.rb} +18 -8
  78. data/lib/bleumi_pay_sdk_ruby/models/payout.rb +237 -0
  79. data/lib/bleumi_pay_sdk_ruby/models/payout_item.rb +286 -0
  80. data/lib/bleumi_pay_sdk_ruby/models/payout_item_inputs.rb +244 -0
  81. data/lib/bleumi_pay_sdk_ruby/models/rsk_balance.rb +219 -0
  82. data/lib/bleumi_pay_sdk_ruby/models/validate_checkout_request.rb +257 -0
  83. data/lib/bleumi_pay_sdk_ruby/models/validate_checkout_response.rb +212 -0
  84. data/lib/bleumi_pay_sdk_ruby/models/wallet_balance.rb +37 -12
  85. data/lib/bleumi_pay_sdk_ruby/version.rb +4 -4
  86. data/po_create.rb +39 -0
  87. data/po_list.rb +23 -0
  88. data/py_create.rb +48 -0
  89. data/py_get.rb +18 -0
  90. data/py_getop.rb +19 -0
  91. data/py_list.rb +24 -0
  92. data/py_listops.rb +21 -0
  93. data/py_refund.rb +43 -0
  94. data/py_settle.rb +43 -0
  95. data/spec/api/hosted_checkouts_api_spec.rb +67 -0
  96. data/spec/api/payments_api_spec.rb +123 -0
  97. data/spec/api/payouts_api_spec.rb +61 -0
  98. data/spec/api_client_spec.rb +226 -0
  99. data/spec/configuration_spec.rb +42 -0
  100. data/spec/models/algorand_balance_spec.rb +47 -0
  101. data/spec/models/algorand_wallet_address_spec.rb +47 -0
  102. data/spec/models/algorand_wallet_inputs_spec.rb +65 -0
  103. data/spec/models/bad_request_spec.rb +47 -0
  104. data/spec/models/chain_spec.rb +35 -0
  105. data/spec/models/checkout_token_spec.rb +77 -0
  106. data/spec/models/create_checkout_url_request_spec.rb +89 -0
  107. data/spec/models/create_checkout_url_response_spec.rb +47 -0
  108. data/spec/models/create_payment_request_spec.rb +59 -0
  109. data/spec/models/create_payment_response_spec.rb +41 -0
  110. data/spec/models/create_payout_request_spec.rb +53 -0
  111. data/spec/models/create_payout_response_spec.rb +41 -0
  112. data/spec/models/ethereum_balance_spec.rb +59 -0
  113. data/spec/models/ethereum_wallet_address_spec.rb +47 -0
  114. data/spec/models/ethereum_wallet_inputs_spec.rb +65 -0
  115. data/spec/models/paginated_payment_operations_spec.rb +47 -0
  116. data/spec/models/paginated_payments_spec.rb +47 -0
  117. data/spec/models/paginated_payout_items_spec.rb +47 -0
  118. data/spec/models/payment_addresses_spec.rb +53 -0
  119. data/spec/models/payment_balances_spec.rb +53 -0
  120. data/spec/models/payment_operation_inputs_spec.rb +65 -0
  121. data/spec/models/payment_operation_response_spec.rb +41 -0
  122. data/spec/models/payment_operation_spec.rb +71 -0
  123. data/spec/models/payment_refund_request_spec.rb +41 -0
  124. data/spec/models/payment_settle_request_spec.rb +47 -0
  125. data/spec/models/payment_spec.rb +65 -0
  126. data/spec/models/payout_item_inputs_spec.rb +53 -0
  127. data/spec/models/payout_item_spec.rb +71 -0
  128. data/spec/models/payout_spec.rb +53 -0
  129. data/spec/models/rsk_balance_spec.rb +47 -0
  130. data/spec/models/validate_checkout_request_spec.rb +59 -0
  131. data/spec/models/validate_checkout_response_spec.rb +41 -0
  132. data/spec/models/wallet_balance_spec.rb +65 -0
  133. data/spec/spec_helper.rb +111 -0
  134. metadata +180 -49
  135. data/docs/Erc20PaymentsApi.md +0 -334
  136. data/docs/EthAddress.md +0 -8
  137. data/docs/EthNetwork.md +0 -9
  138. data/docs/PaginatedWalletOperations.md +0 -8
  139. data/docs/PaginatedWallets.md +0 -8
  140. data/docs/Wallet.md +0 -13
  141. data/docs/WalletCreateInput.md +0 -9
  142. data/docs/WalletCreateOutput.md +0 -10
  143. data/docs/WalletInputs.md +0 -11
  144. data/docs/WalletOperation.md +0 -11
  145. data/docs/WalletOperationInputs.md +0 -10
  146. data/docs/WalletOperationOutput.md +0 -8
  147. data/docs/WalletRefundOperationInput.md +0 -7
  148. data/docs/WalletSettleOperationInput.md +0 -8
  149. data/lib/bleumi_pay_sdk_ruby/api/erc20_payments_api.rb +0 -482
  150. data/lib/bleumi_pay_sdk_ruby/models/eth_address.rb +0 -208
@@ -0,0 +1,212 @@
1
+ =begin
2
+ #Bleumi Pay REST API
3
+
4
+ #A simple and powerful REST API to integrate ERC-20, Ethereum, xDai, Algorand payments and/or payouts into your business or application
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: info@bleumi.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.2.2
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module BleumiPay
16
+ class HostedCheckoutsApi
17
+ attr_accessor :api_client
18
+ attr_accessor :request_validator
19
+
20
+ def initialize(api_client = ApiClient.default, request_validator = RequestValidator.default)
21
+ @api_client = api_client
22
+ @request_validator = request_validator
23
+ end
24
+ # Generate a unique checkout URL to accept payment.
25
+ # @param create_checkout_url_request [CreateCheckoutUrlRequest] Specify checkout URL creation parameters.
26
+ # @param [Hash] opts the optional parameters
27
+ # @return [CreateCheckoutUrlResponse]
28
+ def create_checkout_url(create_checkout_url_request, opts = {})
29
+ data, _status_code, _headers = create_checkout_url_with_http_info(create_checkout_url_request, opts)
30
+ data
31
+ end
32
+
33
+ # Generate a unique checkout URL to accept payment.
34
+ # @param create_checkout_url_request [CreateCheckoutUrlRequest] Specify checkout URL creation parameters.
35
+ # @param [Hash] opts the optional parameters
36
+ # @return [Array<(CreateCheckoutUrlResponse, Integer, Hash)>] CreateCheckoutUrlResponse data, response status code and response headers
37
+ def create_checkout_url_with_http_info(create_checkout_url_request, opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: HostedCheckoutsApi.create_checkout_url ...'
40
+ end
41
+ # verify the required parameter 'create_checkout_url_request' is set
42
+ if @api_client.config.client_side_validation && create_checkout_url_request.nil?
43
+ fail ArgumentError, "Missing the required parameter 'create_checkout_url_request' when calling HostedCheckoutsApi.create_checkout_url"
44
+ end
45
+ # verify the values in the request body are valid
46
+ msg = @request_validator.validate_create_checkout_url_request(create_checkout_url_request)
47
+ if (@request_validator.is_not_empty(msg))
48
+ fail ArgumentError, "`#{msg}` when calling HostedCheckoutsApi.create_checkout_url"
49
+ end
50
+ # resource path
51
+ local_var_path = '/v1/payment/hc'
52
+
53
+ # query parameters
54
+ query_params = opts[:query_params] || {}
55
+
56
+ # header parameters
57
+ header_params = opts[:header_params] || {}
58
+ # HTTP header 'Accept' (if needed)
59
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
60
+ # HTTP header 'Content-Type'
61
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
62
+
63
+ # form parameters
64
+ form_params = opts[:form_params] || {}
65
+
66
+ # http body (model)
67
+ post_body = opts[:body] || @api_client.object_to_http_body(create_checkout_url_request)
68
+
69
+ # return_type
70
+ return_type = opts[:return_type] || 'CreateCheckoutUrlResponse'
71
+
72
+ # auth_names
73
+ auth_names = opts[:auth_names] || ['ApiKeyAuth']
74
+
75
+ new_options = opts.merge(
76
+ :header_params => header_params,
77
+ :query_params => query_params,
78
+ :form_params => form_params,
79
+ :body => post_body,
80
+ :auth_names => auth_names,
81
+ :return_type => return_type
82
+ )
83
+
84
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
85
+ if @api_client.config.debugging
86
+ @api_client.config.logger.debug "API called: HostedCheckoutsApi#create_checkout_url\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
87
+ end
88
+ return data, status_code, headers
89
+ end
90
+
91
+ # Retrieve all tokens configured for the Hosted Checkout in your account in the Bleumi Pay Dashboard.
92
+ # @param [Hash] opts the optional parameters
93
+ # @return [Array<CheckoutToken>]
94
+ def list_tokens(opts = {})
95
+ data, _status_code, _headers = list_tokens_with_http_info(opts)
96
+ data
97
+ end
98
+
99
+ # Retrieve all tokens configured for the Hosted Checkout in your account in the Bleumi Pay Dashboard.
100
+ # @param [Hash] opts the optional parameters
101
+ # @return [Array<(Array<CheckoutToken>, Integer, Hash)>] Array<CheckoutToken> data, response status code and response headers
102
+ def list_tokens_with_http_info(opts = {})
103
+ if @api_client.config.debugging
104
+ @api_client.config.logger.debug 'Calling API: HostedCheckoutsApi.list_tokens ...'
105
+ end
106
+ # resource path
107
+ local_var_path = '/v1/payment/hc/tokens'
108
+
109
+ # query parameters
110
+ query_params = opts[:query_params] || {}
111
+
112
+ # header parameters
113
+ header_params = opts[:header_params] || {}
114
+ # HTTP header 'Accept' (if needed)
115
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
116
+
117
+ # form parameters
118
+ form_params = opts[:form_params] || {}
119
+
120
+ # http body (model)
121
+ post_body = opts[:body]
122
+
123
+ # return_type
124
+ return_type = opts[:return_type] || 'Array<CheckoutToken>'
125
+
126
+ # auth_names
127
+ auth_names = opts[:auth_names] || ['ApiKeyAuth']
128
+
129
+ new_options = opts.merge(
130
+ :header_params => header_params,
131
+ :query_params => query_params,
132
+ :form_params => form_params,
133
+ :body => post_body,
134
+ :auth_names => auth_names,
135
+ :return_type => return_type
136
+ )
137
+
138
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
139
+ if @api_client.config.debugging
140
+ @api_client.config.logger.debug "API called: HostedCheckoutsApi#list_tokens\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
141
+ end
142
+ return data, status_code, headers
143
+ end
144
+
145
+ # Validate the GET parameters passed by Hosted Checkout in successUrl upon successfully completing payment.
146
+ # @param validate_checkout_request [ValidateCheckoutRequest] Specify validation of checkout parameters.
147
+ # @param [Hash] opts the optional parameters
148
+ # @return [ValidateCheckoutResponse]
149
+ def validate_checkout_payment(validate_checkout_request, opts = {})
150
+ data, _status_code, _headers = validate_checkout_payment_with_http_info(validate_checkout_request, opts)
151
+ data
152
+ end
153
+
154
+ # Validate the GET parameters passed by Hosted Checkout in successUrl upon successfully completing payment.
155
+ # @param validate_checkout_request [ValidateCheckoutRequest] Specify validation of checkout parameters.
156
+ # @param [Hash] opts the optional parameters
157
+ # @return [Array<(ValidateCheckoutResponse, Integer, Hash)>] ValidateCheckoutResponse data, response status code and response headers
158
+ def validate_checkout_payment_with_http_info(validate_checkout_request, opts = {})
159
+ if @api_client.config.debugging
160
+ @api_client.config.logger.debug 'Calling API: HostedCheckoutsApi.validate_checkout_payment ...'
161
+ end
162
+ # verify the required parameter 'validate_checkout_request' is set
163
+ if @api_client.config.client_side_validation && validate_checkout_request.nil?
164
+ fail ArgumentError, "Missing the required parameter 'validate_checkout_request' when calling HostedCheckoutsApi.validate_checkout_payment"
165
+ end
166
+ # verify the values in the request body are valid
167
+ msg = @request_validator.validate_checkout_payment_params(validate_checkout_request)
168
+ if (@request_validator.is_not_empty(msg))
169
+ fail ArgumentError, "`#{msg}` when calling HostedCheckoutsApi.validate_checkout_payment"
170
+ end
171
+ # resource path
172
+ local_var_path = '/v1/payment/hc/validate'
173
+
174
+ # query parameters
175
+ query_params = opts[:query_params] || {}
176
+
177
+ # header parameters
178
+ header_params = opts[:header_params] || {}
179
+ # HTTP header 'Accept' (if needed)
180
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
181
+ # HTTP header 'Content-Type'
182
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
183
+
184
+ # form parameters
185
+ form_params = opts[:form_params] || {}
186
+
187
+ # http body (model)
188
+ post_body = opts[:body] || @api_client.object_to_http_body(validate_checkout_request)
189
+
190
+ # return_type
191
+ return_type = opts[:return_type] || 'ValidateCheckoutResponse'
192
+
193
+ # auth_names
194
+ auth_names = opts[:auth_names] || ['ApiKeyAuth']
195
+
196
+ new_options = opts.merge(
197
+ :header_params => header_params,
198
+ :query_params => query_params,
199
+ :form_params => form_params,
200
+ :body => post_body,
201
+ :auth_names => auth_names,
202
+ :return_type => return_type
203
+ )
204
+
205
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
206
+ if @api_client.config.debugging
207
+ @api_client.config.logger.debug "API called: HostedCheckoutsApi#validate_checkout_payment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
208
+ end
209
+ return data, status_code, headers
210
+ end
211
+ end
212
+ end
@@ -0,0 +1,517 @@
1
+ =begin
2
+ #Bleumi Pay REST API
3
+
4
+ #A simple and powerful REST API to integrate ERC-20, Ethereum, xDai, Algorand payments and/or payouts into your business or application
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: info@bleumi.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.2.2
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module BleumiPay
16
+ class PaymentsApi
17
+ attr_accessor :api_client
18
+ attr_accessor :request_validator
19
+
20
+ def initialize(api_client = ApiClient.default, request_validator = RequestValidator.default)
21
+ @api_client = api_client
22
+ @request_validator = request_validator
23
+ end
24
+ # Generate a unique wallet address in the specified network to accept payment
25
+ # @param create_payment_request [CreatePaymentRequest]
26
+ # @param [Hash] opts the optional parameters
27
+ # @option opts [Chain] :chain Network in which payment is to be created. Please refer documentation for Supported Networks
28
+ # @return [CreatePaymentResponse]
29
+ def create_payment(create_payment_request, opts = {})
30
+ data, _status_code, _headers = create_payment_with_http_info(create_payment_request, opts)
31
+ data
32
+ end
33
+
34
+ # Generate a unique wallet address in the specified network to accept payment
35
+ # @param create_payment_request [CreatePaymentRequest]
36
+ # @param [Hash] opts the optional parameters
37
+ # @option opts [Chain] :chain Network in which payment is to be created. Please refer documentation for Supported Networks
38
+ # @return [Array<(CreatePaymentResponse, Integer, Hash)>] CreatePaymentResponse data, response status code and response headers
39
+ def create_payment_with_http_info(create_payment_request, opts = {})
40
+ if @api_client.config.debugging
41
+ @api_client.config.logger.debug 'Calling API: PaymentsApi.create_payment ...'
42
+ end
43
+ # verify the required parameter 'create_payment_request' is set
44
+ if @api_client.config.client_side_validation && create_payment_request.nil?
45
+ fail ArgumentError, "Missing the required parameter 'create_payment_request' when calling PaymentsApi.create_payment"
46
+ end
47
+
48
+ # verify the values in the request body are valid
49
+ chain = opts[:'chain'] if !opts[:'chain'].nil?
50
+ msg = @request_validator.validate_create_payment_request(create_payment_request, chain)
51
+ if (@request_validator.is_not_empty(msg))
52
+ fail ArgumentError, "`#{msg}` when calling PaymentsApi.create_payment"
53
+ end
54
+
55
+ # resource path
56
+ local_var_path = '/v1/payment'
57
+
58
+ # query parameters
59
+ query_params = opts[:query_params] || {}
60
+ query_params[:'chain'] = opts[:'chain'] if !opts[:'chain'].nil?
61
+
62
+ # header parameters
63
+ header_params = opts[:header_params] || {}
64
+ # HTTP header 'Accept' (if needed)
65
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
66
+ # HTTP header 'Content-Type'
67
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
68
+
69
+ # form parameters
70
+ form_params = opts[:form_params] || {}
71
+
72
+ # http body (model)
73
+ post_body = opts[:body] || @api_client.object_to_http_body(create_payment_request)
74
+
75
+ # return_type
76
+ return_type = opts[:return_type] || 'CreatePaymentResponse'
77
+
78
+ # auth_names
79
+ auth_names = opts[:auth_names] || ['ApiKeyAuth']
80
+
81
+ new_options = opts.merge(
82
+ :header_params => header_params,
83
+ :query_params => query_params,
84
+ :form_params => form_params,
85
+ :body => post_body,
86
+ :auth_names => auth_names,
87
+ :return_type => return_type
88
+ )
89
+
90
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
91
+ if @api_client.config.debugging
92
+ @api_client.config.logger.debug "API called: PaymentsApi#create_payment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
93
+ end
94
+ return data, status_code, headers
95
+ end
96
+
97
+ # Retrieve the wallet addresses & token balances for a given payment
98
+ # @param id [String] Unique identifier of the payment (specified during createPayment) to retrieve
99
+ # @param [Hash] opts the optional parameters
100
+ # @return [Payment]
101
+ def get_payment(id, opts = {})
102
+ data, _status_code, _headers = get_payment_with_http_info(id, opts)
103
+ data
104
+ end
105
+
106
+ # Retrieve the wallet addresses &amp; token balances for a given payment
107
+ # @param id [String] Unique identifier of the payment (specified during createPayment) to retrieve
108
+ # @param [Hash] opts the optional parameters
109
+ # @return [Array<(Payment, Integer, Hash)>] Payment data, response status code and response headers
110
+ def get_payment_with_http_info(id, opts = {})
111
+ if @api_client.config.debugging
112
+ @api_client.config.logger.debug 'Calling API: PaymentsApi.get_payment ...'
113
+ end
114
+ # verify the required parameter 'id' is set
115
+ if @api_client.config.client_side_validation && id.nil?
116
+ fail ArgumentError, "Missing the required parameter 'id' when calling PaymentsApi.get_payment"
117
+ end
118
+ # resource path
119
+ local_var_path = '/v1/payment/{id}'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
120
+
121
+ # query parameters
122
+ query_params = opts[:query_params] || {}
123
+
124
+ # header parameters
125
+ header_params = opts[:header_params] || {}
126
+ # HTTP header 'Accept' (if needed)
127
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
128
+
129
+ # form parameters
130
+ form_params = opts[:form_params] || {}
131
+
132
+ # http body (model)
133
+ post_body = opts[:body]
134
+
135
+ # return_type
136
+ return_type = opts[:return_type] || 'Payment'
137
+
138
+ # auth_names
139
+ auth_names = opts[:auth_names] || ['ApiKeyAuth']
140
+
141
+ new_options = opts.merge(
142
+ :header_params => header_params,
143
+ :query_params => query_params,
144
+ :form_params => form_params,
145
+ :body => post_body,
146
+ :auth_names => auth_names,
147
+ :return_type => return_type
148
+ )
149
+
150
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
151
+ if @api_client.config.debugging
152
+ @api_client.config.logger.debug "API called: PaymentsApi#get_payment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
153
+ end
154
+ return data, status_code, headers
155
+ end
156
+
157
+ # Retrieve a payment operation for a specific payment.
158
+ # @param id [String] Unique identifier of the payment (specified during [Create a Payment](#createPayment))
159
+ # @param txid [String] ID of a specific operation of the payment
160
+ # @param [Hash] opts the optional parameters
161
+ # @return [PaymentOperation]
162
+ def get_payment_operation(id, txid, opts = {})
163
+ data, _status_code, _headers = get_payment_operation_with_http_info(id, txid, opts)
164
+ data
165
+ end
166
+
167
+ # Retrieve a payment operation for a specific payment.
168
+ # @param id [String] Unique identifier of the payment (specified during [Create a Payment](#createPayment))
169
+ # @param txid [String] ID of a specific operation of the payment
170
+ # @param [Hash] opts the optional parameters
171
+ # @return [Array<(PaymentOperation, Integer, Hash)>] PaymentOperation data, response status code and response headers
172
+ def get_payment_operation_with_http_info(id, txid, opts = {})
173
+ if @api_client.config.debugging
174
+ @api_client.config.logger.debug 'Calling API: PaymentsApi.get_payment_operation ...'
175
+ end
176
+ # verify the required parameter 'id' is set
177
+ if @api_client.config.client_side_validation && id.nil?
178
+ fail ArgumentError, "Missing the required parameter 'id' when calling PaymentsApi.get_payment_operation"
179
+ end
180
+ # verify the required parameter 'txid' is set
181
+ if @api_client.config.client_side_validation && txid.nil?
182
+ fail ArgumentError, "Missing the required parameter 'txid' when calling PaymentsApi.get_payment_operation"
183
+ end
184
+ # resource path
185
+ local_var_path = '/v1/payment/{id}/operation/{txid}'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'txid' + '}', CGI.escape(txid.to_s))
186
+
187
+ # query parameters
188
+ query_params = opts[:query_params] || {}
189
+
190
+ # header parameters
191
+ header_params = opts[:header_params] || {}
192
+ # HTTP header 'Accept' (if needed)
193
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
194
+
195
+ # form parameters
196
+ form_params = opts[:form_params] || {}
197
+
198
+ # http body (model)
199
+ post_body = opts[:body]
200
+
201
+ # return_type
202
+ return_type = opts[:return_type] || 'PaymentOperation'
203
+
204
+ # auth_names
205
+ auth_names = opts[:auth_names] || ['ApiKeyAuth']
206
+
207
+ new_options = opts.merge(
208
+ :header_params => header_params,
209
+ :query_params => query_params,
210
+ :form_params => form_params,
211
+ :body => post_body,
212
+ :auth_names => auth_names,
213
+ :return_type => return_type
214
+ )
215
+
216
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
217
+ if @api_client.config.debugging
218
+ @api_client.config.logger.debug "API called: PaymentsApi#get_payment_operation\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
219
+ end
220
+ return data, status_code, headers
221
+ end
222
+
223
+ # Retrieve all payment operations for a specific payment.
224
+ # @param id [String] Unique identifier of the payment (specified during [Create a Payment](#createPayment))
225
+ # @param [Hash] opts the optional parameters
226
+ # @option opts [String] :next_token Cursor to start results from
227
+ # @return [PaginatedPaymentOperations]
228
+ def list_payment_operations(id, opts = {})
229
+ data, _status_code, _headers = list_payment_operations_with_http_info(id, opts)
230
+ data
231
+ end
232
+
233
+ # Retrieve all payment operations for a specific payment.
234
+ # @param id [String] Unique identifier of the payment (specified during [Create a Payment](#createPayment))
235
+ # @param [Hash] opts the optional parameters
236
+ # @option opts [String] :next_token Cursor to start results from
237
+ # @return [Array<(PaginatedPaymentOperations, Integer, Hash)>] PaginatedPaymentOperations data, response status code and response headers
238
+ def list_payment_operations_with_http_info(id, opts = {})
239
+ if @api_client.config.debugging
240
+ @api_client.config.logger.debug 'Calling API: PaymentsApi.list_payment_operations ...'
241
+ end
242
+ # verify the required parameter 'id' is set
243
+ if @api_client.config.client_side_validation && id.nil?
244
+ fail ArgumentError, "Missing the required parameter 'id' when calling PaymentsApi.list_payment_operations"
245
+ end
246
+ # resource path
247
+ local_var_path = '/v1/payment/{id}/operation'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
248
+
249
+ # query parameters
250
+ query_params = opts[:query_params] || {}
251
+ query_params[:'nextToken'] = opts[:'next_token'] if !opts[:'next_token'].nil?
252
+
253
+ # header parameters
254
+ header_params = opts[:header_params] || {}
255
+ # HTTP header 'Accept' (if needed)
256
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
257
+
258
+ # form parameters
259
+ form_params = opts[:form_params] || {}
260
+
261
+ # http body (model)
262
+ post_body = opts[:body]
263
+
264
+ # return_type
265
+ return_type = opts[:return_type] || 'PaginatedPaymentOperations'
266
+
267
+ # auth_names
268
+ auth_names = opts[:auth_names] || ['ApiKeyAuth']
269
+
270
+ new_options = opts.merge(
271
+ :header_params => header_params,
272
+ :query_params => query_params,
273
+ :form_params => form_params,
274
+ :body => post_body,
275
+ :auth_names => auth_names,
276
+ :return_type => return_type
277
+ )
278
+
279
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
280
+ if @api_client.config.debugging
281
+ @api_client.config.logger.debug "API called: PaymentsApi#list_payment_operations\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
282
+ end
283
+ return data, status_code, headers
284
+ end
285
+
286
+ # Retrieve all payments created.
287
+ # @param [Hash] opts the optional parameters
288
+ # @option opts [String] :next_token Cursor to start results from
289
+ # @option opts [String] :sort_by Sort payments by
290
+ # @option opts [String] :sort_order Sort Order
291
+ # @option opts [String] :start_at Get payments from this timestamp (unix)
292
+ # @option opts [String] :end_at Get payments till this timestamp (unix)
293
+ # @return [PaginatedPayments]
294
+ def list_payments(opts = {})
295
+ data, _status_code, _headers = list_payments_with_http_info(opts)
296
+ data
297
+ end
298
+
299
+ # Retrieve all payments created.
300
+ # @param [Hash] opts the optional parameters
301
+ # @option opts [String] :next_token Cursor to start results from
302
+ # @option opts [String] :sort_by Sort payments by
303
+ # @option opts [String] :sort_order Sort Order
304
+ # @option opts [String] :start_at Get payments from this timestamp (unix)
305
+ # @option opts [String] :end_at Get payments till this timestamp (unix)
306
+ # @return [Array<(PaginatedPayments, Integer, Hash)>] PaginatedPayments data, response status code and response headers
307
+ def list_payments_with_http_info(opts = {})
308
+ if @api_client.config.debugging
309
+ @api_client.config.logger.debug 'Calling API: PaymentsApi.list_payments ...'
310
+ end
311
+ allowable_values = ["createdAt", "updatedAt"]
312
+ if @api_client.config.client_side_validation && opts[:'sort_by'] && !allowable_values.include?(opts[:'sort_by'])
313
+ fail ArgumentError, "invalid value for \"sort_by\", must be one of #{allowable_values}"
314
+ end
315
+ allowable_values = ["ascending", "descending"]
316
+ if @api_client.config.client_side_validation && opts[:'sort_order'] && !allowable_values.include?(opts[:'sort_order'])
317
+ fail ArgumentError, "invalid value for \"sort_order\", must be one of #{allowable_values}"
318
+ end
319
+ # resource path
320
+ local_var_path = '/v1/payment'
321
+
322
+ # query parameters
323
+ query_params = opts[:query_params] || {}
324
+ query_params[:'nextToken'] = opts[:'next_token'] if !opts[:'next_token'].nil?
325
+ query_params[:'sortBy'] = opts[:'sort_by'] if !opts[:'sort_by'].nil?
326
+ query_params[:'sortOrder'] = opts[:'sort_order'] if !opts[:'sort_order'].nil?
327
+ query_params[:'startAt'] = opts[:'start_at'] if !opts[:'start_at'].nil?
328
+ query_params[:'endAt'] = opts[:'end_at'] if !opts[:'end_at'].nil?
329
+
330
+ # header parameters
331
+ header_params = opts[:header_params] || {}
332
+ # HTTP header 'Accept' (if needed)
333
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
334
+
335
+ # form parameters
336
+ form_params = opts[:form_params] || {}
337
+
338
+ # http body (model)
339
+ post_body = opts[:body]
340
+
341
+ # return_type
342
+ return_type = opts[:return_type] || 'PaginatedPayments'
343
+
344
+ # auth_names
345
+ auth_names = opts[:auth_names] || ['ApiKeyAuth']
346
+
347
+ new_options = opts.merge(
348
+ :header_params => header_params,
349
+ :query_params => query_params,
350
+ :form_params => form_params,
351
+ :body => post_body,
352
+ :auth_names => auth_names,
353
+ :return_type => return_type
354
+ )
355
+
356
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
357
+ if @api_client.config.debugging
358
+ @api_client.config.logger.debug "API called: PaymentsApi#list_payments\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
359
+ end
360
+ return data, status_code, headers
361
+ end
362
+
363
+ # Refund the balance of a token for a given payment to the buyerAddress
364
+ # @param id [String] Unique identifier of the payment (specified during createPayment)
365
+ # @param payment_refund_request [PaymentRefundRequest] Request body - used to specify the token to refund.
366
+ # @param [Hash] opts the optional parameters
367
+ # @option opts [Chain] :chain Network in which payment is to be refunded.
368
+ # @return [PaymentOperationResponse]
369
+ def refund_payment(id, payment_refund_request, opts = {})
370
+ data, _status_code, _headers = refund_payment_with_http_info(id, payment_refund_request, opts)
371
+ data
372
+ end
373
+
374
+ # Refund the balance of a token for a given payment to the buyerAddress
375
+ # @param id [String] Unique identifier of the payment (specified during createPayment)
376
+ # @param payment_refund_request [PaymentRefundRequest] Request body - used to specify the token to refund.
377
+ # @param [Hash] opts the optional parameters
378
+ # @option opts [Chain] :chain Network in which payment is to be refunded.
379
+ # @return [Array<(PaymentOperationResponse, Integer, Hash)>] PaymentOperationResponse data, response status code and response headers
380
+ def refund_payment_with_http_info(id, payment_refund_request, opts = {})
381
+ if @api_client.config.debugging
382
+ @api_client.config.logger.debug 'Calling API: PaymentsApi.refund_payment ...'
383
+ end
384
+ # verify the required parameter 'id' is set
385
+ if @api_client.config.client_side_validation && id.nil?
386
+ fail ArgumentError, "Missing the required parameter 'id' when calling PaymentsApi.refund_payment"
387
+ end
388
+ # verify the required parameter 'payment_refund_request' is set
389
+ if @api_client.config.client_side_validation && payment_refund_request.nil?
390
+ fail ArgumentError, "Missing the required parameter 'payment_refund_request' when calling PaymentsApi.refund_payment"
391
+ end
392
+ # verify the values in the request body are valid
393
+ chain = opts[:'chain'] if !opts[:'chain'].nil?
394
+ msg = @request_validator.validate_refund_payment_request(payment_refund_request, chain)
395
+ if (@request_validator.is_not_empty(msg))
396
+ fail ArgumentError, "`#{msg}` when calling PaymentsApi.refund_payment"
397
+ end
398
+ # resource path
399
+ local_var_path = '/v1/payment/{id}/refund'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
400
+
401
+ # query parameters
402
+ query_params = opts[:query_params] || {}
403
+ query_params[:'chain'] = opts[:'chain'] if !opts[:'chain'].nil?
404
+
405
+ # header parameters
406
+ header_params = opts[:header_params] || {}
407
+ # HTTP header 'Accept' (if needed)
408
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
409
+ # HTTP header 'Content-Type'
410
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
411
+
412
+ # form parameters
413
+ form_params = opts[:form_params] || {}
414
+
415
+ # http body (model)
416
+ post_body = opts[:body] || @api_client.object_to_http_body(payment_refund_request)
417
+
418
+ # return_type
419
+ return_type = opts[:return_type] || 'PaymentOperationResponse'
420
+
421
+ # auth_names
422
+ auth_names = opts[:auth_names] || ['ApiKeyAuth']
423
+
424
+ new_options = opts.merge(
425
+ :header_params => header_params,
426
+ :query_params => query_params,
427
+ :form_params => form_params,
428
+ :body => post_body,
429
+ :auth_names => auth_names,
430
+ :return_type => return_type
431
+ )
432
+
433
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
434
+ if @api_client.config.debugging
435
+ @api_client.config.logger.debug "API called: PaymentsApi#refund_payment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
436
+ end
437
+ return data, status_code, headers
438
+ end
439
+
440
+ # Settle a specific amount of a token for a given payment to the transferAddress and remaining balance (if any) will be refunded to the buyerAddress
441
+ # @param id [String] Unique identifier of the payment (specified during createPayment)
442
+ # @param payment_settle_request [PaymentSettleRequest] Request body - used to specify the amount to settle.
443
+ # @param [Hash] opts the optional parameters
444
+ # @option opts [Chain] :chain Network in which payment is to be settled.
445
+ # @return [PaymentOperationResponse]
446
+ def settle_payment(id, payment_settle_request, opts = {})
447
+ data, _status_code, _headers = settle_payment_with_http_info(id, payment_settle_request, opts)
448
+ data
449
+ end
450
+
451
+ # Settle a specific amount of a token for a given payment to the transferAddress and remaining balance (if any) will be refunded to the buyerAddress
452
+ # @param id [String] Unique identifier of the payment (specified during createPayment)
453
+ # @param payment_settle_request [PaymentSettleRequest] Request body - used to specify the amount to settle.
454
+ # @param [Hash] opts the optional parameters
455
+ # @option opts [Chain] :chain Network in which payment is to be settled.
456
+ # @return [Array<(PaymentOperationResponse, Integer, Hash)>] PaymentOperationResponse data, response status code and response headers
457
+ def settle_payment_with_http_info(id, payment_settle_request, opts = {})
458
+ if @api_client.config.debugging
459
+ @api_client.config.logger.debug 'Calling API: PaymentsApi.settle_payment ...'
460
+ end
461
+ # verify the required parameter 'id' is set
462
+ if @api_client.config.client_side_validation && id.nil?
463
+ fail ArgumentError, "Missing the required parameter 'id' when calling PaymentsApi.settle_payment"
464
+ end
465
+ # verify the required parameter 'payment_settle_request' is set
466
+ if @api_client.config.client_side_validation && payment_settle_request.nil?
467
+ fail ArgumentError, "Missing the required parameter 'payment_settle_request' when calling PaymentsApi.settle_payment"
468
+ end
469
+ # verify the values in the request body are valid
470
+ chain = opts[:'chain'] if !opts[:'chain'].nil?
471
+ msg = @request_validator.validate_settle_payment_request(payment_settle_request, chain)
472
+ if (@request_validator.is_not_empty(msg))
473
+ fail ArgumentError, "`#{msg}` when calling PaymentsApi.settle_payment"
474
+ end
475
+ # resource path
476
+ local_var_path = '/v1/payment/{id}/settle'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
477
+
478
+ # query parameters
479
+ query_params = opts[:query_params] || {}
480
+ query_params[:'chain'] = opts[:'chain'] if !opts[:'chain'].nil?
481
+
482
+ # header parameters
483
+ header_params = opts[:header_params] || {}
484
+ # HTTP header 'Accept' (if needed)
485
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
486
+ # HTTP header 'Content-Type'
487
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
488
+
489
+ # form parameters
490
+ form_params = opts[:form_params] || {}
491
+
492
+ # http body (model)
493
+ post_body = opts[:body] || @api_client.object_to_http_body(payment_settle_request)
494
+
495
+ # return_type
496
+ return_type = opts[:return_type] || 'PaymentOperationResponse'
497
+
498
+ # auth_names
499
+ auth_names = opts[:auth_names] || ['ApiKeyAuth']
500
+
501
+ new_options = opts.merge(
502
+ :header_params => header_params,
503
+ :query_params => query_params,
504
+ :form_params => form_params,
505
+ :body => post_body,
506
+ :auth_names => auth_names,
507
+ :return_type => return_type
508
+ )
509
+
510
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
511
+ if @api_client.config.debugging
512
+ @api_client.config.logger.debug "API called: PaymentsApi#settle_payment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
513
+ end
514
+ return data, status_code, headers
515
+ end
516
+ end
517
+ end