Class: IngramMicro::Transmission
- Inherits:
-
Object
- Object
- IngramMicro::Transmission
show all
- Defined in:
- lib/ingram_micro/transmission.rb
Constant Summary
collapse
- XSD =
{
'sales-order-submission' => 'outbound/BPXML-SalesOrder.xsd',
'shipment-status' => 'outbound/BPXML-ShipmentStatus.xsd',
'return-authorization' => 'outbound/BPXML-ReturnAuthorization.xsd',
'standard-response' => 'outbound/BPXML-StandardResponse.xsd',
'load-reject' => 'inbound/BPXML-LoadReject.xsd',
'load-success' => 'inbound/BPXML-LoadSuccess.xsd',
'return-receipt' => 'inbound/BPXML-ReturnReceipt.xsd',
'ship-advice' => 'inbound/BPXML-ShipAdvice.xsd'
}
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}) ⇒ Transmission
Returns a new instance of Transmission.
16
17
18
|
# File 'lib/ingram_micro/transmission.rb', line 16
def initialize(options={})
@errors = []
end
|
Instance Attribute Details
#errors ⇒ Object
Returns the value of attribute errors.
14
15
16
|
# File 'lib/ingram_micro/transmission.rb', line 14
def errors
@errors
end
|
#transaction_name ⇒ Object
Returns the value of attribute transaction_name.
14
15
16
|
# File 'lib/ingram_micro/transmission.rb', line 14
def transaction_name
@transaction_name
end
|
Instance Method Details
#add_transaction_info(builder) ⇒ Object
41
42
43
44
45
|
# File 'lib/ingram_micro/transmission.rb', line 41
def add_transaction_info(builder)
builder.send('transactionInfo') do
builder.send('eventID')
end
end
|
#order_builder ⇒ Object
32
33
34
35
|
# 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? ⇒ Boolean
20
21
22
23
24
25
26
27
28
29
30
|
# 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 ⇒ Object
51
52
53
54
|
# 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 ⇒ Object
47
48
49
|
# File 'lib/ingram_micro/transmission.rb', line 47
def submit_request
send_request if schema_valid?
end
|
#xml_builder ⇒ Object
37
38
39
|
# File 'lib/ingram_micro/transmission.rb', line 37
def xml_builder
raise Exception('xml_builder needs to be implemented in subclass')
end
|