class Emailvision::Response

Response object

This class aims to extract the response from Emailvision

Attributes

logger[R]
response[R]

Public Class Methods

new(response, logger) click to toggle source
# File lib/emailvision/response.rb, line 11
def initialize(response, logger)
  @response = response
  @logger = logger
end

Public Instance Methods

extract() click to toggle source
# File lib/emailvision/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 = Emailvision::MalformedResponse.new(error)
  raise wrapped_error, "Error when parsing response body"
end

Private Instance Methods

content() click to toggle source
# File lib/emailvision/response.rb, line 43
def content
  @content ||= Crack::XML.parse(response.body)
end
handle_errors() click to toggle source
# File lib/emailvision/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 Emailvision::SessionError, content
  else
    raise Emailvision::RequestError, content
  end
end
http_code() click to toggle source
# File lib/emailvision/response.rb, line 47
def http_code
  response.header.code
end
succeed?() click to toggle source
# File lib/emailvision/response.rb, line 31
def succeed?
  (http_code == "200") and (content and content["response"])
end