Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #import <Foundation/Foundation.h>
- #import "AFNetworking.h"
- @class SLWebService;
- @protocol SLWebServiceDelegate <NSObject>
- @required
- - (void)requestFinished:(NSString *)name withResult:(NSDictionary *)result andError:(NSError *)error;
- @end
- @interface SLWebService : NSObject
- {
- NSURL *baseURL;
- AFHTTPClient *client;
- }
- @property id <SLWebServiceDelegate> delegate;
- + (id)sharedWebService;
- - (void)login:(NSString *)email withPassword:(NSString *)password;
- - (NSError *)generateError:(NSString *)description domain:(NSString *)domain;
- @end
- #import "SLWebService.h"
- @implementation SLWebService
- @synthesize delegate;
- + (id)sharedWebService
- {
- static SLWebService *sharedWebService = nil;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- sharedWebService = [[self alloc] init];
- });
- return sharedWebService;
- }
- -(id)init
- {
- self = [super init];
- if(self)
- {
- baseURL = [[NSURL alloc] initWithString:@"http://www.domain.de/"];
- client = [[AFHTTPClient alloc] initWithBaseURL:baseURL];
- }
- return self;
- }
- -(void)login:(NSString *)email withPassword:(NSString *)password
- {
- NSDictionary *params = @{@"email":email, @"password":password};
- NSMutableURLRequest *request = [client requestWithMethod:@"GET" path:@"login.php" parameters:params];
- AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
- success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
- {
- NSString *result = [JSON objectForKey:@"result"];
- if ([result isEqualToString:@"fail"])
- {
- [[self delegate] requestFinished:@"login" withResult:nil andError:[self generateError:[JSON objectForKey:@"reason"] domain:@"de.Searchlight.WebServiceError"]];
- }
- else
- {
- NSDictionary *dic = @{@"firstname":[JSON objectForKey:@"firstname"], @"lastname":[JSON objectForKey:@"lastname"], @"gender":[JSON objectForKey:@"gender"]};
- [[self delegate] requestFinished:@"login" withResult:dic andError:[self generateError:[JSON objectForKey:@"reason"] domain:@"de.Searchlight.WebServiceError"]];
- }
- }
- failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *err, id JSON)
- {
- [[self delegate]requestFinished:@"login" withResult:nil andError:err];
- }];
- [operation start];
- }
- -(NSError *)generateError:(NSString *)description domain:(NSString *)domain
- {
- NSError *error;
- NSDictionary *userInfo = @{NSLocalizedDescriptionKey : description};
- error = [NSError errorWithDomain:domain code:200 userInfo:userInfo];
- return error;
- }
- @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement