Sha256: 5f212c636e09252f685443dc27b631f98918e4b0c10fd44e8e78f99eb92837f0
Contents?: true
Size: 1.54 KB
Versions: 1
Compression:
Stored size: 1.54 KB
Contents
# frozen_string_literal: true require_relative 'errors' module Evervault module Errors class LegacyErrorMap def self.raise_errors_on_failure(status_code, body, headers) return if status_code < 400 case status_code when 404 raise EvervaultError, 'Resource not found' when 400 raise EvervaultError, 'Bad request' when 401 raise EvervaultError, 'Unauthorized' when 403 if (headers.include? 'x-evervault-error-code') && (headers['x-evervault-error-code'] == 'forbidden-ip-error') raise ForbiddenIPError, 'IP is not present in Cage whitelist' end raise EvervaultError, 'Forbidden' when 500 raise EvervaultError, 'Server error' when 502 raise EvervaultError, 'Bad gateway error' when 503 raise EvervaultError, 'Service unavailable' else raise EvervaultError, message_for_unexpected_error_without_type(body) end end private def message_for_unexpected_error_without_type(error_details) if error_details.nil? return( 'An unexpected error occurred without message or status code. Please contact Evervault support' ) end message = error_details['message'] status_code = error_details['statusCode'] "An unexpected error occured. It occurred with the message: #{ message } and http_code: '#{status_code}'. Please contact Evervault support" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
evervault-3.0.1 | lib/evervault/errors/legacy_error_map.rb |