kurakinvit
11/27/2013 - 11:46 AM

Async Request

+ (void)loadTasks: (NSString *)userID
{
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@%@", HOST, @"/tasks/", userID]];
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    [NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
     {
         if (error)
         {
             //TODO: перейти на экран неработающего сервера
             NSLog(@"Error: %@", [error localizedDescription]);
         }
         else
         {
             //[LuckyStrikeServer outputJSON: data];
             //[LuckyStrikeServer outputCountOfEntities: @"DoneTask"];
             //[LuckyStrikeServer outputCountOfEntities: @"NewTask"];
             //NSLog(@"Loading tasks to CoreData...");
             
             //TODO: проверить JSON на валидность
             NSDictionary * jsonDictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:Nil];
             
             // Сохранить новые задачи в CoreData.
             NSArray *newTasks = [jsonDictionary objectForKey:@"newTasks"];
             [LuckyStrikeServer loadNewTasks:newTasks];
             
             // Сохранить старые задачи в CoreData.
             NSArray *doneTasks = [jsonDictionary objectForKey:@"doneTasks"];
             [LuckyStrikeServer loadDoneTasks:doneTasks];
             
             //[LuckyStrikeServer outputCountOfEntities: @"DoneTask"];
             //[LuckyStrikeServer outputCountOfEntities: @"NewTask"];
         }
     }];
}