Class: Io::Flow::V0::Clients::RatecardEstimates

Inherits:
Object
  • Object
show all
Defined in:
lib/flow_commerce/flow_api_v0_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ RatecardEstimates

Returns a new instance of RatecardEstimates.



4440
4441
4442
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 4440

def initialize(client)
  @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client)
end

Instance Method Details

#post(organization, ratecard_estimate_form, incoming = {}) ⇒ Object

Endpoint to get shipment cost estimates based on applicable rate cards. An origin and destination address must be provided. Final amounts are based on either gravitational weight or dimensional weight. When estimating based off gravitational weight, the weight field must be set. When estimating based off dimensional weight, then length/width/depth must be set. For either one, the appropriate unit of measurement must be given.



4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 4450

def post(organization, ratecard_estimate_form, incoming={})
  HttpClient::Preconditions.assert_class('organization', organization, String)
  opts = HttpClient::Helper.symbolize_keys(incoming)
  query = {
    :context => (x = opts.delete(:context); x.nil? ? nil : HttpClient::Preconditions.assert_class('context', x, String))
  }.delete_if { |k, v| v.nil? }
  (x = ratecard_estimate_form; x.is_a?(::Io::Flow::V0::Models::RatecardEstimateForm) ? x : ::Io::Flow::V0::Models::RatecardEstimateForm.new(x))
  r = @client.request("/#{CGI.escape(organization)}/ratecard_estimates").with_query(query).with_json(ratecard_estimate_form.to_json).post
  r.map { |x| ::Io::Flow::V0::Models::RatecardEstimateV4.new(x) }
end

#post_summaries(organization, ratecard_estimate_summary_form, incoming = {}) ⇒ Object

Endpoint to get a summary of the shipment estimates based on applicable rate cards. An origin and destination country must be provided.



4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 4463

def post_summaries(organization, ratecard_estimate_summary_form, incoming={})
  HttpClient::Preconditions.assert_class('organization', organization, String)
  opts = HttpClient::Helper.symbolize_keys(incoming)
  query = {
    :context => (x = opts.delete(:context); x.nil? ? nil : HttpClient::Preconditions.assert_class('context', x, String))
  }.delete_if { |k, v| v.nil? }
  (x = ratecard_estimate_summary_form; x.is_a?(::Io::Flow::V0::Models::RatecardEstimateSummaryForm) ? x : ::Io::Flow::V0::Models::RatecardEstimateSummaryForm.new(x))
  r = @client.request("/#{CGI.escape(organization)}/ratecard_estimates/summaries").with_query(query).with_json(ratecard_estimate_summary_form.to_json).post
  r.map { |x| ::Io::Flow::V0::Models::RatecardEstimateV4.new(x) }
end