Class: Io::Flow::V0::Clients::DeliveryWindows
- Inherits:
-
Object
- Object
- Io::Flow::V0::Clients::DeliveryWindows
- Defined in:
- lib/flow_commerce/flow_api_v0_client.rb
Instance Method Summary collapse
-
#get_summary(organization, incoming = {}) ⇒ Object
Endpoint to request a delivery window.
-
#initialize(client) ⇒ DeliveryWindows
constructor
A new instance of DeliveryWindows.
Constructor Details
#initialize(client) ⇒ DeliveryWindows
Returns a new instance of DeliveryWindows.
3319 3320 3321 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 3319 def initialize(client) @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client) end |
Instance Method Details
#get_summary(organization, incoming = {}) ⇒ Object
Endpoint to request a delivery window. Requires some knowledge of origin (based on organization, center, or specified address string) and destination (based on ip, lat/long, or address string). Other attributes allow us to narrow down delivery windows even more such as service level to be used and timestamp of expected shipment date.
3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 3328 def get_summary(organization, incoming={}) HttpClient::Preconditions.assert_class('organization', organization, String) opts = HttpClient::Helper.symbolize_keys(incoming) query = { :strategy => (x = (x = opts.delete(:strategy); x.nil? ? "range" : x); x.is_a?(::Io::Flow::V0::Models::Strategy) ? x : ::Io::Flow::V0::Models::Strategy.apply(x)).value, :center => (x = opts.delete(:center); x.nil? ? nil : HttpClient::Preconditions.assert_class('center', x, String)), :origin => (x = opts.delete(:origin); x.nil? ? nil : HttpClient::Preconditions.assert_class('origin', x, String)), :destination => (x = opts.delete(:destination); x.nil? ? nil : HttpClient::Preconditions.assert_class('destination', x, String)), :ip => (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String)), :latitude => (x = opts.delete(:latitude); x.nil? ? nil : HttpClient::Preconditions.assert_class('latitude', x, String)), :longitude => (x = opts.delete(:longitude); x.nil? ? nil : HttpClient::Preconditions.assert_class('longitude', x, String)), :service => (x = opts.delete(:service); x.nil? ? nil : HttpClient::Preconditions.assert_class('service', x, String)) }.delete_if { |k, v| v.nil? } r = @client.request("/#{CGI.escape(organization)}/delivery-windows/summary").with_query(query).get ::Io::Flow::V0::Models::DeliveryWindow.new(r) end |