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.
5242 5243 5244 5245 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 5242 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.
5240 5241 5242 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 5240 def discriminator @discriminator end |
Class Method Details
.from_json(hash) ⇒ Object
5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 5255 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
5247 5248 5249 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 5247 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
5251 5252 5253 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 5251 def to_hash subtype_to_hash.merge(:discriminator => @discriminator) end |