class Apruve::Order
Attributes
accepts_payment_terms[RW]
accepts_payments_via[RW]
amount_cents[RW]
created_at[RW]
currency[RW]
default_payment_method[RW]
expire_at[RW]
final_state_at[RW]
finalize_on_create[RW]
id[RW]
invoice_on_create[RW]
links[RW]
merchant_id[RW]
merchant_order_id[RW]
order_items[RW]
payment_term[RW]
po_number[RW]
secure_hash[RW]
shipping_cents[RW]
shopper_id[RW]
status[RW]
tax_cents[RW]
updated_at[RW]
Public Class Methods
cancel!(id)
click to toggle source
# File lib/apruve/resources/order.rb, line 46 def self.cancel!(id) response = Apruve.post("orders/#{id}/cancel") logger.debug response.body Order.new(response.body) end
finalize!(id)
click to toggle source
# File lib/apruve/resources/order.rb, line 31 def self.finalize!(id) response = Apruve.post("orders/#{id}/finalize") logger.debug response.body Order.new(response.body) end
find(id)
click to toggle source
# File lib/apruve/resources/order.rb, line 8 def self.find(id) response = Apruve.get("orders/#{id}") logger.debug response.body Order.new(response.body) end
find_all(merchant_order_id = nil)
click to toggle source
# File lib/apruve/resources/order.rb, line 14 def self.find_all(merchant_order_id = nil) if merchant_order_id.nil? response = Apruve.get('orders') else response = Apruve.get("orders?merchant_order_id=#{merchant_order_id}") end logger.debug response.body response.body.map { |order| Order.new(order) } end
find_by_hash(hash)
click to toggle source
# File lib/apruve/resources/order.rb, line 24 def self.find_by_hash(hash) response = Apruve.get("orders?secure_hash=#{hash}") logger.debug response.body orders = response.body.map { |order| Order.new(order) } orders.max_by { |order| order.created_at } end
invoices_for(order_id)
click to toggle source
# File lib/apruve/resources/order.rb, line 37 def self.invoices_for(order_id) response = Apruve.get("orders/#{order_id}/invoices") ret = [] response.body.each do |i| ret << Invoice.new(i) end ret end
new(params)
click to toggle source
Calls superclass method
Apruve::ApruveObject::new
# File lib/apruve/resources/order.rb, line 58 def initialize(params) super # hydrate line items if appropriate if @order_items.nil? @order_items = [] elsif @order_items.is_a?(Array) && @order_items.first.is_a?(Hash) hydrated_items = [] @order_items.each do |item| hydrated_items << Apruve::OrderItem.new(item) end @order_items = hydrated_items end end
Public Instance Methods
payment_terms()
click to toggle source
The field is actually named 'payment_term', but some integrations are currently using 'payment_terms'. Pass those requests through to the correct attribute.
# File lib/apruve/resources/order.rb, line 109 def payment_terms self.payment_term end
payment_terms=(pt)
click to toggle source
# File lib/apruve/resources/order.rb, line 113 def payment_terms=(pt) self.payment_term=pt end
save!()
click to toggle source
# File lib/apruve/resources/order.rb, line 78 def save! validate response = Apruve.post('orders', self.to_json) self.id = response.body['id'] self.status = response.body['status'] self.created_at = response.body['created_at'] end
update!()
click to toggle source
# File lib/apruve/resources/order.rb, line 52 def update! response = Apruve.patch("orders/#{id}", {order: self}.to_json ) logger.debug response.body initialize response.body end
validate()
click to toggle source
# File lib/apruve/resources/order.rb, line 72 def validate errors = [] errors << 'merchant_id must be set' if merchant_id.nil? raise Apruve::ValidationError.new(errors) if errors.length > 0 end
value_string()
click to toggle source
# File lib/apruve/resources/order.rb, line 86 def value_string # add each field in the PR str = "#{merchant_id}#{merchant_order_id}#{amount_cents}#{currency}#{tax_cents}#{shipping_cents}#{expire_at}#{accepts_payment_terms}#{finalize_on_create}#{invoice_on_create}" # add the line items self.order_items.each do |item| str += "#{item.title}#{item.plan_code}#{item.price_total_cents}#{item.price_ea_cents}"\ "#{item.quantity}#{item.merchant_notes}#{item.description}#{item.variant_info}#{item.sku}"\ "#{item.vendor}#{item.view_product_url}" end str end