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.



4093
4094
4095
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 4093

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.



4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 4103

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.



4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 4116

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