class Bitodeme::Resource::Invoice
Invoice
resource
Attributes
account_id[R]
Account identifier
address[R]
Fund
address
amount[R]
Amount
cancel_return_url[R]
Cancellation return url
created_at[R]
Created at in milliseconds
currency_code[R]
Currency
code
current_status[R]
Current status
deleted_at[R]
Deleted at in milliseconds
description[R]
Description
external_id[R]
External unique identifier
id[R]
Unique identifier
name[R]
Name/title
notify_url[R]
Notify url
original_amount[R]
Original amount
original_currency_code[R]
Original currency code
purchasable[R]
Is it purchasable
return_url[R]
Successful payment return url
updated_at[R]
Updated at in milliseconds
Public Class Methods
build(params)
click to toggle source
Build an invoice
Example:
>> invoice = >> Bitodeme::Resource::Invoice.build( >> name: 'Virtual game gold', >> description: 'Buy a game gold', >> original_amount: 16.7, >> original_currency_code: 'USD', >> external_id: 'SomeUniqId', >> purchasable: {} >> )
Arguments:
params: (Hash)
# File lib/bitodeme/resources/invoice.rb, line 77 def build(params) new(params).send(:validate) end
create(invoice)
click to toggle source
Craete a new invoice
Example:
>> invoice = >> Bitodeme.build_invoice( >> name: 'Virtual game gold', >> description: 'Buy a game gold', >> original_amount: 16.7, >> original_currency_code: 'USD', >> external_id: 'SomeUniqId', >> purchasable: {} >> ) >> invoice = Bitodeme.create_invoice(invoice)
Arguments:
invoice: (Bitodeme::Resource::Invoice)
# File lib/bitodeme/resources/invoice.rb, line 106 def create(invoice) raise_for('invoice', invoice) unless invoice.is_a?(Invoice) _create('invoices', 'invoice', invoice: invoice.to_h) end
find(id)
click to toggle source
Find an invoice
Arguments:
id: (UUID)
# File lib/bitodeme/resources/invoice.rb, line 85 def find(id) _find('invoices', 'invoice', id) end
new(params)
click to toggle source
Calls superclass method
Bitodeme::Resource::Base::new
# File lib/bitodeme/resources/invoice.rb, line 126 def initialize(params) super(attrs: attrs, params: params) end
Private Class Methods
new(attrs:, params:)
click to toggle source
# File lib/bitodeme/resources/base.rb, line 54 def initialize(attrs:, params:) attrs.each do |attr| val = params.fetch(attr.to_s, params.fetch(attr, nil)) instance_variable_set("@#{attr}", val) end end
raise_for(attr, val)
click to toggle source
# File lib/bitodeme/resources/invoice.rb, line 117 def raise_for(attr, val) raise Bitodeme::ValidationError.new(attr, val) end
Private Instance Methods
validate()
click to toggle source
# File lib/bitodeme/resources/invoice.rb, line 130 def validate validate_original_amount validate_original_currency_code validate_external_id validate_purchasable self end
validate_external_id()
click to toggle source
# File lib/bitodeme/resources/invoice.rb, line 148 def validate_external_id raise_for('external_id') unless external_id.is_a?(String) end
validate_original_amount()
click to toggle source
# File lib/bitodeme/resources/invoice.rb, line 138 def validate_original_amount return if /^\d{0,8}(\.\d{1,8})?$/.match?(original_amount.to_s) raise_for('original_amount') end
validate_original_currency_code()
click to toggle source
# File lib/bitodeme/resources/invoice.rb, line 143 def validate_original_currency_code return if /^[a-zA-Z]{3}$/.match?(original_currency_code.to_s) raise_for('original_currency_code') end
validate_purchasable()
click to toggle source
# File lib/bitodeme/resources/invoice.rb, line 152 def validate_purchasable raise_for('purchasable') unless purchasable.is_a?(Hash) end