bleumi_pay_sdk_ruby 1.0.2 → 1.0.7

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 (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,157 @@
1
+ =begin
2
+ #Bleumi Pay API
3
+
4
+ #A simple and powerful REST API to integrate ERC-20, Ethereum, xDai 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 PayoutsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Create a payout.
23
+ # @param create_payout_request [CreatePayoutRequest] Request body - used to specify payout creation parameters.
24
+ # @param [Hash] opts the optional parameters
25
+ # @option opts [Chain] :chain Ethereum network in which payment is to be created. Please refer documentation for Supported Networks
26
+ # @return [CreatePayoutResponse]
27
+ def create_payout(create_payout_request, opts = {})
28
+ data, _status_code, _headers = create_payout_with_http_info(create_payout_request, opts)
29
+ data
30
+ end
31
+
32
+ # Create a payout.
33
+ # @param create_payout_request [CreatePayoutRequest] Request body - used to specify payout creation parameters.
34
+ # @param [Hash] opts the optional parameters
35
+ # @option opts [Chain] :chain Ethereum network in which payment is to be created. Please refer documentation for Supported Networks
36
+ # @return [Array<(CreatePayoutResponse, Integer, Hash)>] CreatePayoutResponse data, response status code and response headers
37
+ def create_payout_with_http_info(create_payout_request, opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: PayoutsApi.create_payout ...'
40
+ end
41
+ # verify the required parameter 'create_payout_request' is set
42
+ if @api_client.config.client_side_validation && create_payout_request.nil?
43
+ fail ArgumentError, "Missing the required parameter 'create_payout_request' when calling PayoutsApi.create_payout"
44
+ end
45
+ # resource path
46
+ local_var_path = '/v1/payout'
47
+
48
+ # query parameters
49
+ query_params = opts[:query_params] || {}
50
+ query_params[:'chain'] = opts[:'chain'] if !opts[:'chain'].nil?
51
+
52
+ # header parameters
53
+ header_params = opts[:header_params] || {}
54
+ # HTTP header 'Accept' (if needed)
55
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
56
+ # HTTP header 'Content-Type'
57
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
58
+
59
+ # form parameters
60
+ form_params = opts[:form_params] || {}
61
+
62
+ # http body (model)
63
+ post_body = opts[:body] || @api_client.object_to_http_body(create_payout_request)
64
+
65
+ # return_type
66
+ return_type = opts[:return_type] || 'CreatePayoutResponse'
67
+
68
+ # auth_names
69
+ auth_names = opts[:auth_names] || ['ApiKeyAuth']
70
+
71
+ new_options = opts.merge(
72
+ :header_params => header_params,
73
+ :query_params => query_params,
74
+ :form_params => form_params,
75
+ :body => post_body,
76
+ :auth_names => auth_names,
77
+ :return_type => return_type
78
+ )
79
+
80
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
81
+ if @api_client.config.debugging
82
+ @api_client.config.logger.debug "API called: PayoutsApi#create_payout\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
83
+ end
84
+ return data, status_code, headers
85
+ end
86
+
87
+ # Returns a list of payouts
88
+ # @param [Hash] opts the optional parameters
89
+ # @option opts [String] :next_token Cursor to start results from
90
+ # @option opts [String] :sort_by Sort payments by
91
+ # @option opts [String] :start_at Get payouts from this timestamp (unix)
92
+ # @option opts [String] :end_at Get payouts till this timestamp (unix)
93
+ # @return [PaginatedPayoutItems]
94
+ def list_payouts(opts = {})
95
+ data, _status_code, _headers = list_payouts_with_http_info(opts)
96
+ data
97
+ end
98
+
99
+ # Returns a list of payouts
100
+ # @param [Hash] opts the optional parameters
101
+ # @option opts [String] :next_token Cursor to start results from
102
+ # @option opts [String] :sort_by Sort payments by
103
+ # @option opts [String] :start_at Get payouts from this timestamp (unix)
104
+ # @option opts [String] :end_at Get payouts till this timestamp (unix)
105
+ # @return [Array<(PaginatedPayoutItems, Integer, Hash)>] PaginatedPayoutItems data, response status code and response headers
106
+ def list_payouts_with_http_info(opts = {})
107
+ if @api_client.config.debugging
108
+ @api_client.config.logger.debug 'Calling API: PayoutsApi.list_payouts ...'
109
+ end
110
+ allowable_values = ["createdAt", "updatedAt"]
111
+ if @api_client.config.client_side_validation && opts[:'sort_by'] && !allowable_values.include?(opts[:'sort_by'])
112
+ fail ArgumentError, "invalid value for \"sort_by\", must be one of #{allowable_values}"
113
+ end
114
+ # resource path
115
+ local_var_path = '/v1/payout'
116
+
117
+ # query parameters
118
+ query_params = opts[:query_params] || {}
119
+ query_params[:'nextToken'] = opts[:'next_token'] if !opts[:'next_token'].nil?
120
+ query_params[:'sortBy'] = opts[:'sort_by'] if !opts[:'sort_by'].nil?
121
+ query_params[:'startAt'] = opts[:'start_at'] if !opts[:'start_at'].nil?
122
+ query_params[:'endAt'] = opts[:'end_at'] if !opts[:'end_at'].nil?
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] || 'PaginatedPayoutItems'
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: PayoutsApi#list_payouts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
153
+ end
154
+ return data, status_code, headers
155
+ end
156
+ end
157
+ end
@@ -0,0 +1,288 @@
1
+ =begin
2
+ #Bleumi Pay API
3
+
4
+ #A simple and powerful REST API to integrate ERC-20, Ethereum, xDai payments and/or payouts into your business or application
5
+
6
+ Contact: info@bleumi.com
7
+
8
+ =end
9
+ module BleumiPay
10
+ class RequestValidator
11
+
12
+ def self.default
13
+ @@default ||= RequestValidator.new
14
+ end
15
+
16
+ def eth_address?(str)
17
+ # We use !! to convert the return value to a boolean
18
+ !!(str =~ /^0x[a-fA-F0-9]{40}$/)
19
+ end
20
+
21
+ def algo_address?(str)
22
+ # We use !! to convert the return value to a boolean
23
+ !!(str =~ /^[A-Z2-7+=*]{58}$/)
24
+ end
25
+
26
+ def algo_token?(str)
27
+ # We use !! to convert the return value to a boolean
28
+ !!(str =~ /^[0-9]*$/)
29
+ end
30
+
31
+ def is_not_empty(str)
32
+ if (str == nil || str == "") then
33
+ return false
34
+ end
35
+ return true
36
+ end
37
+
38
+ def check_eth_addr(name, input)
39
+ if !((eth_address?(input))||(input == "ETH")||(input == "XDAI")||(input == "XDAIT")) then
40
+ return "`#{name}` is not a valid Ethereum address"
41
+ end
42
+ return nil
43
+ end
44
+
45
+ def check_rsk_addr(name, input)
46
+ if !((eth_address?(input))||(input == "RBTC")) then
47
+ return "`#{name}` is not a valid RSK address"
48
+ end
49
+ return nil
50
+ end
51
+
52
+ def check_alg_addr(name, input, is_token)
53
+ if (is_token)
54
+ if !((algo_token?(input))||(input == "ALGO")) then
55
+ return "`#{name}` is not a valid Algorand token"
56
+ end
57
+ else
58
+ if !(algo_address?(input)) then
59
+ return "`#{name}` is not a valid Algorand address"
60
+ end
61
+ end
62
+ return nil
63
+ end
64
+
65
+ def is_algo_network(chain)
66
+ return ((chain == "alg_mainnet")||(chain == "alg_testnet"))
67
+ end
68
+
69
+ def is_rsk_network(chain)
70
+ return ((chain == "rsk")||(chain == "rsk_testnet"))
71
+ end
72
+
73
+ def check_req_param(name, input)
74
+ if (input == nil || input == "")
75
+ return "Missing required parameter `#{name}`"
76
+ end
77
+ return nil
78
+ end
79
+
80
+ def check_network_addr(name, input, chain, mandatory, is_token)
81
+ if mandatory then
82
+ msg = check_req_param(name, input)
83
+ if is_not_empty(msg) then
84
+ return msg
85
+ end
86
+ end
87
+ if is_not_empty(input) then
88
+ msg = nil
89
+ if is_algo_network(chain) then
90
+ msg = check_alg_addr(name, input, is_token)
91
+ elsif is_rsk_network(chain) then
92
+ msg = check_rsk_addr(name, input)
93
+ else
94
+ msg = check_eth_addr(name, input)
95
+ end
96
+ if is_not_empty(msg) then
97
+ return msg
98
+ end
99
+ end
100
+ return nil
101
+ end
102
+
103
+ def validate_create_payment_request(params, chain)
104
+ # check if chain is provided
105
+ msg = check_req_param("Chain", chain)
106
+ if is_not_empty(msg) then
107
+ return msg
108
+ end
109
+ # check if buyer_address is valid address in the network
110
+ msg = check_network_addr("BuyerAddress", params.buyer_address, chain, mandatory=true, is_token=false)
111
+ if is_not_empty(msg) then
112
+ return msg
113
+ end
114
+ # check if transfer_address is valid address in the network
115
+ msg = check_network_addr("TransferAddress", params.transfer_address, chain, mandatory=true, is_token=false)
116
+ if is_not_empty(msg) then
117
+ return msg
118
+ end
119
+
120
+ # check if token is valid address in the network (if provided)
121
+ if is_not_empty(params.token) then
122
+ msg = check_network_addr("Token", params.token, chain, mandatory=false, is_token=true)
123
+ if is_not_empty(msg) then
124
+ return msg
125
+ end
126
+ end
127
+ return nil
128
+ end
129
+
130
+ def validate_refund_payment_request(params, chain)
131
+ # check if chain is provided
132
+ msg = check_req_param("Chain", chain)
133
+ if is_not_empty(msg) then
134
+ return msg
135
+ end
136
+ # check if token is valid address in the network
137
+ msg = check_network_addr("Token", params.token, chain, mandatory=true, is_token=true)
138
+ if is_not_empty(msg) then
139
+ return msg
140
+ end
141
+ return nil
142
+ end
143
+
144
+ def validate_settle_payment_request(params, chain)
145
+ # check if chain is provided
146
+ msg = check_req_param("Chain", chain)
147
+ if is_not_empty(msg) then
148
+ return msg
149
+ end
150
+ # check if token is valid address in the network
151
+ msg = check_network_addr("Token", params.token, chain, mandatory=true, is_token=true)
152
+ if is_not_empty(msg) then
153
+ return msg
154
+ end
155
+ # check if amount to settle is provided
156
+ msg = check_req_param("Amount", params.amount)
157
+ if is_not_empty(msg) then
158
+ return msg
159
+ end
160
+ return nil
161
+ end
162
+
163
+ def validate_create_checkout_url_request(params)
164
+ # check if id is provided while creating checkout url
165
+ msg = check_req_param("Id", params.id)
166
+ if is_not_empty(msg) then
167
+ return msg
168
+ end
169
+
170
+ # check if currency is provided while creating checkout url
171
+ msg = check_req_param("Currency", params.currency)
172
+ if is_not_empty(msg) then
173
+ return msg
174
+ end
175
+
176
+ # check if amount is provided while creating checkout url
177
+ msg = check_req_param("Amount", params.amount)
178
+ if is_not_empty(msg) then
179
+ return msg
180
+ end
181
+
182
+ # check if cancel_url is provided while creating checkout url
183
+ msg = check_req_param("CancelUrl", params.cancel_url)
184
+ if is_not_empty(msg) then
185
+ return msg
186
+ end
187
+
188
+ # check if success_url is provided while creating checkout url
189
+ msg = check_req_param("SuccessUrl", params.success_url)
190
+ if is_not_empty(msg) then
191
+ return msg
192
+ end
193
+
194
+ # check if token is valid address in the network (if provided)
195
+ if is_not_empty(params.token) then
196
+
197
+ # check if chain is provided in the request, when token is provided, this is required
198
+ msg = check_req_param("Chain", params.chain)
199
+ if is_not_empty(msg) then
200
+ return msg
201
+ end
202
+
203
+ # check if token is valid address in the network (if provided)
204
+ msg = check_network_addr("Token", params.token, params.chain, mandatory=false, is_token=true)
205
+ if is_not_empty(msg) then
206
+ return msg
207
+ end
208
+
209
+ # check if buyer_address is valid address in the network (if provided)
210
+ if is_not_empty(params.buyer_address) then
211
+ msg = check_network_addr("BuyerAddress", params.buyer_address, params.chain, mandatory=false, is_token=false)
212
+ if is_not_empty(msg) then
213
+ return msg
214
+ end
215
+ end
216
+ end
217
+ return nil
218
+ end
219
+
220
+ def validate_checkout_payment_params(params)
221
+
222
+ # check if hmac_alg is provided while creating checkout payment parameters request
223
+ msg = check_req_param("HmacAlg", params.hmac_alg)
224
+ if is_not_empty(msg) then
225
+ return msg
226
+ end
227
+
228
+ # check if hmac_input is provided while creating checkout payment parameters request
229
+ msg = check_req_param("HmacInput", params.hmac_input)
230
+ if is_not_empty(msg) then
231
+ return msg
232
+ end
233
+
234
+ # check if hmac_key_id is provided while creating checkout payment parameters request
235
+ msg = check_req_param("HmacKeyId", params.hmac_key_id)
236
+ if is_not_empty(msg) then
237
+ return msg
238
+ end
239
+
240
+ # check if hmac_value is provided while creating checkout payment parameters request
241
+ msg = check_req_param("HmacValue", params.hmac_value)
242
+ if is_not_empty(msg) then
243
+ return msg
244
+ end
245
+ return nil
246
+ end
247
+
248
+ def validate_create_payout_request(params, chain)
249
+ msg = check_req_param("Chain", chain)
250
+ if is_not_empty(msg) then
251
+ return msg
252
+ end
253
+ # check if token is valid address in the network
254
+ msg = check_network_addr("Token", params.token, chain, mandatory=true, is_token=true)
255
+ if is_not_empty(msg) then
256
+ return msg
257
+ end
258
+
259
+ payouts = params.payouts
260
+ if payouts.length == 0 then
261
+ return "Payouts not defined."
262
+ end
263
+
264
+ for payout in payouts
265
+ # check if payout.transfer_address is valid address in the network
266
+ msg = check_network_addr("TransferAddress", payout.transfer_address, chain, mandatory=true, is_token=false)
267
+ if is_not_empty(msg) then
268
+ return msg
269
+ end
270
+
271
+ # check if payout.amount is provided for payout
272
+ msg = check_req_param("Amount", payout.amount)
273
+ if is_not_empty(msg) then
274
+ return msg
275
+ end
276
+
277
+ if is_algo_network(chain) then
278
+ # check if payout.authorization is provided for Algorand payout
279
+ msg = check_req_param("Authorization", payout.authorization)
280
+ if is_not_empty(msg) then
281
+ return msg
282
+ end
283
+ end
284
+ end
285
+ return nil
286
+ end
287
+ end
288
+ end
@@ -1,12 +1,12 @@
1
1
  =begin
2
- #Bleumi Pay API
2
+ #Bleumi Pay REST API
3
3
 
4
- #A simple and powerful REST API to integrate ERC20 payments into your business or application
4
+ #A simple and powerful REST API to integrate ERC-20, Ethereum, xDai, Algorand payments and/or payouts into your business or application
5
5
 
6
6
  The version of the OpenAPI document: 1.0.0
7
7
  Contact: info@bleumi.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.2.0
9
+ OpenAPI Generator version: 4.2.2
10
10
 
11
11
  =end
12
12
 
@@ -30,7 +30,7 @@ module BleumiPay
30
30
  # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
31
31
  def initialize(config = Configuration.default)
32
32
  @config = config
33
- @user_agent = "BleumiPay/#{VERSION}/ruby"
33
+ @user_agent = "bleumi_pay_sdk_ruby/#{VERSION}/ruby"
34
34
  @default_headers = {
35
35
  'Content-Type' => 'application/json',
36
36
  'User-Agent' => @user_agent
@@ -269,11 +269,13 @@ module BleumiPay
269
269
  tempfile.write(chunk)
270
270
  end
271
271
  request.on_complete do |response|
272
- tempfile.close if tempfile
273
- @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
274
- "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
275
- "will be deleted automatically with GC. It's also recommended to delete the temp file "\
276
- "explicitly with `tempfile.delete`"
272
+ if tempfile
273
+ tempfile.close
274
+ @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
275
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
276
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
277
+ "explicitly with `tempfile.delete`"
278
+ end
277
279
  end
278
280
  end
279
281