class SimpleShipping::Ups::VoidClient

Required credentials:

Usage

client = SimpleShipping::Ups::VoidClient.new(:username              => "USER NAME",
                                             :password              => "PASSWORD",
                                             :access_license_number => "LICENSE NUMBER")
client.request(shipper, recipient, package) # => #<SimpleShipping::Ups::Response ...>

Public Instance Methods

void_request(shipment_identification_number, options = {}) click to toggle source

Build VoidRequest and perform the request.

@param shipment_identification_number [String] @param options [Hash]

# File lib/simple_shipping/ups/void_client.rb, line 23
def void_request(shipment_identification_number, options = {})
  request = VoidRequest.new(@credentials, shipment_identification_number, options)
  execute(request)
end

Protected Instance Methods

client_options(options = {}) click to toggle source

@param [Hash] options Savon client options

# File lib/simple_shipping/ups/void_client.rb, line 29
def client_options(options = {})
  super.deep_merge(
    :namespaces => {
      # Savon parses have WSDL instead of XMLSchema which is not accepted by UPS
      # So we have to again set namespace explicitly :( -- aignatev 20130204
      'xmlns:void' => "http://www.ups.com/XMLSchema/XOLTWS/Void/v1.1"
    }
  )
end

Private Instance Methods

execute(request) click to toggle source

Perform ShipmentRequest to UPS service.

# File lib/simple_shipping/ups/void_client.rb, line 41
def execute(request)
  savon_response = @client.call(request.type, :message => request.body)
  log_response(savon_response)
  request.response(savon_response)
rescue Savon::SOAPFault => err
  raise SimpleShipping::RequestError.new(err)
end