Class: Io::Flow::V0::Models::Delivery
- Inherits:
-
Object
- Object
- Io::Flow::V0::Models::Delivery
- Defined in:
- lib/flow_commerce/flow_api_v0_client.rb
Overview
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
Direct Known Subclasses
Defined Under Namespace
Modules: Types
Instance Attribute Summary collapse
-
#discriminator ⇒ Object
readonly
Returns the value of attribute discriminator.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(incoming = {}) ⇒ Delivery
constructor
A new instance of Delivery.
- #subtype_to_hash ⇒ Object
- #to_hash ⇒ Object
Constructor Details
#initialize(incoming = {}) ⇒ Delivery
Returns a new instance of Delivery.
10491 10492 10493 10494 |
# 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 |
Instance Attribute Details
#discriminator ⇒ Object (readonly)
Returns the value of attribute discriminator.
10489 10490 10491 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 10489 def discriminator @discriminator end |
Class Method Details
.from_json(hash) ⇒ Object
10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 |
# 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 |
Instance Method Details
#subtype_to_hash ⇒ Object
10496 10497 10498 |
# 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 ⇒ Object
10500 10501 10502 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 10500 def to_hash subtype_to_hash.merge(:discriminator => @discriminator) end |