class Smartfocus::Response
Response
object
This class aims to extract the response from Smartfocus
Attributes
logger[R]
response[R]
Public Class Methods
new(response, logger)
click to toggle source
# File lib/smartfocus/response.rb, line 11 def initialize(response, logger) @response = response @logger = logger end
Public Instance Methods
extract()
click to toggle source
# File lib/smartfocus/response.rb, line 16 def extract logger.receive(content.inspect) if succeed? response = content["response"]["result"] || content["response"] else handle_errors end rescue MultiXml::ParseError, REXML::ParseException => error wrapped_error = Smartfocus::MalformedResponse.new(error) raise wrapped_error, "Error when parsing response body" end
Private Instance Methods
content()
click to toggle source
# File lib/smartfocus/response.rb, line 43 def content @content ||= Crack::XML.parse(response.body) end
handle_errors()
click to toggle source
# File lib/smartfocus/response.rb, line 35 def handle_errors if content =~ /Your session has expired/ or content =~ /The maximum number of connection allowed per session has been reached/ raise Smartfocus::SessionError, content else raise Smartfocus::RequestError, content end end
http_code()
click to toggle source
# File lib/smartfocus/response.rb, line 47 def http_code response.header.code end
succeed?()
click to toggle source
# File lib/smartfocus/response.rb, line 31 def succeed? (http_code == "200") and (content and content["response"]) end