class Reactor::Cm::XmlRequest
Public Class Methods
new(xml)
click to toggle source
# File lib/reactor/cm/xml_request.rb, line 76 def initialize(xml) @xml = xml end
prepare() { |xml2| ... }
click to toggle source
# File lib/reactor/cm/xml_request.rb, line 25 def self.prepare access = Configuration::xml_access sanity_check(access) xml = XmlMarkup.new ret = nil xml.instruct! ret = xml.tag!('cm-payload', 'payload-id' =>'abcabc', 'timestamp' => Time.now.getutc.strftime('%Y%m%d%H%M%S'), 'version' => '6.7.3') do xml.tag!('cm-header') do xml.tag!('cm-sender', 'sender-id' => access[:id], 'name' => "ruby-simple-client") xml.tag!('cm-authentication', 'login' => access[:username], 'token' => token(access[:username],access[:secret])) end id = self.generate_id xml.tag!('cm-request', 'request-id' => id) do |xml2| yield xml2 if block_given? end end XmlRequest.new(ret) end
token(login, instance_secret)
click to toggle source
# File lib/reactor/cm/xml_request.rb, line 21 def self.token(login, instance_secret) Digest::MD5.hexdigest(login + instance_secret) end
Protected Class Methods
generate_id()
click to toggle source
# File lib/reactor/cm/xml_request.rb, line 65 def generate_id rand(10000) end
sanity_check(access)
click to toggle source
# File lib/reactor/cm/xml_request.rb, line 69 def sanity_check(access) raise Reactor::Cm::MissingCredentials if access[:username].nil? || access[:username].empty? end
Public Instance Methods
execute!()
click to toggle source
# File lib/reactor/cm/xml_request.rb, line 44 def execute! access = Configuration::xml_access payload = @xml res = Net::HTTP.new(access[:host], access[:port]).start do |http| req = Net::HTTP::Post.new('/xml') Reactor::Cm::LOGGER.log('REQUEST:') Reactor::Cm::LOGGER.log_xml(:request, payload) req.body = payload http.request(req) end Reactor::Cm::LOGGER.log('RESPONSE:') Reactor::Cm::LOGGER.log_xml(:response, res.body) response = XmlResponse.new(res.body) raise XmlSingleRequestError, response unless response.ok? response end