Class: Paymos::Invoices
- Defined in:
- lib/paymos/client.rb,
sig/paymos.rbs
Instance Method Summary collapse
- #cancel(invoice_id, reason:) ⇒ Invoice
- #confirm_payment(invoice_id, currency:, network:) ⇒ Invoice
- #create(project_id:, amount:, currency:, external_order_id:, network: nil, allow_multiple_payments: nil, customer_fee_percent: nil, client_id: nil) ⇒ Invoice
- #each(max_pages: 100, **filters) {|arg0| ... } ⇒ Object
- #get(invoice_id) ⇒ Invoice
- #list(limit: nil, cursor: nil, status: nil, external_order_id: nil, project_id: nil, created_from: nil, created_to: nil) ⇒ Page[InvoiceListItem]
- #simulate_payment(invoice_id, stage:) ⇒ Invoice
Methods inherited from Resource
Constructor Details
This class inherits a constructor from Paymos::Resource
Instance Method Details
#cancel(invoice_id, reason:) ⇒ Invoice
219 220 221 222 |
# File 'lib/paymos/client.rb', line 219 def cancel(invoice_id, reason:) Invoice.from(@client.request('POST', "/v1/invoices/#{segment(invoice_id)}/cancel", payload: { reason: validate_reason(reason) })) end |
#confirm_payment(invoice_id, currency:, network:) ⇒ Invoice
224 225 226 227 228 |
# File 'lib/paymos/client.rb', line 224 def confirm_payment(invoice_id, currency:, network:) required_keywords(currency:, network:) Invoice.from(@client.request('POST', "/v1/invoices/#{segment(invoice_id)}/confirm-payment", payload: { currency:, network: })) end |
#create(project_id:, amount:, currency:, external_order_id:, network: nil, allow_multiple_payments: nil, customer_fee_percent: nil, client_id: nil) ⇒ Invoice
198 199 200 201 202 203 204 205 206 207 208 |
# File 'lib/paymos/client.rb', line 198 def create(project_id:, amount:, currency:, external_order_id:, network: nil, allow_multiple_payments: nil, customer_fee_percent: nil, client_id: nil) required_keywords(project_id:, amount:, currency:, external_order_id:) if !customer_fee_percent.nil? && !(customer_fee_percent.is_a?(Integer) && customer_fee_percent.between?(0, 100)) raise ArgumentError, 'customer_fee_percent must be between 0 and 100' end payload = { project_id:, amount:, currency:, external_order_id:, network:, allow_multiple_payments:, customer_fee_percent:, client_id: }.compact Invoice.from(@client.request('POST', '/v1/invoices', payload:)) end |
#each(max_pages:, filters) ⇒ void #each(max_pages:, filters) ⇒ Enumerator[InvoiceListItem, void]
237 238 239 240 241 |
# File 'lib/paymos/client.rb', line 237 def each(max_pages: 100, **filters, &block) return enum_for(__method__, max_pages: max_pages, **filters) unless block_given? Pagination.each(method(:list), filters, max_pages:, &block) end |
#get(invoice_id) ⇒ Invoice
210 |
# File 'lib/paymos/client.rb', line 210 def get(invoice_id) = Invoice.from(@client.request('GET', "/v1/invoices/#{segment(invoice_id)}")) |
#list(limit: nil, cursor: nil, status: nil, external_order_id: nil, project_id: nil, created_from: nil, created_to: nil) ⇒ Page[InvoiceListItem]
212 213 214 215 216 217 |
# File 'lib/paymos/client.rb', line 212 def list(limit: nil, cursor: nil, status: nil, external_order_id: nil, project_id: nil, created_from: nil, created_to: nil) filters = validate_list_filters({ limit:, cursor:, status:, external_order_id:, project_id:, created_from:, created_to: }.compact) Page.from(@client.request('GET', '/v1/invoices', query: Signing.query(filters)), item_type: InvoiceListItem) end |
#simulate_payment(invoice_id, stage:) ⇒ Invoice
230 231 232 233 234 235 |
# File 'lib/paymos/client.rb', line 230 def simulate_payment(invoice_id, stage:) raise ArgumentError, 'Invalid simulation stage' unless %w[paid overpaid underpay cancel].include?(stage) Invoice.from(@client.request('POST', "/v1/sandbox/invoices/#{segment(invoice_id)}/simulate-payment", payload: { stage: })) end |