forked from RestKit/RestKit
/
DBManagedObjectCache.m
41 lines (35 loc) · 1.44 KB
/
DBManagedObjectCache.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//
// DBManagedObjectCache.m
// DiscussionBoard
//
// Created by Jeremy Ellison on 1/10/11.
// Copyright 2011 Two Toasters. All rights reserved.
//
#import "DBManagedObjectCache.h"
#import "DBTopic.h"
#import "DBPost.h"
@implementation DBManagedObjectCache
- (NSArray*)fetchRequestsForResourcePath:(NSString*)resourcePath {
if ([resourcePath isEqualToString:@"/topics"]) {
NSFetchRequest* request = [DBTopic fetchRequest];
NSSortDescriptor* sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"createdAt" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
return [NSArray arrayWithObject:request];
}
// match on /topics/:id/posts
NSArray* components = [resourcePath componentsSeparatedByString:@"/"];
if ([components count] == 4 &&
[[components objectAtIndex:1] isEqualToString:@"topics"] &&
[[components objectAtIndex:3] isEqualToString:@"posts"]) {
NSString* topicIDString = [components objectAtIndex:2];
NSNumber* topicID = [NSNumber numberWithInt:[topicIDString intValue]];
NSFetchRequest* request = [DBPost fetchRequest];
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"topicID = %@", topicID, nil];
[request setPredicate:predicate];
NSSortDescriptor* sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"createdAt" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
return [NSArray arrayWithObject:request];
}
return nil;
}
@end