Class: Evervault::Errors::ErrorMap

Inherits:
Object
  • Object
show all
Defined in:
lib/evervault/errors/error_map.rb

Class Method Summary collapse

Class Method Details

.raise_errors_on_failure(status_code, body, headers) ⇒ 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
32
# File 'lib/evervault/errors/error_map.rb', line 6

def self.raise_errors_on_failure(status_code, body, headers)
  return if status_code < 400
  case status_code
  when 404
    raise ResourceNotFoundError.new("Resource Not Found")
  when 400
    raise BadRequestError.new("Bad request")
  when 401
    raise AuthenticationError.new("Unauthorized")
  when 403
    if (headers.include? "x-evervault-error-code") && (headers["x-evervault-error-code"] == "forbidden-ip-error")
      raise ForbiddenIPError.new("IP is not present in Cage whitelist")
    else
      raise AuthenticationError.new("Forbidden")
    end
  when 500
    raise ServerError.new("Server Error")
  when 502
    raise BadGatewayError.new("Bad Gateway Error")
  when 503
    raise ServiceUnavailableError.new("Service Unavailable")
  else
    raise UnexpectedError.new(
            self.message_for_unexpected_error_without_type(body)
          )
  end
end