class Bliss::Client::Order

Public Class Methods

create(attributes) click to toggle source
# File lib/bliss/client/order.rb, line 18
def self.create(attributes)
  order = new(attributes)
  order.create
  order
end

Public Instance Methods

create() click to toggle source
# File lib/bliss/client/order.rb, line 24
def create
  validate!

  response = Client.connection.post(
    'orders',
    blizzard_customer_id: blizzard_customer_id,
    type: type,
    items: items.map(&:attributes),
    delivery_address: delivery_address.attributes,
    remote_id: remote_id
  )

  if response.success?
    body = response.body
    self.id = body.fetch('id')
    self.created_at = body.fetch('created_at')
  else
    raise JSON.parse(response.body).fetch('message')
  end
end
validate!() click to toggle source
Calls superclass method Bliss::Client::Validation#validate!
# File lib/bliss/client/order.rb, line 45
def validate!
  super
  items.each &:validate!
  delivery_address.validate!
end