22#import " SentryConcurrentRateLimitsDictionary.h"
33#import " SentryDataCategoryMapper.h"
44#import " SentryDateUtil.h"
5- #import " SentryDependencyContainer.h"
65#import " SentryLog.h"
76#import " SentryRateLimitParser.h"
87#import " SentryRetryAfterHeaderParser.h"
1716@property (nonatomic, strong) SentryConcurrentRateLimitsDictionary *rateLimits;
1817@property (nonatomic, strong) SentryRetryAfterHeaderParser *retryAfterHeaderParser;
1918@property (nonatomic, strong) SentryRateLimitParser *rateLimitParser;
19+ @property (nonatomic, strong) SentryCurrentDateProvider *currentDateProvider;
20+ @property (nonatomic, strong) SentryDateUtil *dateUtil;
2021
2122@end
2223
@@ -25,11 +26,14 @@ @implementation SentryDefaultRateLimits
2526- (instancetype )initWithRetryAfterHeaderParser :
2627 (SentryRetryAfterHeaderParser *)retryAfterHeaderParser
2728 andRateLimitParser : (SentryRateLimitParser *)rateLimitParser
29+ currentDateProvider : (SentryCurrentDateProvider *)currentDateProvider
2830{
2931 if (self = [super init ]) {
3032 self.rateLimits = [[SentryConcurrentRateLimitsDictionary alloc ] init ];
3133 self.retryAfterHeaderParser = retryAfterHeaderParser;
3234 self.rateLimitParser = rateLimitParser;
35+ self.currentDateProvider = currentDateProvider;
36+ self.dateUtil = [[SentryDateUtil alloc ] initWithCurrentDateProvider: currentDateProvider];
3337 }
3438 return self;
3539}
@@ -39,8 +43,8 @@ - (BOOL)isRateLimitActive:(SentryDataCategory)category
3943 NSDate *categoryDate = [self .rateLimits getRateLimitForCategory: category];
4044 NSDate *allCategoriesDate = [self .rateLimits getRateLimitForCategory: kSentryDataCategoryAll ];
4145
42- BOOL isActiveForCategory = [SentryDateUtil isInFuture: categoryDate];
43- BOOL isActiveForCategories = [SentryDateUtil isInFuture: allCategoriesDate];
46+ BOOL isActiveForCategory = [self .dateUtil isInFuture: categoryDate];
47+ BOOL isActiveForCategories = [self .dateUtil isInFuture: allCategoriesDate];
4448
4549 if (isActiveForCategory || isActiveForCategories) {
4650 return YES ;
@@ -67,8 +71,7 @@ - (void)update:(NSHTTPURLResponse *)response
6771
6872 if (nil == retryAfterHeaderDate) {
6973 // parsing failed use default value
70- retryAfterHeaderDate = [[SentryDependencyContainer.sharedInstance.dateProvider date ]
71- dateByAddingTimeInterval: 60 ];
74+ retryAfterHeaderDate = [self .currentDateProvider.date dateByAddingTimeInterval: 60 ];
7275 }
7376
7477 [self updateRateLimit: kSentryDataCategoryAll withDate: retryAfterHeaderDate];
0 commit comments