Sha256: 888d8583a42eef38a4736e619b7bd4eed5f1e828873fdcb24d25a3447566fe27

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

module Finix

  class ResourceErrors < ::StandardError
    attr_reader :response
    attr_reader :errors
    attr_reader :code

    def initialize(response=nil)
      @response = response
      @errors = []
      unless response.nil?
        @code = response[:status].to_i
        @response[:body]['_embedded']['errors'].each { |error| @errors.push Utils.eval_class(self, 'ResourceError').new error}
      end
    end

    def to_s
      "#{@errors}"
    end

  end

  class ResourceError < ::StandardError
    attr_reader :attributes

    def initialize(error = {})
      @attributes = {}
      @attributes = @attributes.merge error
    end

    def to_s
      "#{self.class.name.split('::').last || ''} #{@attributes}"
    end
  end

  class BadRequest < ResourceErrors; end
  class Unauthorized < ResourceErrors; end
  class PaymentRequired < ResourceErrors; end
  class Forbidden < ResourceErrors; end
  class NotFound < ResourceErrors; end
  class MethodNotAllowed < ResourceErrors; end
  class UnprocessableEntity < ResourceErrors; end
  class InternalServerError < ResourceErrors; end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
finix-0.15 lib/finix/error.rb