module Unforlogistics::Core::Shipments

Public Instance Methods

cancel_shipment(code) click to toggle source
# File lib/unforlogistics/core/shipments.rb, line 20
def cancel_shipment(code)
  response = put_request("/shipments/#{code}/cancellation")

  get_persistance_response(response)
end
create_shipment(attrs={}) click to toggle source
# File lib/unforlogistics/core/shipments.rb, line 14
def create_shipment(attrs={})
  response = post_request('/shipments', attrs)

  get_persistance_response(response)
end
get_shipment(code) click to toggle source
# File lib/unforlogistics/core/shipments.rb, line 10
def get_shipment(code)
  get_request("/shipments/#{code}").body
end
get_shipments(filters={}) click to toggle source
# File lib/unforlogistics/core/shipments.rb, line 4
def get_shipments(filters={})
  response = get_request('/shipments', filters)

  get_paging_response(response)
end
quote_shipment(attrs={}) click to toggle source
# File lib/unforlogistics/core/shipments.rb, line 26
def quote_shipment(attrs={})
  response = post_request('/shipments/quote', attrs)
  results = response.body

  if response.headers.warning.nil?
    errors = []

    results.each do |result|
      result.price = BigDecimal.new(result.price)
      result.surcharge = BigDecimal.new(result.surcharge)
      result.total = BigDecimal.new(result.total)
    end
  else
    errors = response.headers.warning
  end

  OpenStruct.new({
    results: results,
    valid: errors.empty?,
    errors: errors
  })
end