Module: ServiceClient::Errors

Included in:
Response
Defined in:
lib/service_client/errors.rb

Overview

Errors module

Defined Under Namespace

Classes: BadGatewayError, BadRequestError, BaseError, BlockedByWindowsParentalControlsError, ClientClosedRequestError, ConflictError, EnhanceYourCalmError, ExpectationFailedError, FailedDependencyError, ForbiddenError, GatewayTimeoutError, GoneError, HTTPVersionNotSupportedError, InsufficientStorageError, InternalServerError, LengthRequiredError, LockedError, LoopDetectedError, MethodNotAllowedError, NetworkAuthenticationRequiredError, NetworkConnectTimeoutError, NetworkReadTimeoutError, NoResponseError, NotAcceptableError, NotExtendedError, NotFoundError, NotImplementedError, PaymentRequiredError, PreconditionFailedError, PreconditionRequiredError, ProxyAuthenticationRequiredError, RequestEntityTooLargeError, RequestHeaderFieldsTooLargeError, RequestTimeoutError, RequestURITooLongError, RequestedRangeNotSatisfiableError, RetryWithError, ServiceUnavailableError, TooManyRequestsError, UnauthorizedError, UnavailableForLegalReasonsError, UnprocessableEntityError, UnsupportedMediaTypeError, UpgradeRequiredError, VariantAlsoNegotiatesError

Constant Summary collapse

ERRORS =
{
  '400': BadRequestError,
  '401': UnauthorizedError,
  '402': PaymentRequiredError,
  '403': ForbiddenError,
  '404': NotFoundError,
  '405': MethodNotAllowedError,
  '406': NotAcceptableError,
  '407': ProxyAuthenticationRequiredError,
  '408': RequestTimeoutError,
  '409': ConflictError,
  '410': GoneError,
  '411': LengthRequiredError,
  '412': PreconditionFailedError,
  '413': RequestEntityTooLargeError,
  '414': RequestURITooLongError,
  '415': UnsupportedMediaTypeError,
  '416': RequestedRangeNotSatisfiableError,
  '417': ExpectationFailedError,
  '420': EnhanceYourCalmError,
  '422': UnprocessableEntityError,
  '423': LockedError,
  '424': FailedDependencyError,
  '426': UpgradeRequiredError,
  '428': PreconditionRequiredError,
  '429': TooManyRequestsError,
  '431': RequestHeaderFieldsTooLargeError,
  '444': NoResponseError,
  '449': RetryWithError,
  '450': BlockedByWindowsParentalControlsError,
  '451': UnavailableForLegalReasonsError,
  '499': ClientClosedRequestError,
  '500': InternalServerError,
  '501': NotImplementedError,
  '502': BadGatewayError,
  '503': ServiceUnavailableError,
  '504': GatewayTimeoutError,
  '505': HTTPVersionNotSupportedError,
  '506': VariantAlsoNegotiatesError,
  '507': InsufficientStorageError,
  '508': LoopDetectedError,
  '510': NotExtendedError,
  '511': NetworkAuthenticationRequiredError,
  '598': NetworkReadTimeoutError,
  '599': NetworkConnectTimeoutError
}.freeze

Instance Method Summary collapse

Instance Method Details

#raise_error(code, response) ⇒ void

This method returns an undefined value.

Raises an error based on the given HTTP response.

raise [BaseError] The error that corresponds to the given HTTP response code.

Raises:



167
168
169
170
171
# File 'lib/service_client/errors.rb', line 167

def raise_error(code, response)
  raise BaseError.new('Unknown error', response) if [code, response].any?(&:nil?)

  raise ERRORS[code.to_sym].new(ERRORS[code.to_sym].class.name, response)
end