class NetProspex::Middleware::RaiseExceptions

Public Instance Methods

call(environment) click to toggle source
# File lib/netprospex/middleware/raise_exceptions.rb, line 6
def call(environment)
  @app.call(environment).on_complete do |env|
    next unless env[:body].is_a?(Hash) && env[:body][:response][:error]
    error = env[:body][:response][:error]
    case error[:code]
    when "ACL"
      raise NetProspex::AccessDenied.new(error[:message])
    when "AUTH"
      raise NetProspex::AuthenticationError.new(error[:message])
    when "DB"
      raise NetProspex::DatabaseError.new(error[:message])
    when "SS"
      raise NetProspex::SearchError.new(error[:message])
    when "PAG"
      raise NetProspex::PaginationError.new(error[:message])
    when "REQ"
      raise NetProspex::ArgumentMissing.new(error[:message])
    when "ZBAL"
      raise NetProspex::ZeroBalanceError.new(error[:message])
    when "FAULT","UNX"
      raise NetProspex::ApiError.new(error[:message])
    else
      raise NetProspex::ApiError.new(error[:message])
    end
  end
end