class Lipseys::Response

Public Class Methods

new(response) click to toggle source
# File lib/lipseys/response.rb, line 4
def initialize(response)
  @response = response

  case @response
  when Net::HTTPUnauthorized
    Lipseys::Error::NotAuthorized.new(@response.body)
  when Net::HTTPNotFound
    Lipseys::Error::NotFound.new(@response.body)
  when Net::HTTPNoContent
    Lipseys::Error::NoContent.new(@response.body)
  when Net::HTTPOK, Net::HTTPSuccess
    _data = (JSON.parse(@response.body) if @response.body.present?)

    @data = case
    when _data.is_a?(Hash)
      _data.deep_symbolize_keys
    when _data.is_a?(Array)
      _data.map(&:deep_symbolize_keys)
    end
  else
    raise Lipseys::Error::RequestError.new(@response.body)
  end
end

Public Instance Methods

[](key) click to toggle source
# File lib/lipseys/response.rb, line 28
def [](key)
  @data&.[](key)
end
body() click to toggle source
# File lib/lipseys/response.rb, line 32
def body
  @data
end
fetch(key) click to toggle source
# File lib/lipseys/response.rb, line 36
def fetch(key)
  @data.fetch(key)
end
success?() click to toggle source
# File lib/lipseys/response.rb, line 40
def success?
  !!self[:success] && self[:errors].empty?
end