From 6d1ccac8f166db2b6b7263eb415bb50a2228f8a4 Mon Sep 17 00:00:00 2001 From: Dyego Costa Date: Thu, 8 Aug 2024 10:32:24 -0300 Subject: [PATCH] Map 429 api error to exception (#262) --- lib/castle/core/process_response.rb | 3 ++- lib/castle/errors.rb | 4 ++++ spec/lib/castle/core/process_response_spec.rb | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/castle/core/process_response.rb b/lib/castle/core/process_response.rb index 714a302..6afed8f 100644 --- a/lib/castle/core/process_response.rb +++ b/lib/castle/core/process_response.rb @@ -9,7 +9,8 @@ module ProcessResponse 401 => Castle::UnauthorizedError, 403 => Castle::ForbiddenError, 404 => Castle::NotFoundError, - 419 => Castle::UserUnauthorizedError + 419 => Castle::UserUnauthorizedError, + 429 => Castle::TooManyRequestsError }.freeze INVALID_REQUEST_TOKEN = 'invalid_request_token' diff --git a/lib/castle/errors.rb b/lib/castle/errors.rb index b7bdbbb..0e99f4f 100644 --- a/lib/castle/errors.rb +++ b/lib/castle/errors.rb @@ -61,6 +61,10 @@ class InvalidRequestTokenError < Castle::ApiError class UnauthorizedError < Castle::ApiError end + # api error too many requests 429 + class TooManyRequestsError < Castle::ApiError + end + # all internal server errors class InternalServerError < Castle::ApiError end diff --git a/spec/lib/castle/core/process_response_spec.rb b/spec/lib/castle/core/process_response_spec.rb index 20de4b3..4f2d74d 100644 --- a/spec/lib/castle/core/process_response_spec.rb +++ b/spec/lib/castle/core/process_response_spec.rb @@ -96,6 +96,7 @@ it_behaves_like 'response_failed', '404', Castle::NotFoundError it_behaves_like 'response_failed', '419', Castle::UserUnauthorizedError it_behaves_like 'response_failed', '422', Castle::InvalidParametersError + it_behaves_like 'response_failed', '429', Castle::TooManyRequestsError it_behaves_like 'response_failed', '499', Castle::ApiError it_behaves_like 'response_failed', '500', Castle::InternalServerError end