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