Skip to content

Commit 8c5e602

Browse files
committed
Extract some duplicate code into a helper method.
1 parent d0f1c23 commit 8c5e602

File tree

1 file changed

+36
-32
lines changed

1 file changed

+36
-32
lines changed

FirebaseFacebookAuthUI/Sources/FUIFacebookAuth.m

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -207,46 +207,32 @@ - (void)signInWithDefaultValue:(nullable NSString *)defaultValue
207207
[_loginManager logInFromViewController:presentingViewController
208208
configuration:configuration
209209
completion:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
210-
if (error) {
211-
NSError *newError =
212-
[FUIAuthErrorUtils providerErrorWithUnderlyingError:error
213-
providerID:FIRFacebookAuthProviderID];
214-
[self completeSignInFlowWithAccessToken:nil idToken:nil error:newError];
215-
} else if (result.isCancelled) {
216-
NSError *newError = [FUIAuthErrorUtils userCancelledSignInError];
217-
[self completeSignInFlowWithAccessToken:nil idToken:nil error:newError];
218-
} else {
219-
self->_email = FBSDKProfile.currentProfile.email;
220-
NSString *idToken = FBSDKAuthenticationToken.currentAuthenticationToken.tokenString;
221-
[self completeSignInFlowWithAccessToken:nil idToken:idToken error:nil];
210+
if ([self maybeHandleCancelledResult:result error:error]) {
211+
return;
222212
}
213+
self->_email = FBSDKProfile.currentProfile.email;
214+
NSString *idToken = FBSDKAuthenticationToken.currentAuthenticationToken.tokenString;
215+
[self completeSignInFlowWithAccessToken:nil idToken:idToken error:nil];
223216
}];
224217
} else {
225218
[_loginManager logInWithPermissions:_scopes
226219
fromViewController:presentingViewController
227220
handler:^(FBSDKLoginManagerLoginResult *result,
228221
NSError *error) {
229-
if (error) {
230-
NSError *newError =
231-
[FUIAuthErrorUtils providerErrorWithUnderlyingError:error
232-
providerID:FIRFacebookAuthProviderID];
233-
[self completeSignInFlowWithAccessToken:nil idToken:nil error:newError];
234-
} else if (result.isCancelled) {
235-
NSError *newError = [FUIAuthErrorUtils userCancelledSignInError];
236-
[self completeSignInFlowWithAccessToken:nil idToken:nil error:newError];
237-
} else {
238-
// Retrieve email.
239-
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me"
240-
parameters:@{ @"fields" : @"email" }]
241-
startWithCompletion:^(id<FBSDKGraphRequestConnecting> connection,
242-
id result,
243-
NSError *error) {
244-
self->_email = result[@"email"];
245-
}];
246-
[self completeSignInFlowWithAccessToken:result.token.tokenString
247-
idToken:nil
248-
error:nil];
222+
if ([self maybeHandleCancelledResult:result error:error]) {
223+
return;
249224
}
225+
// Retrieve email.
226+
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me"
227+
parameters:@{ @"fields" : @"email" }]
228+
startWithCompletion:^(id<FBSDKGraphRequestConnecting> connection,
229+
id result,
230+
NSError *error) {
231+
self->_email = result[@"email"];
232+
}];
233+
[self completeSignInFlowWithAccessToken:result.token.tokenString
234+
idToken:nil
235+
error:nil];
250236
}];
251237
}
252238
}
@@ -392,4 +378,22 @@ - (FBSDKLoginManager *)createLoginManager {
392378
return [[FBSDKLoginManager alloc] init];
393379
}
394380

381+
- (BOOL)maybeHandleCancelledResult:(FBSDKLoginManagerLoginResult *)result
382+
error:(NSError *)error {
383+
if (error) {
384+
NSError *newError =
385+
[FUIAuthErrorUtils providerErrorWithUnderlyingError:error
386+
providerID:FIRFacebookAuthProviderID];
387+
[self completeSignInFlowWithAccessToken:nil idToken:nil error:newError];
388+
return true;
389+
}
390+
391+
if (result.isCancelled) {
392+
NSError *newError = [FUIAuthErrorUtils userCancelledSignInError];
393+
[self completeSignInFlowWithAccessToken:nil idToken:nil error:newError];
394+
return true;
395+
}
396+
return false;
397+
}
398+
395399
@end

0 commit comments

Comments
 (0)