class AxiomusApi::Session

Attributes

test[R]

Public Class Methods

new(uid, ukey, test = true) { |self| ... } click to toggle source
# File lib/axiomus_api/session.rb, line 14
def initialize(uid, ukey, test = true)
  @test = test
  @uid = uid
  @ukey = ukey

  if(block_given?)
    yield self
  end
end

Public Instance Methods

get_regions() click to toggle source
# File lib/axiomus_api/session.rb, line 34
def get_regions()
  xml_request = create_request(:get_regions)
  xml_request.auth.ukey = @ukey
  response = send_request(xml_request)
  AxiomusApi::RegionsResponse.new (response.body)
end
get_version() click to toggle source
# File lib/axiomus_api/session.rb, line 59
def get_version
  xml_request = create_request(:get_version)
  xml_request.auth = nil
  response = send_request(xml_request)
  version_response = AxiomusApi::VersionResponse.new(response.body)
  version_response.version
end
send_order_request(mode, order) click to toggle source
# File lib/axiomus_api/session.rb, line 67
def send_order_request(mode, order)
  if(!order.valid?)
    error_msg = order.validation_errors.join('\n')
    logger.error(error_msg)
    raise AxiomusApi::Errors::ValidationError.new, order.validation_errors.join(error_msg)
  end

  xml_request = get_order_request(mode, order)
  response = send_request(xml_request)
  order_response = AxiomusApi::OrderResponse.new(response.body)

  if !order_response.success?
    log_response_error(order_response.error_message, xml_request.to_xml, response.body)
    raise AxiomusApi::Errors::RequestError.new(order_response.code), order_response.error_message
  end

  order_response
end
status(okey) click to toggle source
# File lib/axiomus_api/session.rb, line 41
def status(okey)
  xml_request = create_request(:status)
  xml_request.auth = nil
  xml_request.okey = okey
  response = send_request(xml_request)
  status_response = AxiomusApi::StatusResponse.new(response.body)
  status_response
end
status_list(okeys) click to toggle source
# File lib/axiomus_api/session.rb, line 50
def status_list(okeys)
  xml_request = create_request(:status_list)
  xml_request.auth = nil
  xml_request.okeys = okeys
  response = send_request(xml_request)
  status_response = AxiomusApi::StatusListResponse.new(response.body)
  status_response
end

Private Instance Methods

api_path() click to toggle source
# File lib/axiomus_api/session.rb, line 112
def api_path
  @test ? AxiomusApi::AXIOMUS_TEST_PATH : AxiomusApi::AXIOMUS_PROD_PATH
end
get_http_request(xml_request) click to toggle source
# File lib/axiomus_api/session.rb, line 116
def get_http_request(xml_request)
  res = ::Net::HTTP::Post.new(api_path)
  res.body = "data=#{xml_request.to_xml(true)}"
  res
end
get_order_request(mode, order) click to toggle source
# File lib/axiomus_api/session.rb, line 92
def get_order_request(mode, order)
  xml_request = create_request(mode)
  xml_request.auth.ukey = @ukey
  xml_request.order = order
  xml_request.prepare_checksum(@uid)
  xml_request
end
log_response_error(description, xml_request, xml_response) click to toggle source
# File lib/axiomus_api/session.rb, line 126
def log_response_error(description, xml_request, xml_response)
  logger.error(description)
  logger.error("Request body: #{xml_request}")
  logger.error("Response raw: #{xml_response}")
end
logger() click to toggle source
# File lib/axiomus_api/session.rb, line 122
def logger
  ::AxiomusApi.logger
end
send_request(xml_request) click to toggle source
# File lib/axiomus_api/session.rb, line 100
def send_request(xml_request)
  connection = Net::HTTP.new(AxiomusApi::AXIOMUS_HOST, AxiomusApi::AXIOMUS_PORT)
  http_request = get_http_request(xml_request)
  logger.info("Request to #{xml_request.mode}")
  logger.debug("Request body: #{xml_request.to_xml(true)}")
  response = connection.request(http_request)
  logger.info("Response: #{response.code}")
  logger.debug("Response raw: #{response.body}")
  response.body.gsub!(/^.*<\?xml/, '<?xml')
  response
end