forked from hebruce110/ioctocat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GHEvents.m
42 lines (34 loc) · 1.15 KB
/
GHEvents.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
42
#import "GHEvents.h"
#import "GHEvent.h"
#import "GHRepository.h"
#import "IOCDefaultsPersistence.h"
@implementation GHEvents
@synthesize resourcePath = _resourcePath;
- (id)initWithPath:(NSString *)path account:(GHAccount *)account {
self = [super initWithPath:path];
if (self) {
self.lastUpdate = [IOCDefaultsPersistence lastUpdateForPath:path account:account];
}
return self;
}
- (id)initWithRepository:(GHRepository *)repo {
NSString *path = [NSString stringWithFormat:kRepoEventsFormat, repo.owner, repo.name];
return [self initWithPath:path];
}
- (void)setResourcePath:(NSString *)path {
_resourcePath = path;
self.lastUpdate = [IOCDefaultsPersistence lastUpdateForPath:self.resourcePath account:self.account];
}
- (void)setValues:(id)values {
[super setValues:values];
for (NSDictionary *dict in values) {
GHEvent *event = [[GHEvent alloc] initWithDict:dict];
if (self.lastUpdate && [event.date compare:self.lastUpdate] != NSOrderedDescending) {
[event markAsRead];
}
[self addObject:event];
}
self.lastUpdate = [NSDate date];
[IOCDefaultsPersistence setLastUpate:self.lastUpdate forPath:self.resourcePath account:self.account];
}
@end