Sha256: b8564f44a66901640b920e288199b1cb7fdf6009cb6d23fb4eadc6048edd0b01

Contents?: true

Size: 735 Bytes

Versions: 7

Compression:

Stored size: 735 Bytes

Contents

module KB
  class Error < StandardError
    attr_accessor :status_code, :body, :message

    def initialize(status_code = nil, body = nil, error = nil)
      super(error)
      @status_code = status_code
      @body = body
      @message = "Received Status: #{status_code}\n#{body}"
      @message = error.message if error.present? && body.nil? && status_code.nil?
      set_backtrace error.backtrace if error
    end

    def self.from_faraday(error)
      case error.response&.[](:status)
      when 404
        ResourceNotFound
      when 409
        ConflictError
      when 422
        UnprocessableEntityError
      else
        self
      end.new(error.response&.[](:status), error.response&.[](:body), error)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
barkibu-kb-0.27.0 lib/kb/errors/error.rb
barkibu-kb-0.26.0 lib/kb/errors/error.rb
barkibu-kb-0.25.0 lib/kb/errors/error.rb
barkibu-kb-0.24.1 lib/kb/errors/error.rb
barkibu-kb-0.24.0 lib/kb/errors/error.rb
barkibu-kb-0.23.0 lib/kb/errors/error.rb
barkibu-kb-0.22.0 lib/kb/errors/error.rb