Created
July 15, 2016 14:42
-
-
Save harveyslash/ba56dd06014af2cfee06354401d94d66 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@implementation API_Login | |
+(void)performLoginWithEmail:(NSString*)email | |
withPassword:(NSString*)password | |
success:(void (^)(Token* user) )success | |
failure:failureblock failure{ | |
RKObjectManager * objectManager = [APIHelper getRestObjectManager]; | |
RKObjectMapping *tokenMapping = [RKObjectMapping mappingForClass:[Token class]]; | |
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Reminder" withExtension:@"momd"]; | |
// NOTE: Due to an iOS 5 bug, the managed object model returned is immutable. | |
NSManagedObjectModel *managedObjectModel = [[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL] mutableCopy]; | |
RKManagedObjectStore *managedObjectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:managedObjectModel]; | |
objectManager.managedObjectStore = managedObjectStore; | |
//add mapping for token | |
[tokenMapping addPropertyMapping:[RKAttributeMapping attributeMappingFromKeyPath:nil toKeyPath:@"token"]]; | |
RKResponseDescriptor *responseDescriptor = | |
[RKResponseDescriptor responseDescriptorWithMapping:tokenMapping | |
method:RKRequestMethodGET | |
pathPattern:nil | |
keyPath:nil | |
statusCodes:[NSIndexSet indexSetWithIndex:200]]; | |
[objectManager addResponseDescriptor:responseDescriptor]; | |
// add mapping for error | |
RKObjectMapping *errorMapping = [RKObjectMapping mappingForClass:[Error class]]; | |
[errorMapping addAttributeMappingsFromDictionary:@{@"message":@"message",@"badRequest":@"badRequest"}]; | |
RKResponseDescriptor *errorResponseDescriptor = | |
[RKResponseDescriptor responseDescriptorWithMapping:errorMapping | |
method:RKRequestMethodGET | |
pathPattern:nil | |
keyPath:nil | |
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassClientError)]; | |
[objectManager addResponseDescriptor:errorResponseDescriptor]; | |
NSDictionary *queryParams = @{@"email" : email, | |
@"password" : password, | |
}; | |
[objectManager postObject:nil | |
path:@"/users/api/login" | |
parameters:queryParams | |
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { | |
// Token* token = (Token*)[mappingResult firstObject] ; | |
// [AppDelegateHandle setToken:token]; | |
// success(token); | |
} failure:^(RKObjectRequestOperation *operation, NSError *error) { | |
NSArray* e = [[error userInfo] objectForKey:RKObjectMapperErrorObjectsKey]; | |
Error *err = (Error*)[e objectAtIndex:0]; | |
NSLog(@"%@",[err.badRequest allValues] ); | |
failure(operation,error); | |
}]; | |
} | |
@end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment