class Newgistics::Requests::CancelShipment
Attributes
response_handler[R]
shipment_cancellation[R]
Public Class Methods
new(shipment_cancellation, response_handler: nil)
click to toggle source
# File lib/newgistics/requests/cancel_shipment.rb, line 6 def initialize(shipment_cancellation, response_handler: nil) @shipment_cancellation = shipment_cancellation @response_handler = response_handler || default_response_handler end
Public Instance Methods
body()
click to toggle source
# File lib/newgistics/requests/cancel_shipment.rb, line 15 def body xml_builder.to_xml end
path()
click to toggle source
# File lib/newgistics/requests/cancel_shipment.rb, line 11 def path "/cancel_shipment.aspx?#{URI.encode_www_form(mandatory_params.merge(optional_params))}" end
perform()
click to toggle source
# File lib/newgistics/requests/cancel_shipment.rb, line 19 def perform Newgistics.api.post(self, response_handler) end
Private Instance Methods
api_key()
click to toggle source
# File lib/newgistics/requests/cancel_shipment.rb, line 42 def api_key Newgistics.configuration.api_key end
cancel_if_backorder(xml)
click to toggle source
# File lib/newgistics/requests/cancel_shipment.rb, line 58 def cancel_if_backorder(xml) xml.cancelIfBackorder shipment_cancellation.cancel_if_backorder end
cancel_if_in_process(xml)
click to toggle source
# File lib/newgistics/requests/cancel_shipment.rb, line 54 def cancel_if_in_process(xml) xml.cancelIfInProcess shipment_cancellation.cancel_if_in_process end
default_response_handler()
click to toggle source
# File lib/newgistics/requests/cancel_shipment.rb, line 25 def default_response_handler ResponseHandlers::CancelShipment.new(shipment_cancellation) end
mandatory_params()
click to toggle source
# File lib/newgistics/requests/cancel_shipment.rb, line 46 def mandatory_params { apiKey: api_key, shipmentID: shipment_cancellation.shipment_id, orderID: shipment_cancellation.order_id }.reject { |_k, v| v.nil? || v.empty? } end
optional_params()
click to toggle source
# File lib/newgistics/requests/cancel_shipment.rb, line 62 def optional_params { cancelIfInProcess: shipment_cancellation.cancel_if_in_process, cancelIfBackorder: shipment_cancellation.cancel_if_backorder }.reject { |_k, v| v.nil? } end
shipment_cancellation_xml(xml)
click to toggle source
# File lib/newgistics/requests/cancel_shipment.rb, line 35 def shipment_cancellation_xml(xml) xml.cancelShipment(mandatory_params) do cancel_if_in_process(xml) cancel_if_backorder(xml) end end
xml_builder()
click to toggle source
# File lib/newgistics/requests/cancel_shipment.rb, line 29 def xml_builder Nokogiri::XML::Builder.new do |xml| shipment_cancellation_xml(xml) end end