// // RADataProvider.m // Apex And Drivers // // Created by Jack on 2018/6/1. // Copyright © 2018年 USAI. All rights reserved. // #import "RADataProvider.h" #import "NetworkUtils.h" #import "ZipArchive.h" #import "AESCrypt.h" @implementation RADataProvider +(NSMutableDictionary*) prepare_addtional_params:(NSMutableDictionary* ) params { if (params == nil) { params = [NSMutableDictionary dictionary]; } // AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; // // // if(appDelegate.user!=nil && params[@"user"] == nil) // [params setValue:appDelegate.user forKey:@"user"]; // if(appDelegate.password!=nil&& params[@"pwd"] == nil) // [params setValue:appDelegate.password forKey:@"pwd"]; // [params setValue:appDelegate.build forKey:@"app_ver"]; NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary]; NSString* short_version =[infoDict objectForKey:@"CFBundleShortVersionString"]; [params setValue:short_version forKey:@"app_short_ver"]; #if TARGET_IPHONE_SIMULATOR//模拟器 [params setValue:@"simulator_uuid" forKey:@"deviceid"]; #elif TARGET_OS_IPHONE//真机 UIDevice * dev = [UIDevice currentDevice]; NSUUID* uuid =dev.identifierForVendor; [params setValue:uuid.UUIDString forKey:@"deviceid"]; #endif return params; } +(NSData*)get_json : (NSString*) url parameters:(NSMutableDictionary *) params file:(NSString *) file //delegate:(id < NSURLConnectionDelegate >)delegate { params = [self prepare_addtional_params:params]; return [NetworkUtils get_json:url parameters:params file:file err_recorder:URL_ERR_LOG result_handler:^NSMutableDictionary *(NSMutableDictionary *jsobj) { int result=[[jsobj valueForKey:@"result"] intValue]; switch (result) { case 0: [jsobj setValue:MSG_USERAUTH_ERROR forKey:@"err_msg"]; break; case 1: [jsobj setValue:MSG_ERROR forKey:@"err_msg"]; break; case RESULT_TRUE: [jsobj setValue:MSG_SUCCESS forKey:@"err_msg"]; break; case 9: [jsobj setValue:[jsobj valueForKey:@"msg"] forKey:@"err_msg"]; break; case RESULT_TIMEOUT: [jsobj setValue:MSG_TIMEOUT forKey:@"err_msg"]; break; default: [jsobj setValue:MSG_ERROR forKey:@"err_msg"]; break; } return jsobj; } decrypt_handler:^NSMutableDictionary *(NSMutableDictionary *jsobj) { NSString* base64str = jsobj[@"str"]; NSString* decryptstr=[AESCrypt AES128Decrypt:base64str key:@"Usai2010"]; jsobj=[[RAConvertor string2dict:decryptstr] mutableCopy]; return jsobj; }]; /* */ return nil; } + (NSDictionary *)handleJsonData:(NSData *)jsonData { if (jsonData==nil) { return @{ @"result" : @RESULT_NET_ERROR, @"err_msg" : MSG_NET_ERROR }; } NSDictionary *json = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil]; return json; } + (NSDictionary *)requestLogin:(NSString *)user password:(NSString *)pwd { return @{ @"result" : @(RESULT_TRUE) }; NSMutableDictionary *params = [NSMutableDictionary dictionary]; [params setObject:user forKey:@"user"]; [params setObject:pwd forKey:@"password"]; NSData* json=[self get_json:URL_HOST parameters:params file:nil]; return [self handleJsonData:json]; } + (int)requestRetrievePassword : (NSString*)user email:(NSString*)email { if(![NetworkUtils IsNetworkAvailable]) return RESULT_NET_NOTAVAILABLE; NSMutableDictionary * params = [[NSMutableDictionary alloc] init]; [params setValue:user forKey:@"user"]; [params setValue:email forKey:@"email"]; [params setValue:@"Retrieve Password" forKey:@"module_name"]; [params setValue:@"handset_search" forKey:@"action"]; NSData* json=[self get_json:URL_HOST parameters:params file:nil]; if (json==nil) { DebugLog(@"json is wrong"); return RESULT_NET_ERROR; } NSError *error=nil; NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error]; if(jsobj) { int result = [[jsobj valueForKey:@"result"] intValue]; if(result!=AP_USER_AUTH) { DebugLog(@"USER NOT AUTHORIZED CODE=%d ",result); return RESULT_FALSE; } return RESULT_TRUE; } return RESULT_NET_ERROR; } + (NSDictionary *)requestOrderList { sleep(3.0); return [self loadFakeData:@"fake_order_list.json"]; NSMutableDictionary *params = [NSMutableDictionary dictionary]; // [params setObject:user forKey:@"user"]; // [params setObject:pwd forKey:@"password"]; NSData* json=[self get_json:URL_HOST parameters:params file:nil]; return [self handleJsonData:json]; } + (NSDictionary *)requestOrderDetail:(NSString *)orderID { sleep(3.0); return [self loadFakeData:@"fake_order_detail.json"]; NSMutableDictionary *params = [NSMutableDictionary dictionary]; // [params setObject:user forKey:@"user"]; // [params setObject:pwd forKey:@"password"]; NSData* json=[self get_json:URL_HOST parameters:params file:nil]; return [self handleJsonData:json]; } + (NSDictionary *)requestUpdateOrder:(NSString *)orderID driverAction:(NSInteger)action { sleep(3.0); return [self loadFakeData:@"fake_order_edit.json"]; NSMutableDictionary *params = [NSMutableDictionary dictionary]; // [params setObject:user forKey:@"user"]; // [params setObject:pwd forKey:@"password"]; NSData* json=[self get_json:URL_HOST parameters:params file:nil]; return [self handleJsonData:json]; } + (NSDictionary *)reportAcionToURL:(NSString *)url withParams:(NSMutableDictionary *)params { sleep(3.0); return @{@"result" : @2}; NSData* json=[self get_json:url parameters:params file:nil]; return [self handleJsonData:json]; } + (NSDictionary *)loadFakeData:(NSString *)fileName { NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:nil]; NSData *jsonData = [NSData dataWithContentsOfFile:path]; return [self handleJsonData:jsonData]; } @end