Class: Papapi::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/papapi/response.rb

Direct Known Subclasses

FormResponse, GridResponse

Constant Summary collapse

REMOVE_VARS =
['name', 'correspondsApi', 'language']

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(http_response, request) ⇒ Response

Returns a new instance of Response.



8
9
10
11
12
13
# File 'lib/papapi/response.rb', line 8

def initialize (http_response, request)
  @http_response = http_response
  @request = request
  @responses = []
  check_for_errors
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



6
7
8
# File 'lib/papapi/response.rb', line 6

def request
  @request
end

#responsesObject (readonly)

Returns the value of attribute responses.



5
6
7
# File 'lib/papapi/response.rb', line 5

def responses
  @responses
end

Instance Method Details

#parsedObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/papapi/response.rb', line 15

def parsed
  return @parsed if @parsed
  if @http_response.is_a? Net::HTTPResponse
    parsed_response = JSON.parse(@http_response.body)
    @parsed = parsed_response.shift

    #handle multi responses
    @request.requests.each do |req|
      resp = parsed_response.shift
      @responses << req.response(resp) if resp
    end
  else
    @parsed = @http_response
  end
  @parsed
end

#to_hObject



32
33
34
35
36
37
38
39
# File 'lib/papapi/response.rb', line 32

def to_h
  h = {}
  parsed.each_with_index do |p, index|
    next if index == 0
    h[p[0].to_sym] = p[1]
  end
  h
end