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