Sha256: ae7598e078f19e40836d366c72963e6e0f83e097c3bf6aa1310d19f6a79244cb

Contents?: true

Size: 1.23 KB

Versions: 2

Compression:

Stored size: 1.23 KB

Contents

module SimpleShipping::Ups
  # UPS request to void shipment.
  class VoidRequest < Request

    # @param credentials [Hash]
    # @param shipment_identification_number [String]
    # @param options [Hash]
    def initialize(credentials, shipment_identification_number, options = {})
      @credentials                    = credentials
      @shipment_identification_number = shipment_identification_number
      @tracking_number                = options[:tracking_number]
      @options                        = options
      @type                           = :process_void
    end

    # Build a request from a {Shipment shipment} object.
    def body
      {
        'common:Request' => {
          'common:RequestOption' => REQUEST_OPTION
        },
        'VoidShipment' => void_shipment,
        :order!        => ['common:Request', 'VoidShipment']
      }
    end

    # Data for VoidShipment.
    #
    # @return [Hash]
    def void_shipment
      data = { 'ShipmentIdentificationNumber' => @shipment_identification_number }

      if @tracking_number
        data['TrackingNumber'] = @tracking_number
        data[:order!]          = ['ShipmentIdentificationNumber', 'TrackingNumber']
      end

      data
    end
    private :void_shipment
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
simple_shipping-0.4.7 lib/simple_shipping/ups/void_request.rb
simple_shipping-0.4.6 lib/simple_shipping/ups/void_request.rb