class Fleck::Client::Response

Attributes

body[RW]
deprecated[RW]
errors[RW]
headers[RW]
status[RW]

Public Class Methods

new(payload) click to toggle source
# File lib/fleck/client/response.rb, line 7
def initialize(payload)
  @data       = Oj.load(payload, mode: :compat).to_hash_with_indifferent_access.filtered!
  @status     = @data["status"]
  @headers    = @data["headers"] || {}
  @body       = @data["body"]
  @errors     = @data["errors"] || []
  @deprecated = !!@data["deprecated"]
end

Public Instance Methods

deprecated?() click to toggle source
# File lib/fleck/client/response.rb, line 16
def deprecated?
  @deprecated
end
inspect() click to toggle source
# File lib/fleck/client/response.rb, line 43
def inspect
  self.to_s
end
to_json(filter: false) click to toggle source
# File lib/fleck/client/response.rb, line 20
def to_json(filter: false)
  data = {
    "status"     => @status,
    "errors"     => @errors,
    "headers"    => @headers,
    "body"       => @body,
    "deprecated" => @deprecated
  }
  data.filter! if filter

  return Oj.dump(data, mode: :compat)
rescue => e
  logger.error e.inspect + "\n" + e.backtrace.join("\n")
  return Oj.dump({
    "status" => 500,
    "errors" => ['Internal Server Error', 'Failed to dump the response to JSON']
  }, mode: :compat)
end
to_s() click to toggle source
# File lib/fleck/client/response.rb, line 39
def to_s
  return "#<#{self.class} #{self.to_json(filter: true)}>"
end