class DhlExpressGlobal::Request::Delete

Attributes

dispatch_confirmation_number[R]
pickup_country[R]
pickup_date[R]
reason_code[R]
requestor_name[R]

Public Class Methods

new(credentials, options = {}) click to toggle source
# File lib/dhl_express_global/request/delete.rb, line 9
def initialize(credentials, options = {})
  requires!(options, :pickup_date, :pickup_country, :dispatch_confirmation_number, :requestor_name)
  @credentials = credentials
  @pickup_date, @pickup_country, @dispatch_confirmation_number, @requestor_name = options[:pickup_date], options[:pickup_country], options[:dispatch_confirmation_number], options[:requestor_name]
  @reason_code = options[:reason_code] || "001"
end

Public Instance Methods

process_request() click to toggle source
# File lib/dhl_express_global/request/delete.rb, line 16
def process_request
  api_response = self.class.post api_url, :body => build_xml, :headers => headers
  puts api_response if @debug
  response = parse_response(api_response)
  unless success?(response)
    failure_response(response)
  end
end

Private Instance Methods

build_xml() click to toggle source
# File lib/dhl_express_global/request/delete.rb, line 27
def build_xml
  builder = Nokogiri::XML::Builder.new do |xml|
    xml[:soapenv].Envelope( 'xmlns:soapenv' => "http://schemas.xmlsoap.org/soap/envelope/", 
                            'xmlns:del' => "http://scxgxtt.phx-dc.dhl.com/euExpressRateBook/ShipmentMsgRequest") {
      add_ws_authentication_header(xml)
      xml[:soapenv].Body {
        xml[:del].DeleteRequest {
          xml.PickupDate {
            xml.parent.namespace = nil
            xml.text pickup_date
          }
          xml.PickupCountry {
            xml.parent.namespace = nil
            xml.text pickup_country
          }
          xml.DispatchConfirmationNumber {
            xml.parent.namespace = nil
            xml.text dispatch_confirmation_number
          }
          xml.RequestorName {
            xml.parent.namespace = nil
            xml.text requestor_name
          }
          xml.Reason {
            xml.parent.namespace = nil
            xml.text reason_code
          }
        }
      }
    }
  end
  builder.doc.root.to_xml
end
failure_response(response) click to toggle source
# File lib/dhl_express_global/request/delete.rb, line 61
def failure_response(response)
  error_message = response[:envelope][:body][:delete_response][:notification][:message]
  raise RateError, error_message
end
headers() click to toggle source
Calls superclass method DhlExpressGlobal::Request::Base#headers
# File lib/dhl_express_global/request/delete.rb, line 71
def headers
  super.merge!('SOAPAction' => 'euExpressRateBook_providerServices_ShipmentHandlingServices_Binder_deleteShipmentRequest')
end
success?(response) click to toggle source
# File lib/dhl_express_global/request/delete.rb, line 67
def success?(response)
  response[:envelope][:body][:delete_response] && ( response[:envelope][:body][:delete_response][:notification][:code] == "0" )
end