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