Advertisement
Guest User

Untitled

a guest
Jan 11th, 2013
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #import <Foundation/Foundation.h>
  2. #import "AFNetworking.h"
  3.  
  4. @class SLWebService;
  5.  
  6. @protocol SLWebServiceDelegate <NSObject>
  7.  
  8. @required
  9. - (void)requestFinished:(NSString *)name withResult:(NSDictionary *)result andError:(NSError *)error;
  10.  
  11. @end
  12.  
  13. @interface SLWebService : NSObject
  14. {
  15.     NSURL *baseURL;
  16.     AFHTTPClient *client;
  17. }
  18. @property id <SLWebServiceDelegate> delegate;
  19.  
  20. + (id)sharedWebService;
  21.  
  22. - (void)login:(NSString *)email withPassword:(NSString *)password;
  23.  
  24. - (NSError *)generateError:(NSString *)description domain:(NSString *)domain;
  25.  
  26. @end
  27.  
  28. #import "SLWebService.h"
  29.  
  30. @implementation SLWebService
  31.  
  32. @synthesize delegate;
  33.  
  34. + (id)sharedWebService
  35. {
  36.     static SLWebService *sharedWebService = nil;
  37.     static dispatch_once_t onceToken;
  38.     dispatch_once(&onceToken, ^{
  39.         sharedWebService = [[self alloc] init];
  40.     });
  41.     return sharedWebService;
  42. }
  43.  
  44. -(id)init
  45. {
  46.     self = [super init];
  47.    
  48.     if(self)
  49.     {
  50.         baseURL = [[NSURL alloc] initWithString:@"http://www.domain.de/"];
  51.         client = [[AFHTTPClient alloc] initWithBaseURL:baseURL];
  52.     }
  53.        
  54.     return self;
  55. }
  56.  
  57. -(void)login:(NSString *)email withPassword:(NSString *)password
  58. {
  59.     NSDictionary *params = @{@"email":email, @"password":password};
  60.     NSMutableURLRequest *request = [client requestWithMethod:@"GET" path:@"login.php" parameters:params];
  61.  
  62.     AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
  63.     success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
  64.     {
  65.         NSString *result = [JSON objectForKey:@"result"];
  66.         if ([result isEqualToString:@"fail"])
  67.         {
  68.             [[self delegate] requestFinished:@"login" withResult:nil andError:[self generateError:[JSON objectForKey:@"reason"] domain:@"de.Searchlight.WebServiceError"]];
  69.         }
  70.         else
  71.         {
  72.             NSDictionary *dic = @{@"firstname":[JSON objectForKey:@"firstname"], @"lastname":[JSON objectForKey:@"lastname"], @"gender":[JSON objectForKey:@"gender"]};
  73.             [[self delegate] requestFinished:@"login" withResult:dic andError:[self generateError:[JSON objectForKey:@"reason"] domain:@"de.Searchlight.WebServiceError"]];
  74.         }
  75.     }
  76.     failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *err, id JSON)
  77.     {
  78.         [[self delegate]requestFinished:@"login" withResult:nil andError:err];
  79.     }];
  80.    
  81.     [operation start];
  82. }
  83.  
  84. -(NSError *)generateError:(NSString *)description domain:(NSString *)domain
  85. {
  86.     NSError *error;
  87.     NSDictionary *userInfo = @{NSLocalizedDescriptionKey : description};
  88.     error = [NSError errorWithDomain:domain code:200 userInfo:userInfo];
  89.     return error;
  90. }
  91. @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement