cryptopay-ruby 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/ci.yml +36 -0
  3. data/.gitignore +38 -0
  4. data/.rspec +2 -0
  5. data/.rubocop.yml +104 -0
  6. data/Gemfile +8 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +521 -0
  9. data/Rakefile +8 -0
  10. data/bin/console +15 -0
  11. data/cryptopay.gemspec +40 -0
  12. data/lib/cryptopay/api/accounts.rb +51 -0
  13. data/lib/cryptopay/api/channels.rb +142 -0
  14. data/lib/cryptopay/api/coin_withdrawals.rb +115 -0
  15. data/lib/cryptopay/api/customers.rb +85 -0
  16. data/lib/cryptopay/api/exchange_transfers.rb +64 -0
  17. data/lib/cryptopay/api/invoices.rb +163 -0
  18. data/lib/cryptopay/api/rates.rb +50 -0
  19. data/lib/cryptopay/api/risks.rb +32 -0
  20. data/lib/cryptopay/api/transactions.rb +47 -0
  21. data/lib/cryptopay/authentication.rb +30 -0
  22. data/lib/cryptopay/callbacks.rb +38 -0
  23. data/lib/cryptopay/client.rb +39 -0
  24. data/lib/cryptopay/config.rb +48 -0
  25. data/lib/cryptopay/connection.rb +48 -0
  26. data/lib/cryptopay/encoder.rb +113 -0
  27. data/lib/cryptopay/errors.rb +32 -0
  28. data/lib/cryptopay/models/account.rb +88 -0
  29. data/lib/cryptopay/models/account_list_result.rb +70 -0
  30. data/lib/cryptopay/models/callback.rb +25 -0
  31. data/lib/cryptopay/models/channel.rb +156 -0
  32. data/lib/cryptopay/models/channel_list_result.rb +82 -0
  33. data/lib/cryptopay/models/channel_params.rb +102 -0
  34. data/lib/cryptopay/models/channel_payment.rb +216 -0
  35. data/lib/cryptopay/models/channel_payment_callback.rb +92 -0
  36. data/lib/cryptopay/models/channel_payment_callback_event.rb +21 -0
  37. data/lib/cryptopay/models/channel_payment_list_result.rb +82 -0
  38. data/lib/cryptopay/models/channel_payment_result.rb +68 -0
  39. data/lib/cryptopay/models/channel_payment_status.rb +21 -0
  40. data/lib/cryptopay/models/channel_payment_status_context.rb +18 -0
  41. data/lib/cryptopay/models/channel_result.rb +68 -0
  42. data/lib/cryptopay/models/channel_status.rb +18 -0
  43. data/lib/cryptopay/models/channel_update_params.rb +85 -0
  44. data/lib/cryptopay/models/coin_withdrawal.rb +205 -0
  45. data/lib/cryptopay/models/coin_withdrawal_callback.rb +92 -0
  46. data/lib/cryptopay/models/coin_withdrawal_callback_event.rb +18 -0
  47. data/lib/cryptopay/models/coin_withdrawal_list_result.rb +82 -0
  48. data/lib/cryptopay/models/coin_withdrawal_params.rb +135 -0
  49. data/lib/cryptopay/models/coin_withdrawal_result.rb +68 -0
  50. data/lib/cryptopay/models/coin_withdrawal_status.rb +24 -0
  51. data/lib/cryptopay/models/customer.rb +81 -0
  52. data/lib/cryptopay/models/customer_list_result.rb +82 -0
  53. data/lib/cryptopay/models/customer_params.rb +81 -0
  54. data/lib/cryptopay/models/customer_result.rb +68 -0
  55. data/lib/cryptopay/models/customer_update_params.rb +68 -0
  56. data/lib/cryptopay/models/exchange.rb +89 -0
  57. data/lib/cryptopay/models/exchange_transfer.rb +116 -0
  58. data/lib/cryptopay/models/exchange_transfer_params.rb +101 -0
  59. data/lib/cryptopay/models/exchange_transfer_result.rb +68 -0
  60. data/lib/cryptopay/models/invoice.rb +276 -0
  61. data/lib/cryptopay/models/invoice_callback.rb +90 -0
  62. data/lib/cryptopay/models/invoice_callback_event.rb +22 -0
  63. data/lib/cryptopay/models/invoice_list_result.rb +82 -0
  64. data/lib/cryptopay/models/invoice_params.rb +131 -0
  65. data/lib/cryptopay/models/invoice_recalculation.rb +178 -0
  66. data/lib/cryptopay/models/invoice_recalculation_params.rb +61 -0
  67. data/lib/cryptopay/models/invoice_recalculation_result.rb +68 -0
  68. data/lib/cryptopay/models/invoice_refund.rb +154 -0
  69. data/lib/cryptopay/models/invoice_refund_list_result.rb +70 -0
  70. data/lib/cryptopay/models/invoice_refund_params.rb +61 -0
  71. data/lib/cryptopay/models/invoice_refund_result.rb +68 -0
  72. data/lib/cryptopay/models/invoice_result.rb +68 -0
  73. data/lib/cryptopay/models/invoice_status.rb +21 -0
  74. data/lib/cryptopay/models/invoice_status_context.rb +20 -0
  75. data/lib/cryptopay/models/invoice_transaction.rb +76 -0
  76. data/lib/cryptopay/models/network_fee.rb +84 -0
  77. data/lib/cryptopay/models/network_fee_level.rb +19 -0
  78. data/lib/cryptopay/models/network_fee_list_result.rb +70 -0
  79. data/lib/cryptopay/models/pagination.rb +72 -0
  80. data/lib/cryptopay/models/rate.rb +74 -0
  81. data/lib/cryptopay/models/rate_result.rb +68 -0
  82. data/lib/cryptopay/models/rates_result.rb +64 -0
  83. data/lib/cryptopay/models/risk.rb +98 -0
  84. data/lib/cryptopay/models/risk_level.rb +19 -0
  85. data/lib/cryptopay/models/risk_params.rb +86 -0
  86. data/lib/cryptopay/models/risk_result.rb +68 -0
  87. data/lib/cryptopay/models/transaction.rb +174 -0
  88. data/lib/cryptopay/models/transaction_list_result.rb +82 -0
  89. data/lib/cryptopay/models/transaction_reference_type.rb +25 -0
  90. data/lib/cryptopay/request.rb +46 -0
  91. data/lib/cryptopay/require.rb +79 -0
  92. data/lib/cryptopay/types.rb +11 -0
  93. data/lib/cryptopay/version.rb +5 -0
  94. data/lib/cryptopay.rb +26 -0
  95. metadata +256 -0
@@ -0,0 +1,142 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class Channels
8
+ def initialize(connection)
9
+ @connection = connection
10
+ end
11
+
12
+ # Create a channel
13
+ # @param channel_params [ChannelParams]
14
+ # @param [Hash] opts the optional parameters
15
+ # @return [ChannelResult]
16
+ def create(channel_params, _opts = {})
17
+ path = '/api/channels'
18
+
19
+ req = Request.new(
20
+ method: :post,
21
+ path: path,
22
+ body_params: channel_params
23
+ )
24
+
25
+ connection.call(req, return_type: ChannelResult)
26
+ end
27
+
28
+ # List channels
29
+ # @param [Hash] opts the optional parameters
30
+ # @option opts [String] :customer_id The internal ID of your customer that the transaction relates to
31
+ # @option opts [String] :starting_after Pagination parameter. ID to start after
32
+ # @return [ChannelListResult]
33
+ def list(opts = {})
34
+ path = '/api/channels'
35
+
36
+ query_params = {}
37
+ query_params[:customer_id] = opts[:customer_id] unless opts[:customer_id].nil?
38
+ query_params[:starting_after] = opts[:starting_after] unless opts[:starting_after].nil?
39
+
40
+ req = Request.new(
41
+ method: :get,
42
+ path: path,
43
+ query_params: query_params
44
+ )
45
+
46
+ connection.call(req, return_type: ChannelListResult)
47
+ end
48
+
49
+ # List channel payments
50
+ # @param channel_id [String] Channel ID
51
+ # @param [Hash] opts the optional parameters
52
+ # @option opts [String] :starting_after Pagination parameter. ID to start after
53
+ # @return [ChannelPaymentListResult]
54
+ def list_payments(channel_id, opts = {})
55
+ path = '/api/channels/{channel_id}/payments'
56
+ path = path.sub('{channel_id}', CGI.escape(channel_id.to_s))
57
+
58
+ query_params = {}
59
+ query_params[:starting_after] = opts[:starting_after] unless opts[:starting_after].nil?
60
+
61
+ req = Request.new(
62
+ method: :get,
63
+ path: path,
64
+ query_params: query_params
65
+ )
66
+
67
+ connection.call(req, return_type: ChannelPaymentListResult)
68
+ end
69
+
70
+ # Retrieve a channel
71
+ # @param channel_id [String] Channel ID
72
+ # @param [Hash] opts the optional parameters
73
+ # @return [ChannelResult]
74
+ def retrieve(channel_id, _opts = {})
75
+ path = '/api/channels/{channel_id}'
76
+ path = path.sub('{channel_id}', CGI.escape(channel_id.to_s))
77
+
78
+ req = Request.new(
79
+ method: :get,
80
+ path: path
81
+ )
82
+
83
+ connection.call(req, return_type: ChannelResult)
84
+ end
85
+
86
+ # Retrieve a channel by custom id
87
+ # @param custom_id [String]
88
+ # @param [Hash] opts the optional parameters
89
+ # @return [ChannelResult]
90
+ def retrieve_by_custom_id(custom_id, _opts = {})
91
+ path = '/api/channels/custom_id/{custom_id}'
92
+ path = path.sub('{custom_id}', CGI.escape(custom_id.to_s))
93
+
94
+ req = Request.new(
95
+ method: :get,
96
+ path: path
97
+ )
98
+
99
+ connection.call(req, return_type: ChannelResult)
100
+ end
101
+
102
+ # Retrieve a channel payment
103
+ # @param channel_id [String] Channel ID
104
+ # @param channel_payment_id [String] Channel payment ID
105
+ # @param [Hash] opts the optional parameters
106
+ # @return [ChannelPaymentResult]
107
+ def retrieve_payment(channel_id, channel_payment_id, _opts = {})
108
+ path = '/api/channels/{channel_id}/payments/{channel_payment_id}'
109
+ path = path.sub('{channel_id}', CGI.escape(channel_id.to_s))
110
+ path = path.sub('{channel_payment_id}', CGI.escape(channel_payment_id.to_s))
111
+
112
+ req = Request.new(
113
+ method: :get,
114
+ path: path
115
+ )
116
+
117
+ connection.call(req, return_type: ChannelPaymentResult)
118
+ end
119
+
120
+ # Update a channel
121
+ # @param channel_id [String] Channel ID
122
+ # @param channel_update_params [ChannelUpdateParams]
123
+ # @param [Hash] opts the optional parameters
124
+ # @return [ChannelResult]
125
+ def update(channel_id, channel_update_params, _opts = {})
126
+ path = '/api/channels/{channel_id}'
127
+ path = path.sub('{channel_id}', CGI.escape(channel_id.to_s))
128
+
129
+ req = Request.new(
130
+ method: :patch,
131
+ path: path,
132
+ body_params: channel_update_params
133
+ )
134
+
135
+ connection.call(req, return_type: ChannelResult)
136
+ end
137
+
138
+ private
139
+
140
+ attr_reader :connection
141
+ end
142
+ end
@@ -0,0 +1,115 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class CoinWithdrawals
8
+ def initialize(connection)
9
+ @connection = connection
10
+ end
11
+
12
+ # Commit a withdrawal
13
+ # @param coin_withdrawal_id [String] Coin withdrawal ID
14
+ # @param [Hash] opts the optional parameters
15
+ # @return [CoinWithdrawalResult]
16
+ def commit(coin_withdrawal_id, _opts = {})
17
+ path = '/api/coin_withdrawals/{coin_withdrawal_id}/commit'
18
+ path = path.sub('{coin_withdrawal_id}', CGI.escape(coin_withdrawal_id.to_s))
19
+
20
+ req = Request.new(
21
+ method: :post,
22
+ path: path
23
+ )
24
+
25
+ connection.call(req, return_type: CoinWithdrawalResult)
26
+ end
27
+
28
+ # Create a withdrawal
29
+ # @param coin_withdrawal_params [CoinWithdrawalParams]
30
+ # @param [Hash] opts the optional parameters
31
+ # @return [CoinWithdrawalResult]
32
+ def create(coin_withdrawal_params, _opts = {})
33
+ path = '/api/coin_withdrawals'
34
+
35
+ req = Request.new(
36
+ method: :post,
37
+ path: path,
38
+ body_params: coin_withdrawal_params
39
+ )
40
+
41
+ connection.call(req, return_type: CoinWithdrawalResult)
42
+ end
43
+
44
+ # List withdrawals
45
+ # @param [Hash] opts the optional parameters
46
+ # @option opts [String] :customer_id The internal ID of your customer that the transaction relates to
47
+ # @option opts [String] :starting_after Pagination parameter. ID to start after
48
+ # @return [CoinWithdrawalListResult]
49
+ def list(opts = {})
50
+ path = '/api/coin_withdrawals'
51
+
52
+ query_params = {}
53
+ query_params[:customer_id] = opts[:customer_id] unless opts[:customer_id].nil?
54
+ query_params[:starting_after] = opts[:starting_after] unless opts[:starting_after].nil?
55
+
56
+ req = Request.new(
57
+ method: :get,
58
+ path: path,
59
+ query_params: query_params
60
+ )
61
+
62
+ connection.call(req, return_type: CoinWithdrawalListResult)
63
+ end
64
+
65
+ # List network fees
66
+ # @param [Hash] opts the optional parameters
67
+ # @return [NetworkFeeListResult]
68
+ def list_network_fees(_opts = {})
69
+ path = '/api/coin_withdrawals/network_fees'
70
+
71
+ req = Request.new(
72
+ method: :get,
73
+ path: path
74
+ )
75
+
76
+ connection.call(req, return_type: NetworkFeeListResult)
77
+ end
78
+
79
+ # Retrieve a withdrawal
80
+ # @param coin_withdrawal_id [String] Coin withdrawal ID
81
+ # @param [Hash] opts the optional parameters
82
+ # @return [CoinWithdrawalResult]
83
+ def retrieve(coin_withdrawal_id, _opts = {})
84
+ path = '/api/coin_withdrawals/{coin_withdrawal_id}'
85
+ path = path.sub('{coin_withdrawal_id}', CGI.escape(coin_withdrawal_id.to_s))
86
+
87
+ req = Request.new(
88
+ method: :get,
89
+ path: path
90
+ )
91
+
92
+ connection.call(req, return_type: CoinWithdrawalResult)
93
+ end
94
+
95
+ # Retrieve a withdrawal by custom id
96
+ # @param custom_id [String]
97
+ # @param [Hash] opts the optional parameters
98
+ # @return [CoinWithdrawalResult]
99
+ def retrieve_by_custom_id(custom_id, _opts = {})
100
+ path = '/api/coin_withdrawals/custom_id/{custom_id}'
101
+ path = path.sub('{custom_id}', CGI.escape(custom_id.to_s))
102
+
103
+ req = Request.new(
104
+ method: :get,
105
+ path: path
106
+ )
107
+
108
+ connection.call(req, return_type: CoinWithdrawalResult)
109
+ end
110
+
111
+ private
112
+
113
+ attr_reader :connection
114
+ end
115
+ end
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class Customers
8
+ def initialize(connection)
9
+ @connection = connection
10
+ end
11
+
12
+ # Create a customer
13
+ # @param customer_params [CustomerParams]
14
+ # @param [Hash] opts the optional parameters
15
+ # @return [CustomerResult]
16
+ def create(customer_params, _opts = {})
17
+ path = '/api/customers'
18
+
19
+ req = Request.new(
20
+ method: :post,
21
+ path: path,
22
+ body_params: customer_params
23
+ )
24
+
25
+ connection.call(req, return_type: CustomerResult)
26
+ end
27
+
28
+ # List customers
29
+ # @param [Hash] opts the optional parameters
30
+ # @option opts [String] :starting_after Pagination parameter. ID to start after
31
+ # @return [CustomerListResult]
32
+ def list(opts = {})
33
+ path = '/api/customers'
34
+
35
+ query_params = {}
36
+ query_params[:starting_after] = opts[:starting_after] unless opts[:starting_after].nil?
37
+
38
+ req = Request.new(
39
+ method: :get,
40
+ path: path,
41
+ query_params: query_params
42
+ )
43
+
44
+ connection.call(req, return_type: CustomerListResult)
45
+ end
46
+
47
+ # Retrieve a customer
48
+ # @param customer_id [String] The customer's reference ID in your system
49
+ # @param [Hash] opts the optional parameters
50
+ # @return [CustomerResult]
51
+ def retrieve(customer_id, _opts = {})
52
+ path = '/api/customers/{customer_id}'
53
+ path = path.sub('{customer_id}', CGI.escape(customer_id.to_s))
54
+
55
+ req = Request.new(
56
+ method: :get,
57
+ path: path
58
+ )
59
+
60
+ connection.call(req, return_type: CustomerResult)
61
+ end
62
+
63
+ # Update a customer
64
+ # @param customer_id [String] The customer's reference ID in your system
65
+ # @param customer_update_params [CustomerUpdateParams]
66
+ # @param [Hash] opts the optional parameters
67
+ # @return [CustomerResult]
68
+ def update(customer_id, customer_update_params, _opts = {})
69
+ path = '/api/customers/{customer_id}'
70
+ path = path.sub('{customer_id}', CGI.escape(customer_id.to_s))
71
+
72
+ req = Request.new(
73
+ method: :patch,
74
+ path: path,
75
+ body_params: customer_update_params
76
+ )
77
+
78
+ connection.call(req, return_type: CustomerResult)
79
+ end
80
+
81
+ private
82
+
83
+ attr_reader :connection
84
+ end
85
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class ExchangeTransfers
8
+ def initialize(connection)
9
+ @connection = connection
10
+ end
11
+
12
+ # Commit an exchange transfer
13
+ # @param exchange_transfer_id [String] Exchange transfer ID
14
+ # @param [Hash] opts the optional parameters
15
+ # @return [ExchangeTransferResult]
16
+ def commit(exchange_transfer_id, _opts = {})
17
+ path = '/api/exchange_transfers/{exchange_transfer_id}/commit'
18
+ path = path.sub('{exchange_transfer_id}', CGI.escape(exchange_transfer_id.to_s))
19
+
20
+ req = Request.new(
21
+ method: :post,
22
+ path: path
23
+ )
24
+
25
+ connection.call(req, return_type: ExchangeTransferResult)
26
+ end
27
+
28
+ # Create an exchange transfer
29
+ # @param exchange_transfer_params [ExchangeTransferParams]
30
+ # @param [Hash] opts the optional parameters
31
+ # @return [ExchangeTransferResult]
32
+ def create(exchange_transfer_params, _opts = {})
33
+ path = '/api/exchange_transfers'
34
+
35
+ req = Request.new(
36
+ method: :post,
37
+ path: path,
38
+ body_params: exchange_transfer_params
39
+ )
40
+
41
+ connection.call(req, return_type: ExchangeTransferResult)
42
+ end
43
+
44
+ # Retrieve an exchange transfer
45
+ # @param exchange_transfer_id [String] Exchange transfer ID
46
+ # @param [Hash] opts the optional parameters
47
+ # @return [ExchangeTransferResult]
48
+ def retrieve(exchange_transfer_id, _opts = {})
49
+ path = '/api/exchange_transfers/{exchange_transfer_id}'
50
+ path = path.sub('{exchange_transfer_id}', CGI.escape(exchange_transfer_id.to_s))
51
+
52
+ req = Request.new(
53
+ method: :get,
54
+ path: path
55
+ )
56
+
57
+ connection.call(req, return_type: ExchangeTransferResult)
58
+ end
59
+
60
+ private
61
+
62
+ attr_reader :connection
63
+ end
64
+ end
@@ -0,0 +1,163 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class Invoices
8
+ def initialize(connection)
9
+ @connection = connection
10
+ end
11
+
12
+ # Commit invoice recalculation
13
+ # This endpoint allows you to commit invoice recalculation.
14
+ # @param invoice_id [String] Invoice ID
15
+ # @param recalculation_id [String] Recalculation ID
16
+ # @param [Hash] opts the optional parameters
17
+ # @return [InvoiceRecalculationResult]
18
+ def commit_recalculation(invoice_id, recalculation_id, _opts = {})
19
+ path = '/api/invoices/{invoice_id}/recalculations/{recalculation_id}/commit'
20
+ path = path.sub('{invoice_id}', CGI.escape(invoice_id.to_s))
21
+ path = path.sub('{recalculation_id}', CGI.escape(recalculation_id.to_s))
22
+
23
+ req = Request.new(
24
+ method: :post,
25
+ path: path
26
+ )
27
+
28
+ connection.call(req, return_type: InvoiceRecalculationResult)
29
+ end
30
+
31
+ # Create an invoice
32
+ # This endpoint allows you to create invoices.
33
+ # @param invoice_params [InvoiceParams]
34
+ # @param [Hash] opts the optional parameters
35
+ # @return [InvoiceResult]
36
+ def create(invoice_params, _opts = {})
37
+ path = '/api/invoices'
38
+
39
+ req = Request.new(
40
+ method: :post,
41
+ path: path,
42
+ body_params: invoice_params
43
+ )
44
+
45
+ connection.call(req, return_type: InvoiceResult)
46
+ end
47
+
48
+ # Create invoice recalculation
49
+ # This endpoint allows you to recalculate invoices.
50
+ # @param invoice_id [String] Invoice ID
51
+ # @param invoice_recalculation_params [InvoiceRecalculationParams]
52
+ # @param [Hash] opts the optional parameters
53
+ # @return [InvoiceRecalculationResult]
54
+ def create_recalculation(invoice_id, invoice_recalculation_params, _opts = {})
55
+ path = '/api/invoices/{invoice_id}/recalculations'
56
+ path = path.sub('{invoice_id}', CGI.escape(invoice_id.to_s))
57
+
58
+ req = Request.new(
59
+ method: :post,
60
+ path: path,
61
+ body_params: invoice_recalculation_params
62
+ )
63
+
64
+ connection.call(req, return_type: InvoiceRecalculationResult)
65
+ end
66
+
67
+ # Create invoice refund
68
+ # This endpoint allows you to create invoice refunds.
69
+ # @param invoice_id [String] Invoice ID
70
+ # @param invoice_refund_params [InvoiceRefundParams]
71
+ # @param [Hash] opts the optional parameters
72
+ # @return [InvoiceRefundResult]
73
+ def create_refund(invoice_id, invoice_refund_params, _opts = {})
74
+ path = '/api/invoices/{invoice_id}/refunds'
75
+ path = path.sub('{invoice_id}', CGI.escape(invoice_id.to_s))
76
+
77
+ req = Request.new(
78
+ method: :post,
79
+ path: path,
80
+ body_params: invoice_refund_params
81
+ )
82
+
83
+ connection.call(req, return_type: InvoiceRefundResult)
84
+ end
85
+
86
+ # List invoices
87
+ # This endpoint allows you to retrieve a list of all invoices.
88
+ # @param [Hash] opts the optional parameters
89
+ # @option opts [String] :customer_id The internal ID of your customer that the transaction relates to
90
+ # @option opts [String] :starting_after Pagination parameter. ID to start after
91
+ # @return [InvoiceListResult]
92
+ def list(opts = {})
93
+ path = '/api/invoices'
94
+
95
+ query_params = {}
96
+ query_params[:customer_id] = opts[:customer_id] unless opts[:customer_id].nil?
97
+ query_params[:starting_after] = opts[:starting_after] unless opts[:starting_after].nil?
98
+
99
+ req = Request.new(
100
+ method: :get,
101
+ path: path,
102
+ query_params: query_params
103
+ )
104
+
105
+ connection.call(req, return_type: InvoiceListResult)
106
+ end
107
+
108
+ # List invoice refunds
109
+ # This endpoint allows you to retrieve a list of a particular invoice refunds.
110
+ # @param invoice_id [String] Invoice ID
111
+ # @param [Hash] opts the optional parameters
112
+ # @return [InvoiceRefundListResult]
113
+ def list_refunds(invoice_id, _opts = {})
114
+ path = '/api/invoices/{invoice_id}/refunds'
115
+ path = path.sub('{invoice_id}', CGI.escape(invoice_id.to_s))
116
+
117
+ req = Request.new(
118
+ method: :get,
119
+ path: path
120
+ )
121
+
122
+ connection.call(req, return_type: InvoiceRefundListResult)
123
+ end
124
+
125
+ # Retrieve an invoice
126
+ # This endpoint allows you to retrieve the invoice details.
127
+ # @param invoice_id [String] Invoice ID
128
+ # @param [Hash] opts the optional parameters
129
+ # @return [InvoiceResult]
130
+ def retrieve(invoice_id, _opts = {})
131
+ path = '/api/invoices/{invoice_id}'
132
+ path = path.sub('{invoice_id}', CGI.escape(invoice_id.to_s))
133
+
134
+ req = Request.new(
135
+ method: :get,
136
+ path: path
137
+ )
138
+
139
+ connection.call(req, return_type: InvoiceResult)
140
+ end
141
+
142
+ # Retrieve an invoice by custom_id
143
+ # This endpoint allows you to retrieve invoice details by its custom_id.
144
+ # @param custom_id [String]
145
+ # @param [Hash] opts the optional parameters
146
+ # @return [InvoiceResult]
147
+ def retrieve_by_custom_id(custom_id, _opts = {})
148
+ path = '/api/invoices/custom_id/{custom_id}'
149
+ path = path.sub('{custom_id}', CGI.escape(custom_id.to_s))
150
+
151
+ req = Request.new(
152
+ method: :get,
153
+ path: path
154
+ )
155
+
156
+ connection.call(req, return_type: InvoiceResult)
157
+ end
158
+
159
+ private
160
+
161
+ attr_reader :connection
162
+ end
163
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class Rates
8
+ def initialize(connection)
9
+ @connection = connection
10
+ end
11
+
12
+ # Retrieve all rates
13
+ # This endpoint allows you to retrieve all public rates.
14
+ # @param [Hash] opts the optional parameters
15
+ # @return [RatesResult]
16
+ def all(_opts = {})
17
+ path = '/api/rates'
18
+
19
+ req = Request.new(
20
+ method: :get,
21
+ path: path
22
+ )
23
+
24
+ connection.call(req, return_type: RatesResult)
25
+ end
26
+
27
+ # Retrieve a pair rate
28
+ # This endpoint allows you to retrieve a public rate by currency pair.
29
+ # @param base_currency [String] Base currency of pair
30
+ # @param quote_currency [String] Quote currency of pair
31
+ # @param [Hash] opts the optional parameters
32
+ # @return [RateResult]
33
+ def retrieve(base_currency, quote_currency, _opts = {})
34
+ path = '/api/rates/{base_currency}/{quote_currency}'
35
+ path = path.sub('{base_currency}', CGI.escape(base_currency.to_s))
36
+ path = path.sub('{quote_currency}', CGI.escape(quote_currency.to_s))
37
+
38
+ req = Request.new(
39
+ method: :get,
40
+ path: path
41
+ )
42
+
43
+ connection.call(req, return_type: RateResult)
44
+ end
45
+
46
+ private
47
+
48
+ attr_reader :connection
49
+ end
50
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class Risks
8
+ def initialize(connection)
9
+ @connection = connection
10
+ end
11
+
12
+ # Score a coin address
13
+ # @param risk_params [RiskParams]
14
+ # @param [Hash] opts the optional parameters
15
+ # @return [RiskResult]
16
+ def score(risk_params, _opts = {})
17
+ path = '/api/risks/score'
18
+
19
+ req = Request.new(
20
+ method: :post,
21
+ path: path,
22
+ body_params: risk_params
23
+ )
24
+
25
+ connection.call(req, return_type: RiskResult)
26
+ end
27
+
28
+ private
29
+
30
+ attr_reader :connection
31
+ end
32
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Auto-generated file
4
+ # DO NOT EDIT
5
+
6
+ module Cryptopay
7
+ class Transactions
8
+ def initialize(connection)
9
+ @connection = connection
10
+ end
11
+
12
+ # List transactions
13
+ # @param [Hash] opts the optional parameters
14
+ # @option opts [Time] :created_at_from Date and time in iso8601 format
15
+ # @option opts [Time] :created_at_to Date and time in iso8601 format
16
+ # @option opts [TransactionReferenceType] :reference_type Transaction reference type
17
+ # @option opts [String] :currency Transaction currency
18
+ # @option opts [String] :status Transaction status
19
+ # @option opts [RiskLevel] :risk_level Transaction risk level
20
+ # @option opts [String] :starting_after Pagination parameter. ID to start after
21
+ # @return [TransactionListResult]
22
+ def list(opts = {})
23
+ path = '/api/transactions'
24
+
25
+ query_params = {}
26
+ query_params[:created_at_from] = opts[:created_at_from] unless opts[:created_at_from].nil?
27
+ query_params[:created_at_to] = opts[:created_at_to] unless opts[:created_at_to].nil?
28
+ query_params[:reference_type] = opts[:reference_type] unless opts[:reference_type].nil?
29
+ query_params[:currency] = opts[:currency] unless opts[:currency].nil?
30
+ query_params[:status] = opts[:status] unless opts[:status].nil?
31
+ query_params[:risk_level] = opts[:risk_level] unless opts[:risk_level].nil?
32
+ query_params[:starting_after] = opts[:starting_after] unless opts[:starting_after].nil?
33
+
34
+ req = Request.new(
35
+ method: :get,
36
+ path: path,
37
+ query_params: query_params
38
+ )
39
+
40
+ connection.call(req, return_type: TransactionListResult)
41
+ end
42
+
43
+ private
44
+
45
+ attr_reader :connection
46
+ end
47
+ end