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
labels_link(orders)
click to toggle source
# File lib/axiomus_api/session.rb, line 86 def labels_link(orders) "http://axiomus.ru/system/control/_call.php?mode=label&order=#{orders.join(',')}" 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