This pull request introduces a new RateLimitException class to handle rate limiting errors from the OpenAI service and updates the AIChatService to use this new exception. Additionally, it includes comprehensive unit tests for the new exception class.
This pull request introduces a new
RateLimitException
class to handle rate limiting errors from the OpenAI service and updates theAIChatService
to use this new exception. Additionally, it includes comprehensive unit tests for the new exception class.This PR works towards #8
Exception Handling Enhancements:
src/main/java/com/penguineering/hareairis/ai/AIChatService.java
: Added logic to throwRateLimitException
when the response status code is 429.New Exception Class:
src/main/java/com/penguineering/hareairis/ai/RateLimitException.java
: IntroducedRateLimitException
class to encapsulate details about rate limiting errors, including parsing of theRetry-After
header.Unit Tests:
src/test/java/com/penguineering/hareairis/ai/RateLimitExceptionTest.java
: Added unit tests forRateLimitException
to validate its construction and behavior, including scenarios with and without theRetry-After
header, and handling of invalid headers.