From ffee24d8ecd6008637456dacca086b08e9c3cf0b Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Sat, 29 Jun 2024 09:48:09 -0500 Subject: [PATCH] fix: use trygetvalues --- .../Models/AnthropicHeaders.cs | 55 ++++++++++++++++--- 1 file changed, 47 insertions(+), 8 deletions(-) diff --git a/src/AnthropicClient/Models/AnthropicHeaders.cs b/src/AnthropicClient/Models/AnthropicHeaders.cs index 0eaac8f..b2e08f2 100644 --- a/src/AnthropicClient/Models/AnthropicHeaders.cs +++ b/src/AnthropicClient/Models/AnthropicHeaders.cs @@ -67,13 +67,52 @@ public class AnthropicHeaders /// A new instance of the class. public AnthropicHeaders(HttpResponseHeaders headers) { - RequestId = headers.GetValues(RequestIdHeaderKey).FirstOrDefault() ?? string.Empty; - RateLimitRequestsLimit = int.Parse(headers.GetValues(RateLimitRequestsLimitHeaderKey).FirstOrDefault() ?? "0"); - RateLimitRequestsRemaining = int.Parse(headers.GetValues(RateLimitRequestsRemainingHeaderKey).FirstOrDefault() ?? "0"); - RateLimitRequestsReset = DateTimeOffset.Parse(headers.GetValues(RateLimitRequestsResetHeaderKey).FirstOrDefault() ?? DateTimeOffset.MinValue.ToString()); - RateLimitTokensLimit = int.Parse(headers.GetValues(RateLimitTokensLimitHeaderKey).FirstOrDefault() ?? "0"); - RateLimitTokensRemaining = int.Parse(headers.GetValues(RateLimitTokensRemainingHeaderKey).FirstOrDefault() ?? "0"); - RateLimitTokensReset = DateTimeOffset.Parse(headers.GetValues(RateLimitTokensResetHeaderKey).FirstOrDefault() ?? DateTimeOffset.MinValue.ToString()); - RetryAfter = int.Parse(headers.GetValues(RetryAfterHeaderKey).FirstOrDefault() ?? "0"); + RequestId = headers.TryGetValues(RequestIdHeaderKey, out var requestIdValues) + ? requestIdValues.FirstOrDefault() + : string.Empty; + + RateLimitRequestsLimit = int.Parse( + headers.TryGetValues(RateLimitRequestsLimitHeaderKey, out var requestLimitValues) + ? requestLimitValues.FirstOrDefault() + : "0" + ); + + RateLimitRequestsRemaining = int.Parse( + headers.TryGetValues(RateLimitRequestsRemainingHeaderKey, out var remainingRequestsValues) + ? remainingRequestsValues.FirstOrDefault() + : "0" + ); + + RateLimitRequestsReset = DateTimeOffset.Parse( + headers.TryGetValues(RateLimitRequestsResetHeaderKey, out var requestResetValues) + ? requestResetValues.FirstOrDefault() + : DateTimeOffset.MinValue.ToString() + ); + + + RateLimitTokensLimit = int.Parse( + headers.TryGetValues(RateLimitTokensLimitHeaderKey, out var limitValues) + ? limitValues.FirstOrDefault() + : "0" + ); + + RateLimitTokensRemaining = int.Parse( + headers.TryGetValues(RateLimitTokensRemainingHeaderKey, out var remainingTokensValues) + ? remainingTokensValues.FirstOrDefault() + : "0" + ); + + RateLimitTokensReset = DateTimeOffset.Parse( + headers.TryGetValues(RateLimitTokensResetHeaderKey, out var tokenResetValues) + ? tokenResetValues.FirstOrDefault() + : DateTimeOffset.MinValue.ToString() + ); + + + RetryAfter = int.Parse( + headers.TryGetValues(RetryAfterHeaderKey, out var retryValues) + ? retryValues.FirstOrDefault() + : "0" + ); } } \ No newline at end of file