class Apruve::Invoice

Attributes

amount_cents[RW]
amount_due[RW]
bill_to_address[RW]
created_at[RW]
currency[RW]
due_at[RW]
final_state_at[RW]
fiscal_representative[RW]
id[RW]
invoice_items[RW]
issue_on_create[RW]
issued_at[RW]
merchant_invoice_id[RW]
merchant_notes[RW]
opened_at[RW]
order_id[RW]
payments[RW]
remittance_address[RW]
ship_to_address[RW]
shipping_cents[RW]
sold_to_address[RW]
status[RW]
tax_cents[RW]

Public Class Methods

find(id) click to toggle source
# File lib/apruve/resources/invoice.rb, line 8
def self.find(id)
  response = Apruve.get("invoices/#{id}")
  Invoice.new(response.body)
end
new(params) click to toggle source
Calls superclass method Apruve::ApruveObject::new
# File lib/apruve/resources/invoice.rb, line 13
def initialize(params)
  super
  # hydrate payment items if appropriate
  if @invoice_items.nil?
    @invoice_items = []
  elsif @invoice_items.is_a?(Array) && @invoice_items.first.is_a?(Hash)
    hydrated_items = []
    @invoice_items.each do |item|
      hydrated_items << Apruve::OrderItem.new(item)
    end
    @invoice_items = hydrated_items
  end
  @currency = Apruve.default_currency if currency.nil?
end

Public Instance Methods

cancel!() click to toggle source
# File lib/apruve/resources/invoice.rb, line 64
def cancel!
  validate
  response = Apruve.post("invoices/#{id}/cancel")
  self.status = response.body['status']
  self.status
end
close!() click to toggle source
# File lib/apruve/resources/invoice.rb, line 57
def close!
  validate
  response = Apruve.post("invoices/#{id}/close")
  self.status = response.body['status']
  self.status
end
issue!() click to toggle source
# File lib/apruve/resources/invoice.rb, line 50
def issue!
  validate
  response = Apruve.post("invoices/#{id}/issue")
  self.status = response.body['status']
  self.status
end
save!() click to toggle source
# File lib/apruve/resources/invoice.rb, line 35
def save!
  validate
  response = Apruve.post('invoices', self.to_json)
  self.id = response.body['id']
  self.status = response.body['status']
  self.status
end
update!() click to toggle source
# File lib/apruve/resources/invoice.rb, line 43
def update!
  validate
  response = Apruve.patch("invoices/#{id}", self.to_json)
  self.status = response.body['status']
  self.status
end
validate() click to toggle source
# File lib/apruve/resources/invoice.rb, line 28
def validate
  errors = []
  errors << 'order_id must be set' if order_id.nil?
  errors << 'amount_cents must be set' if amount_cents.nil?
  raise Apruve::ValidationError.new(errors) if errors.length > 0
end