class Acenda::Response
Public Class Methods
new(response, url="", params=[], debug = false)
click to toggle source
# File lib/acenda-client.rb, line 16 def initialize(response, url="", params=[], debug = false) @logger = Logger.new(STDOUT) @url = url @params = params @response = treat_response(response) @logger.info "Acenda:: response body:" if debug == true @logger.info response.body if debug == true @logger.info "Acenda:: response code:" if debug == true @logger.info response.code if debug == true puts "\r\n" if debug == true end
Public Instance Methods
get_code()
click to toggle source
# File lib/acenda-client.rb, line 45 def get_code() raise Acenda::APIErrorHTTP, "Request didn't go through and error cannot be parsed." if @response[:code].to_i == 0 return @response[:code].to_i end
get_number()
click to toggle source
# File lib/acenda-client.rb, line 41 def get_number() return @response[:num_total] end
get_params()
click to toggle source
# File lib/acenda-client.rb, line 33 def get_params() return @params end
get_result()
click to toggle source
# File lib/acenda-client.rb, line 37 def get_result() return @response[:result] end
get_status()
click to toggle source
# File lib/acenda-client.rb, line 50 def get_status() return @response[:status] end
get_url()
click to toggle source
# File lib/acenda-client.rb, line 29 def get_url() return @url end
Private Instance Methods
symbolize_result(source)
click to toggle source
# File lib/acenda-client.rb, line 73 def symbolize_result(source) dest = source.is_a?(Array) ? [] : {} source.each_with_index { |(key,value), index| k = key.is_a?(String) ? key.to_sym : key if value.is_a? Hash or value.is_a? Array dest[k] = symbolize_result(value) else dest[k] = value end } if source.is_a? Hash source.each_with_index { |value, index| dest[index] = symbolize_result(value) } if source.class == Array return dest end
treat_response(http_response)
click to toggle source
# File lib/acenda-client.rb, line 56 def treat_response(http_response) begin if http_response.class == String return symbolize_result(JSON.parse(http_response)) else return { :result => symbolize_result(JSON.parse(http_response.body)), :code => http_response.code().to_i, :num_total => 1, :status => http_response.message() } end rescue JSON::ParserError => e raise Acenda::APIErrorHTTP, "JSON response is not a good format for query #{@url.to_s} and params #{@params.to_json}" end end