Class: NetProspex::Middleware::RaiseExceptions

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/netprospex/middleware/raise_exceptions.rb

Instance Method Summary collapse

Instance Method Details

#call(environment) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 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