class IngramMicro::Transmission

Constants

XSD

Attributes

errors[R]
transaction_name[R]

Public Class Methods

new(options={}) click to toggle source
# File lib/ingram_micro/transmission.rb, line 16
def initialize(options={})
  @errors = []
end

Public Instance Methods

add_transaction_info(builder) click to toggle source
# File lib/ingram_micro/transmission.rb, line 41
def add_transaction_info(builder)
  builder.send('transactionInfo') do
    builder.send('eventID')
  end
end
order_builder() click to toggle source
# File lib/ingram_micro/transmission.rb, line 32
def order_builder
  warn '[DEPRECATION] `order_builder` is deprecated.  Please use `xml_builder` instead.'
  xml_builder
end
schema_valid?() click to toggle source
# File lib/ingram_micro/transmission.rb, line 20
def schema_valid?
  xsd = Nokogiri::XML::Schema(File.read("#{IngramMicro::GEM_DIR}/xsd/" +
    XSD[self.class::TRANSMISSION_FILENAME]))
  valid = true
  xsd.validate(self.xml_builder.doc).each do |error|
    errors << error.message
    valid = false
  end
  errors.each { |error| puts 'XML VALIDATION ERROR: ' + error }
  valid
end
send_request() click to toggle source
# File lib/ingram_micro/transmission.rb, line 51
def send_request
  client = IngramMicro::Client.new
  client.post(self.xml_builder.to_xml)
end
submit_request() click to toggle source
# File lib/ingram_micro/transmission.rb, line 47
def submit_request
  send_request if schema_valid?
end
xml_builder() click to toggle source
# File lib/ingram_micro/transmission.rb, line 37
def xml_builder
  raise Exception('xml_builder needs to be implemented in subclass')
end