Skip to content

Instantly share code, notes, and snippets.

@bmorton
Created February 14, 2012 19:22
Show Gist options
  • Save bmorton/1829425 to your computer and use it in GitHub Desktop.
Save bmorton/1829425 to your computer and use it in GitHub Desktop.
RestKit Serializations
// ECOrder.m
static RKObjectMapping *objectMapping = nil;
static RKObjectMapping *serializationMapping = nil;
+ (RKObjectMapping*)objectMapping {
if (objectMapping == nil) {
objectMapping = [RKObjectMapping mappingForClass:self];
[objectMapping mapKeyPath:@"id" toAttribute:@"orderID"];
[objectMapping mapKeyPath:@"user_id" toAttribute:@"userID"];
[objectMapping mapKeyPath:@"payment_profile_id" toAttribute:@"paymentProfileID"];
[objectMapping mapKeyPath:@"state" toAttribute:@"state"];
[objectMapping mapKeyPath:@"items" toRelationship:@"items" withMapping:[ECOrderItem objectMapping]];
}
return objectMapping;
}
+ (RKObjectMapping*)serializationMapping {
if (serializationMapping == nil) {
serializationMapping = [RKObjectMapping serializationMapping];
serializationMapping.rootKeyPath = @"order";
[serializationMapping mapKeyPath:@"orderID" toAttribute:@"id"];
[serializationMapping mapKeyPath:@"userID" toAttribute:@"user_id"];
[serializationMapping mapKeyPath:@"paymentProfileID" toAttribute:@"payment_profile_id"];
[serializationMapping mapKeyPath:@"items" toRelationship:@"items" withMapping:[ECOrderItem serializationMapping] serialize:YES];
}
return serializationMapping;
}
static RKObjectMapping *objectMapping = nil;
static RKObjectMapping *serializationMapping = nil;
+ (RKObjectMapping*)objectMapping {
if (objectMapping == nil) {
objectMapping = [RKObjectMapping mappingForClass:self];
[objectMapping mapKeyPath:@"id" toAttribute:@"orderItemID"];
[objectMapping mapKeyPath:@"order_id" toAttribute:@"orderID"];
[objectMapping mapKeyPath:@"inventory_id" toAttribute:@"inventoryID"];
[objectMapping mapKeyPath:@"unit_price" toAttribute:@"unitPrice"];
[objectMapping mapKeyPath:@"quantity" toAttribute:@"quantity"];
}
return objectMapping;
}
+ (RKObjectMapping*)serializationMapping {
if (serializationMapping == nil) {
serializationMapping = [RKObjectMapping serializationMapping];
serializationMapping.rootKeyPath = @"order_item";
[serializationMapping mapKeyPath:@"inventoryID" toAttribute:@"inventory_id"];
[serializationMapping mapKeyPath:@"quantity" toAttribute:@"quantity"];
}
return serializationMapping;
}
[manager.mappingProvider setMapping:[ECOrder objectMapping] forKeyPath:@"order"];
[manager.mappingProvider setSerializationMapping:[ECOrder serializationMapping]forClass:[ECOrder class]];
[manager.mappingProvider setMapping:[ECOrderItem objectMapping] forKeyPath:@"order_items"];
[manager.mappingProvider setSerializationMapping:[ECOrderItem serializationMapping] forClass:[ECOrderItem class]];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment