//
Pastiebin
New Pastie
View Pasties
// // UsersWine.m // ViñaErrazuriz // // Created by Francisco Muñoz on 7/3/12. // Copyright (c) 2012 Mobitelio. All rights reserved. // #import \"UsersWine.h\" #import \"NSData+MD5.h\" #import \"ReviewArchives.h\" @implementation UsersWine @synthesize userId,name,login,pass; @synthesize categories,menuArray,menuCategories,structureJSON; @synthesize docPath; static UsersWine *sharedAppUser =nil; +(UsersWine *)sharedAppUser{ @synchronized(self){ if (sharedAppUser==nil) { sharedAppUser =[[self alloc]init]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if ([defaults objectForKey:@\"login\"]!=nil) { sharedAppUser.login = [defaults objectForKey:@\"login\"]; sharedAppUser.name = [defaults objectForKey:@\"name\"]; sharedAppUser.categories =[defaults objectForKey:@\"menu\"]; sharedAppUser.menuArray = [defaults objectForKey:@\"menu\"]; [defaults synchronize]; } } } return sharedAppUser; } +(BOOL)authenticate:(NSString *)username withPassword:(NSString *)password requestDelegate:(id)delegate{ AppDelegate *delegateStructure = (AppDelegate *)[UIApplication sharedApplication].delegate; UsersWine *user = [self sharedAppUser]; user.login = username; NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@\"%@\", GLOBAL_BASEURL]]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: url]; NSError *error; NSString *jsonRequest = [NSString stringWithFormat:@\"username=%@&password=%@\", username, password]; NSData *requestData = [jsonRequest dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPMethod: @\"POST\"]; [request setHTTPBody: requestData]; //NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil]; NSLog(@\"URL JSON: %@\",GLOBAL_STRUCTURE_JSONURL); NSData *returnData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:GLOBAL_STRUCTURE_JSONURL]]; NSLog(@\"NSdata con MD5: %@\",[returnData MD5]); NSString *structureJsonString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; if(returnData != nil) { NSDictionary *responseData = [NSJSONSerialization JSONObjectWithData:returnData options:kNilOptions error:&error]; NSString *returnDataPost=[responseData objectForKey:@\"success\"]; NSLog(@\"fingerPrint nuevo: %@\",[returnData MD5]); NSLog(@\"fingerPrint antiguo: %@\",[delegateStructure getKeychainValue:GLOBAL_APPLICATION_FINGERPRINT]); NSLog(@\"globla_application_sync: %@\",[delegateStructure getKeychainValue:GLOBAL_APPLICATION_SYNC]); if([returnDataPost isEqualToString:@\"true\"]){ if ([[delegateStructure getKeychainValue:GLOBAL_APPLICATION_FINGERPRINT] isEqualToString:[returnData MD5]]){ [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_SYNC forObject:@\"YES\"]; NSDate *now = [[NSDate alloc] init]; NSDateFormatter *format = [[NSDateFormatter alloc] init]; [format setDateFormat:@\"MMM dd, yyyy HH:mm\"]; NSString *dateString = [format stringFromDate:now]; [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_SYNC_DATE forObject:dateString]; NSLog(@\"la fecha de SYNC: %@\",dateString); NSLog(@\"los valores de fingerprint son iguales\"); return YES; } else{ //Grabar estructura JSON //[delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_SYNC forObject:@\"NO\"]; if (![delegateStructure getKeychainValue:GLOBAL_APPLICATION_STRUCTURE]){ [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_STRUCTURE forObject:structureJsonString]; NSLog(@\"cargar nueva estructura\"); } NSDate *now = [[NSDate alloc] init]; NSDateFormatter *format = [[NSDateFormatter alloc] init]; [format setDateFormat:@\"MMM dd, yyyy HH:mm\"]; NSString *dateString = [format stringFromDate:now]; [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_SYNC_DATE forObject:dateString]; NSLog(@\"la fecha de SYNC: %@\",dateString); user.menuArray = [responseData objectForKey:@\"menu\"]; NSLog(@\"menuArray %@\", user.menuArray); for(NSDictionary *d in user.menuArray){ user.menuCategories =[d objectForKey:@\"module\"]; } user.login = [responseData objectForKey:@\"login\"]; user.name=[responseData objectForKey:@\"name\"]; user.categories=[responseData objectForKey:@\"menu\"]; user.structureJSON = requestData; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:user.login forKey:@\"login\"]; [defaults setObject:user.name forKey:@\"name\"]; [defaults setObject:user.categories forKey:@\"menu\"]; [defaults setObject:user.menuArray forKey:@\"menu\"]; [defaults synchronize]; [ReviewArchives reviewImages:returnData]; [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_STRUCTURE forObject:structureJsonString]; [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_FINGERPRINT forObject:[returnData MD5]]; [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_SYNC forObject:@\"YES\"]; return YES; } }else { return NO; } } else { return NO; } } +(BOOL)sync:(NSString *)username withPassword:(NSString *)password requestDelegate:(id)delegate{ AppDelegate *delegateStructure = (AppDelegate *)[UIApplication sharedApplication].delegate; UsersWine *user = [self sharedAppUser]; user.login = username; NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@\"%@\", GLOBAL_BASEURL]]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: url]; NSError *error; NSString *jsonRequest = [NSString stringWithFormat:@\"username=%@&password=%@\", username, password]; NSData *requestData = [jsonRequest dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPMethod: @\"POST\"]; [request setHTTPBody: requestData]; NSLog(@\"URL JSON: %@\",GLOBAL_STRUCTURE_JSONURL); //NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil]; NSData *returnData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:GLOBAL_STRUCTURE_JSONURL]]; NSLog(@\"NSdata con MD5: %@\",[returnData MD5]); NSString *structureJsonString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; if(returnData != nil) { NSDictionary *responseData = [NSJSONSerialization JSONObjectWithData:returnData options:kNilOptions error:&error]; NSString *returnDataPost=[responseData objectForKey:@\"success\"]; NSLog(@\"fingerPrint nuevo: %@\",[returnData MD5]); NSLog(@\"fingerPrint antiguo: %@\",[delegateStructure getKeychainValue:GLOBAL_APPLICATION_FINGERPRINT]); if([returnDataPost isEqualToString:@\"true\"]){ if ([[delegateStructure getKeychainValue:GLOBAL_APPLICATION_FINGERPRINT] isEqualToString:[returnData MD5]]){ [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_SYNC forObject:@\"YES\"]; NSDate *now = [[NSDate alloc] init]; NSDateFormatter *format = [[NSDateFormatter alloc] init]; [format setDateFormat:@\"MMM dd, yyyy HH:mm\"]; NSString *dateString = [format stringFromDate:now]; [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_SYNC_DATE forObject:dateString]; NSLog(@\"la fecha de SYNC: %@\",dateString); NSLog(@\"los valores de fingerprint son iguales\"); return YES; } else{ //Grabar estructura JSON if (![delegateStructure getKeychainValue:GLOBAL_APPLICATION_STRUCTURE]){ [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_STRUCTURE forObject:structureJsonString]; NSLog(@\"cargar nueva estructura\"); } [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_SYNC forObject:@\"NO\"]; NSDate *now = [[NSDate alloc] init]; NSDateFormatter *format = [[NSDateFormatter alloc] init]; [format setDateFormat:@\"MMM dd, yyyy HH:mm\"]; NSString *dateString = [format stringFromDate:now]; [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_SYNC_DATE forObject:dateString]; NSLog(@\"la fecha de SYNC: %@\",dateString); user.menuArray = [responseData objectForKey:@\"menu\"]; NSLog(@\"menuArray %@\", user.menuArray); for(NSDictionary *d in user.menuArray){ user.menuCategories =[d objectForKey:@\"module\"]; } user.login = [responseData objectForKey:@\"login\"]; user.name=[responseData objectForKey:@\"name\"]; user.categories=[responseData objectForKey:@\"menu\"]; user.structureJSON = requestData; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:user.login forKey:@\"login\"]; [defaults setObject:user.name forKey:@\"name\"]; [defaults setObject:user.categories forKey:@\"menu\"]; [defaults setObject:user.menuArray forKey:@\"menu\"]; [defaults synchronize]; [ReviewArchives reviewImages:returnData]; [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_STRUCTURE forObject:structureJsonString]; [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_FINGERPRINT forObject:[returnData MD5]]; [delegateStructure setKeychainDataWithKey:GLOBAL_APPLICATION_SYNC forObject:@\"YES\"]; return YES; } }else { return NO; } } else { return NO; } } @end
Code Language
clike
java
css
html
javascript
lua
mysql
ometa
perl
php
plsql
python
regex
ruby
rails
scheme
text
xquery
Author *
Are you human?
Private
Save
Pasite Stats
Pasite Size: 12.1 KiB
Total Views: 39
Total Revisions (1)
Rev: 1 - 12:22pm 2012/08/03 - Francisco Muñoz - 12.1 KiB
Hide Menu