class IngramMicro::InboundTransmissionFactory
Attributes
request_body_string[R]
Public Class Methods
from_xml(request_body_string)
click to toggle source
# File lib/ingram_micro/inbound_transmission_factory.rb, line 6 def self.from_xml(request_body_string) new(request_body_string).from_xml end
new(request_body_string)
click to toggle source
# File lib/ingram_micro/inbound_transmission_factory.rb, line 10 def initialize(request_body_string) begin Nokogiri::XML(request_body_string) do |config| config.options = Nokogiri::XML::ParseOptions::STRICT | Nokogiri::XML::ParseOptions::NONET end rescue Nokogiri::SyntaxError => e raise Error, "#{self.class.name} received malformed XML: #{request_body_string}: #{e.message}" end @request_body_string = request_body_string end
Public Instance Methods
from_xml()
click to toggle source
# File lib/ingram_micro/inbound_transmission_factory.rb, line 22 def from_xml inbound_transmission_class.new(request_hash) end
Private Instance Methods
inbound_transmission_class()
click to toggle source
# File lib/ingram_micro/inbound_transmission_factory.rb, line 28 def inbound_transmission_class case transaction_name when 'sales-order-success' IngramMicro::SalesOrderSuccess when 'sales-order-rejection' IngramMicro::SalesOrderRejection when 'ship-advice' IngramMicro::ShipAdvice when 'inventory-synchronization' IngramMicro::InventorySync else raise Error, "#{self.class.name} received unrecognized transaction-name: #{transaction_name}" end end
request_hash()
click to toggle source
# File lib/ingram_micro/inbound_transmission_factory.rb, line 47 def request_hash @request_hash ||= Nori.new.parse(request_body_string) end
transaction_name()
click to toggle source
# File lib/ingram_micro/inbound_transmission_factory.rb, line 43 def transaction_name request_hash['message']['message_header']['transaction_name'] end