Skip to content

Instantly share code, notes, and snippets.

@seivan
Last active August 29, 2015 13:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save seivan/8694065 to your computer and use it in GitHub Desktop.
Save seivan/8694065 to your computer and use it in GitHub Desktop.
__block XXCurrentUser * user = nil;
dispatch_group_t group = dispatch_group_create();
[[XXClient sharedManager] setObserverDidSignInBlock:^(XXAccessCredential *accessCredential, NSError *error) {
[[LUKeychainAccess standardKeychainAccess] setObject:accessCredential forKey:NSStringFromClass([self class])];
if(error)theBlock(nil,error);
else dispatch_group_leave(group);
}];
dispatch_group_enter(group);
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
dispatch_group_enter(group);
[[XXClient sharedManager] requestMyProfile:^(NSDictionary *responseObject, NSError * error) {
if(error) theBlock(nil, error);
else {
user = [self objectFromResponseDictionary:responseObject];
dispatch_group_leave(group);
}
}];
});
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
dispatch_group_enter(group);
[[MagicalRecordStack defaultStack].context MR_saveToPersistentStoreWithCompletion:^(BOOL success, NSError *error) {
if(error) theBlock(nil,error);
else dispatch_group_leave(group);
}];
});
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
dispatch_group_enter(group);
[user requestGrantedApplicationsOnCompletionBlock:^(XXCurrentUser *currentUser, NSError *error) {
if(error) theBlock(nil,error);
else dispatch_group_leave(group);
}];
});
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
dispatch_group_enter(group);
[user requestGrantedApplicationsOnCompletionBlock:^(XXCurrentUser *currentUser, NSError *error) {
if(error) theBlock(nil,error);
else dispatch_group_leave(group);
}];
});
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
dispatch_group_enter(group);
[user requestActionsOnCompletionBlock:^(XXCurrentUser *currentUser, NSError *error) {
if(error) theBlock(nil,error);
else theBlock(currentUser, error);
}];
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment