def call(request)
      # == Check presence of these essential attributes ==
      unless server_name and endpoint
        raise Emailvision::Exception, "Cannot make an API call without a server name and an endpoint !"
      end

      with_retries do
        logger.send "#{request.uri} with query : #{request.parameters} and body : #{request.body}"

        response = perform_request(request)

        Emailvision::Response.new(response, logger).extract        
      end
    end
def call(request)
      # == Check presence of these essential attributes ==
      unless server_name and endpoint
        raise Emailvision::Exception, "Cannot make an API call without a server name and an endpoint !"
      end

      with_retries do
        logger.send "#{request.uri} with query : #{request.parameters} and body : #{request.body}"

        response = perform_request(request)

        Emailvision::Response.new(response, logger).extract        
      end
    end
----------------- END Pre-configured methods -----------------
 Perform an API call

 @param [Emailvsion::Request] Request to perform