Class: ParcelApi::ShippingOptions

Inherits:
Object
  • Object
show all
Defined in:
lib/parcel_api/shipping_options.rb

Overview

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

Constant Summary collapse

DOMESTIC_URL =
'/ShippingOptions/2.0/domestic'
INTERNATIONAL_URL =
'/ShippingOptions/2.0/international'

Instance Method Summary collapse

Constructor Details

#initialize(connection = nil) ⇒ ShippingOptions

Creates a new ParcelApi::ShippingOptions instance.



13
14
15
# File 'lib/parcel_api/shipping_options.rb', line 13

def initialize(connection=nil)
  @connection ||= connection || ParcelApi::Client.connection
end

Instance Method Details

#get_domestic(parcel_params) ⇒ Array

Search for Domestic (NZ) Shipping Options



21
22
23
24
25
26
27
28
# 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) ⇒ Array

Search for International Shipping Options



34
35
36
37
38
39
40
41
# 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