Skip to content

Commit efec72b

Browse files
committed
Add links/self to resource.
1 parent ade1c82 commit efec72b

File tree

4 files changed

+11
-0
lines changed

4 files changed

+11
-0
lines changed

Classes/JSONAPIResourceDescriptor.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
*/
3131
@property (strong) NSString *idProperty;
3232

33+
@property (strong) NSString *selfLinkProperty;
34+
3335
/**
3436
* JSON-API "id" optional format.
3537
*

Classes/JSONAPIResourceParser.m

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,13 @@ + (void)set:(NSObject <JSONAPIResource> *)resource withDictionary:dictionary {
191191
} else {
192192
[resource setValue:ID forKey:[descriptor idProperty]];
193193
}
194+
195+
if (dictionary[@"links"]) {
196+
if (descriptor.selfLinkProperty) {
197+
NSString *selfLink = dictionary[@"links"][@"self"];
198+
[resource setValue:selfLink forKey:descriptor.selfLinkProperty];
199+
}
200+
}
194201

195202
// Loops through all keys to map to properties
196203
NSDictionary *properties = [descriptor properties];

Project/JSONAPI/ArticleResource.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ + (JSONAPIResourceDescriptor*)descriptor {
2626
__descriptor = [[JSONAPIResourceDescriptor alloc] initWithClass:[self class] forLinkedType:@"articles"];
2727

2828
[__descriptor setIdProperty:@"ID"];
29+
[__descriptor setSelfLinkProperty:@"selfLink"];
2930

3031
[__descriptor addProperty:@"title"];
3132
[__descriptor addProperty:@"date"

Project/JSONAPITests/JSONAPITests.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ - (void)testDataArticles {
6565
ArticleResource *article = jsonAPI.resource;
6666
XCTAssert([article isKindOfClass:[ArticleResource class]], @"Article should be a ArticleResource");
6767
XCTAssertEqualObjects(article.ID, @"1", @"Article id should be 1");
68+
XCTAssertTrue([article.selfLink isEqualToString:@"http://example.com/articles/1"], @"Article selfLink should be ''");
6869
XCTAssertEqualObjects(article.title, @"JSON API paints my bikeshed!", @"Article title should be 'JSON API paints my bikeshed!'");
6970

7071
NSArray *dateStrings = @[@"2015-09-01T12:15:00Z",@"2015-08-01T06:15:00Z"];

0 commit comments

Comments
 (0)