diff options
author | Jason Wray <friedbunny@users.noreply.github.com> | 2019-04-17 18:27:54 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-17 18:27:54 -0700 |
commit | d5569f4b01ea82ebb9221ef9ed9df71ba8ba5dd9 (patch) | |
tree | a0d3b6b471b0309ce149ba14d998ae035233e45c /platform/darwin/src/MGLAccountManager.m | |
parent | b3b62f4d5abd5bc779e564cc71e5adf0ccc924cc (diff) | |
download | qtlocation-mapboxgl-d5569f4b01ea82ebb9221ef9ed9df71ba8ba5dd9.tar.gz |
[ios] Add SKU tokens to all Mapbox requests (#14421)
Diffstat (limited to 'platform/darwin/src/MGLAccountManager.m')
-rw-r--r-- | platform/darwin/src/MGLAccountManager.m | 40 |
1 files changed, 33 insertions, 7 deletions
diff --git a/platform/darwin/src/MGLAccountManager.m b/platform/darwin/src/MGLAccountManager.m index 63fa634884..0566605323 100644 --- a/platform/darwin/src/MGLAccountManager.m +++ b/platform/darwin/src/MGLAccountManager.m @@ -1,26 +1,26 @@ #import "MGLAccountManager_Private.h" #import "NSBundle+MGLAdditions.h" + #if TARGET_OS_OSX #import "NSProcessInfo+MGLAdditions.h" #endif #if TARGET_OS_IPHONE || TARGET_OS_SIMULATOR #import "MGLMapboxEvents.h" +#import "MBXSKUToken.h" +#endif @interface MGLAccountManager () @property (atomic) NSString *accessToken; @property (nonatomic) NSURL *apiBaseURL; -@end -#else -@interface MGLAccountManager () - -@property (atomic) NSString *accessToken; -@property (nonatomic) NSURL *apiBaseURL; +#if TARGET_OS_IPHONE || TARGET_OS_SIMULATOR +@property (atomic) NSString *skuToken; +@property (atomic) NSDate *skuTokenExpiration; +#endif @end -#endif @implementation MGLAccountManager @@ -39,6 +39,10 @@ if (apiBaseURL.length && [NSURL URLWithString:apiBaseURL]) { [self setAPIBaseURL:[NSURL URLWithString:apiBaseURL]]; } + +#if TARGET_OS_IPHONE || TARGET_OS_SIMULATOR + self.skuToken = [MBXSKUToken skuToken]; +#endif } + (instancetype)sharedManager { @@ -93,4 +97,26 @@ return [MGLAccountManager sharedManager].apiBaseURL; } +#pragma mark - SKU Tokens + +#if TARGET_OS_IPHONE || TARGET_OS_SIMULATOR + ++ (void)setSkuToken:(NSString *)skuToken { + NSTimeInterval oneHour = 60 * 60; // TODO: make this const + MGLAccountManager.sharedManager.skuTokenExpiration = [NSDate dateWithTimeIntervalSinceNow:oneHour]; + + MGLAccountManager.sharedManager.skuToken = skuToken; +} + ++ (NSString *)skuToken { + return [MGLAccountManager.sharedManager isSKUTokenExpired] ? [MBXSKUToken skuToken] : MGLAccountManager.sharedManager.skuToken; +} + +- (BOOL)isSKUTokenExpired { + NSTimeInterval secondsUntilExpiration = [MGLAccountManager.sharedManager.skuTokenExpiration timeIntervalSinceDate:NSDate.date]; + return secondsUntilExpiration < 0; +} + +#endif + @end |