class MWS::API::Feeds::Envelope
Public Class Methods
new(params = {})
click to toggle source
# File lib/mws/api/feeds/envelope.rb, line 6 def initialize(params = {}) if params[:type].to_s == 'text' @type = :text @envelope = params[:message] else @type = :xml @envelope = build_envelope(params) end validate! unless params[:skip_schema_validation] || @type == :text end
Public Instance Methods
errors()
click to toggle source
# File lib/mws/api/feeds/envelope.rb, line 50 def errors @errors ||= xsd.validate(Nokogiri::XML(self)) end
md5()
click to toggle source
# File lib/mws/api/feeds/envelope.rb, line 25 def md5 Digest::MD5.base64digest(self) end
to_s()
click to toggle source
# File lib/mws/api/feeds/envelope.rb, line 33 def to_s if @type == :text result = @envelope else result = @envelope.target! result.gsub!('<Items type="array">', '') result.gsub!('</Items>', '') result.gsub!('<Inventories type="array">', '') result.gsub!('</Inventories>', '') end result end
to_str()
click to toggle source
# File lib/mws/api/feeds/envelope.rb, line 29 def to_str to_s end
valid?()
click to toggle source
# File lib/mws/api/feeds/envelope.rb, line 17 def valid? errors.count == 0 end
validate!()
click to toggle source
# File lib/mws/api/feeds/envelope.rb, line 21 def validate! fail "Invalid XML:\n" + errors.join("\n") unless valid? end
xsd()
click to toggle source
# File lib/mws/api/feeds/envelope.rb, line 46 def xsd Nokogiri::XML::Schema(File.open(File.join(MWS::API::Feeds::XSD_PATH, 'amzn-envelope.xsd'))) end
Private Instance Methods
build_envelope(params = {})
click to toggle source
rubocop:disable all
# File lib/mws/api/feeds/envelope.rb, line 57 def build_envelope(params = {}) xml = Builder::XmlMarkup.new xml.AmazonEnvelope do xml.Header do xml.DocumentVersion '1.01' xml.MerchantIdentifier params[:merchant_id] end xml.MessageType params[:message_type].to_s.camelize xml.PurgeAndReplace params[:purge_and_replace] || false messages_array(params).each { |message| xml << message_xml(message) } end; xml end
get_array(parameter)
click to toggle source
# File lib/mws/api/feeds/envelope.rb, line 74 def get_array(parameter) [parameter].flatten.compact end
message_xml(message)
click to toggle source
# File lib/mws/api/feeds/envelope.rb, line 78 def message_xml(message) message.to_xml(skip_instruct: true, root: 'Message') end
messages_array(params)
click to toggle source
# File lib/mws/api/feeds/envelope.rb, line 70 def messages_array(params) get_array(params[:message]) + get_array(params[:messages]) end