mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-16 11:20:18 +00:00
Add NSURLSession support (BITAuthenticator)
This commit is contained in:
parent
8935364018
commit
f06cf2a636
@ -331,11 +331,28 @@ static unsigned char kBITPNGEndChunk[4] = {0x49, 0x45, 0x4e, 0x44};
|
|||||||
}
|
}
|
||||||
|
|
||||||
NSString *validationPath = [NSString stringWithFormat:@"api/3/apps/%@/identity/validate", self.encodedAppIdentifier];
|
NSString *validationPath = [NSString stringWithFormat:@"api/3/apps/%@/identity/validate", self.encodedAppIdentifier];
|
||||||
__weak typeof (self) weakSelf = self;
|
|
||||||
|
id nsurlsessionClass = NSClassFromString(@"NSURLSessionUploadTask");
|
||||||
|
if (nsurlsessionClass && !bit_isRunningInAppExtension()) {
|
||||||
|
NSURLRequest *request = [self.hockeyAppClient requestWithMethod:@"GET" path:validationPath parameters:[self validationParameters]];
|
||||||
|
NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
|
||||||
|
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration];
|
||||||
|
|
||||||
|
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
|
||||||
|
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *error) {
|
||||||
|
[self handleValidationResponseWithData:data error:error completion:completion];
|
||||||
|
}];
|
||||||
|
[task resume];
|
||||||
|
}else{
|
||||||
[self.hockeyAppClient getPath:validationPath
|
[self.hockeyAppClient getPath:validationPath
|
||||||
parameters:[self validationParameters]
|
parameters:[self validationParameters]
|
||||||
completion:^(BITHTTPOperation *operation, NSData* responseData, NSError *error) {
|
completion:^(BITHTTPOperation *operation, NSData* responseData, NSError *error) {
|
||||||
typeof (self) strongSelf = weakSelf;
|
[self handleValidationResponseWithData:responseData error:error completion:completion];
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)handleValidationResponseWithData:(NSData *) responseData error:(NSError *)error completion:(void (^)(BOOL validated, NSError *))completion {
|
||||||
if(nil == responseData) {
|
if(nil == responseData) {
|
||||||
NSDictionary *userInfo = @{NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")};
|
NSDictionary *userInfo = @{NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")};
|
||||||
if(error) {
|
if(error) {
|
||||||
@ -346,18 +363,17 @@ static unsigned char kBITPNGEndChunk[4] = {0x49, 0x45, 0x4e, 0x44};
|
|||||||
NSError *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain
|
NSError *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain
|
||||||
code:BITAuthenticatorNetworkError
|
code:BITAuthenticatorNetworkError
|
||||||
userInfo:userInfo];
|
userInfo:userInfo];
|
||||||
strongSelf.validated = NO;
|
self.validated = NO;
|
||||||
if(completion) completion(NO, error);
|
if(completion) completion(NO, error);
|
||||||
} else {
|
} else {
|
||||||
NSError *validationParseError = nil;
|
NSError *validationParseError = nil;
|
||||||
BOOL valid = [strongSelf.class isValidationResponseValid:responseData error:&validationParseError];
|
BOOL valid = [self.class isValidationResponseValid:responseData error:&validationParseError];
|
||||||
strongSelf.validated = valid;
|
self.validated = valid;
|
||||||
if(valid) {
|
if(valid) {
|
||||||
[self setLastAuthenticatedVersion:self.executableUUID];
|
[self setLastAuthenticatedVersion:self.executableUUID];
|
||||||
}
|
}
|
||||||
if(completion) completion(valid, validationParseError);
|
if(completion) completion(valid, validationParseError);
|
||||||
}
|
}
|
||||||
}];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSDictionary*) validationParameters {
|
- (NSDictionary*) validationParameters {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user