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.



4305
4306
4307
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 4305

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.



4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 4315

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.from_json(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::RatecardEstimate.from_json(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.



4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 4328

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::RatecardEstimate.from_json(x) }
end