class ParcelApi::ShippingOptions

Returns the shipping options and rates available depending on customer, pick up and destination addresses and parcel dimensions and weight. Both domestic and international.

Constants

DOMESTIC_URL
INTERNATIONAL_URL

Public Class Methods

new(connection=nil) click to toggle source

Creates a new ParcelApi::ShippingOptions instance.

# File lib/parcel_api/shipping_options.rb, line 13
def initialize(connection=nil)
  @connection ||= connection || ParcelApi::Client.connection
end

Public Instance Methods

get_domestic(parcel_params) click to toggle source

Search for Domestic (NZ) Shipping Options @param parcel_params [Hash] parcel parameters @return [Array] return array of shipping options

# File lib/parcel_api/shipping_options.rb, line 21
def get_domestic(parcel_params)
  response = @connection.get DOMESTIC_URL, params: parcel_params
  options = response.parsed.tap do |so|
    so.delete('success')
    so.delete('message_id')
  end
  RecursiveOpenStruct.new(options, recurse_over_arrays: true)
end
get_international(parcel_params) click to toggle source

Search for International Shipping Options @param parcel_params [Hash] parcel parameters @return [Array] return array of shipping options

# File lib/parcel_api/shipping_options.rb, line 34
def get_international(parcel_params)
  response = @connection.get INTERNATIONAL_URL, params: parcel_params
  options = response.parsed.tap do |so|
    so.delete('success')
    so.delete('message_id')
  end
  RecursiveOpenStruct.new(options, recurse_over_arrays: true)
end