class FavroApi::Response

Attributes

entities[RW]
limit[RW]
page[RW]
pages[RW]
request_id[RW]
response[RW]

Public Class Methods

new(opts = {}) click to toggle source
# File lib/favro_api/response.rb, line 9
def initialize(opts = {})
  self.response = opts.delete(:response)
end

Public Instance Methods

backend_identifier() click to toggle source
# File lib/favro_api/response.rb, line 35
def backend_identifier
  response.headers['x-favro-backend-identifier']
end
error?() click to toggle source
# File lib/favro_api/response.rb, line 13
def error?
  status >= 400
end
parse(type: nil) click to toggle source
# File lib/favro_api/response.rb, line 17
def parse(type: nil)
  self.entities =
    if type
      type.send(:parse, parsed_response['entities'])
    else
      parsed_response['entities']
    end
  self.pages      = parsed_response['pages']
  self.page       = parsed_response['page']
  self.limit      = parsed_response['limit']
  self.request_id = parsed_response['requestId']
  self
end
parsed_response() click to toggle source
# File lib/favro_api/response.rb, line 31
def parsed_response
  @parsed_response ||= JSON.parse(body)
end
ratelimit() click to toggle source
# File lib/favro_api/response.rb, line 39
def ratelimit
  {
    limit:     response.headers['x-ratelimit-limit'].to_i,
    remaining: response.headers['x-ratelimit-remaining'].to_i,
    reset:     Time.parse(response.headers['x-ratelimit-reset'])
  }
end