class Io::Flow::V0::Models::Delivery

A delivery represents a group of items that will be delivered together - presenting a single price and delivery time frame, where applicable, to the user. Deliveries commonly are created based on the type of item and, for physical goods, their center of origin

Attributes

discriminator[R]

Public Class Methods

from_json(hash) click to toggle source
# File lib/flow_commerce/flow_api_v0_client.rb, line 10504
def Delivery.from_json(hash)
  HttpClient::Preconditions.assert_class('hash', hash, Hash)
  discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
  if discriminator.empty?
    raise "Union type[delivery] requires a field named 'discriminator'"
  end
  case discriminator
    when Types::DIGITAL_DELIVERY; DigitalDelivery.new(hash)
    when Types::PHYSICAL_DELIVERY; PhysicalDelivery.new(hash)
    else DeliveryUndefinedType.new(:discriminator => discriminator)
  end
end
new(incoming={}) click to toggle source
# File lib/flow_commerce/flow_api_v0_client.rb, line 10491
def initialize(incoming={})
  opts = HttpClient::Helper.symbolize_keys(incoming)
  @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator) || 'physical_delivery', String)
end

Public Instance Methods

subtype_to_hash() click to toggle source
# File lib/flow_commerce/flow_api_v0_client.rb, line 10496
def subtype_to_hash
  raise 'Cannot serialize an instance of delivery directly - must use one of the specific types: digital_delivery, physical_delivery'
end
to_hash() click to toggle source
# File lib/flow_commerce/flow_api_v0_client.rb, line 10500
def to_hash
  subtype_to_hash.merge(:discriminator => @discriminator)
end