class Apruve::Shipment

Attributes

amount_cents[RW]
currency[RW]
delivered_at[RW]
id[RW]
invoice_id[RW]
merchant_notes[RW]
merchant_shipment_id[RW]
shipment_items[RW]
shipped_at[RW]
shipper[RW]
shipping_cents[RW]
status[RW]
tax_cents[RW]
tracking_number[RW]

Public Class Methods

find(invoice_id, id) click to toggle source
# File lib/apruve/resources/shipment.rb, line 7
def self.find(invoice_id, id)
  response = Apruve.get("invoices/#{invoice_id}/shipments/#{id}")
  Shipment.new(response.body)
end
find_all(invoice_id) click to toggle source
# File lib/apruve/resources/shipment.rb, line 12
def self.find_all(invoice_id)
  response = Apruve.get("invoices/#{invoice_id}/shipments")
  logger.debug response.body
  response.body.map { |shipment| Shipment.new(shipment) }
end
new(params) click to toggle source
Calls superclass method Apruve::ApruveObject::new
# File lib/apruve/resources/shipment.rb, line 18
def initialize(params)
  super
  # hydrate payment items if appropriate
  if @shipment_items.nil?
    @shipment_items = []
  elsif @shipment_items.is_a?(Array) && @shipment_items.first.is_a?(Hash)
    hydrated_items = []
    @shipment_items.each do |item|
      hydrated_items << Apruve::ShipmentItem.new(item)
    end
    @shipment_items = hydrated_items
  end
  @currency = Apruve.default_currency if currency.nil?
end

Public Instance Methods

save!() click to toggle source
# File lib/apruve/resources/shipment.rb, line 39
def save!
  validate
  response = Apruve.post("invoices/#{self.invoice_id}/shipments", self.to_json)
  self.id = response.body['id']
end
update!() click to toggle source
# File lib/apruve/resources/shipment.rb, line 45
def update!
  validate
  Apruve.patch("invoices/#{self.invoice_id}/shipments/#{id}", self.to_json)
end
validate() click to toggle source
# File lib/apruve/resources/shipment.rb, line 33
def validate
  errors = []
  errors << 'invoice_id must be set' if invoice_id.nil?
  raise Apruve::ValidationError.new(errors) if errors.length > 0
end