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.
6509 6510 6511 6512 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 6509 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.
6507 6508 6509 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 6507 def discriminator @discriminator end |
Class Method Details
.from_json(hash) ⇒ Object
6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 6522 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
6514 6515 6516 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 6514 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
6518 6519 6520 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 6518 def to_hash subtype_to_hash.merge(:discriminator => @discriminator) end |