// // Api.m // xplan-ios // // Created by zu on 2021/9/6. // #import "Api.h" @implementation Api + (void)makeRequest:(NSString *)route method:(HttpRequestHelperMethod)method completion:(HttpRequestHelperCompletion)completion, ... { va_list arg_lists; va_start(arg_lists, completion); // 获取第一个参数 __FUNCTION__ ,然后解析出来 key 。 const char *functionName = va_arg(arg_lists, const char *); NSString *fn = [[NSString alloc] initWithUTF8String:functionName]; // NSLog 一下 __FUNCTION__ 就知道为什么这么截取了。 NSRange blankRange = [fn rangeOfString:@":"]; NSUInteger start = blankRange.location + 1; NSUInteger length; if ((start + 2) < fn.length) { length = fn.length - start - 2; } else if ((start + 1) < fn.length) { length = fn.length -start - 1; } else { length = fn.length -start; } NSString *fromatParamKeys = [fn substringWithRange:NSMakeRange(start, length)]; // 构造请求的 NSMutableDictionary *params 。 NSMutableDictionary *params = [NSMutableDictionary dictionary]; NSArray *paramKeys = [fromatParamKeys componentsSeparatedByString:@":"]; NSEnumerator *enumerator = [paramKeys objectEnumerator]; NSString *value = nil; while((value = va_arg(arg_lists, NSString*))){ [params setValue:value forKey:enumerator.nextObject]; }; va_end(arg_lists); [HttpRequestHelper request:route method:method params:params completion:completion]; } + (void)getUserInfo:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { [self makeRequest:@"user/get" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; } /// 获取手机号的验证码 /// @param completion 请求完成 /// @param mobile 手机号 /// @param type 类型 请看XPEunm中的枚举 + (void)phoneSmsCode:(HttpRequestHelperCompletion)completion mobile:(NSString *)mobile type:(NSString *)type { [self makeRequest:@"sms/getCode" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, mobile, type, nil]; } /// 校验手机号码 /// @param complection 完成 /// @param mobile 手机号 /// @param code 验证码 /// @param uid 用户的uid /// @param ticket ticket + (void)checkMoblieCode:(HttpRequestHelperCompletion)complection mobile:(NSString *)mobile code:(NSString *)code uid:(NSString *)uid ticket:(NSString *)ticket { [self makeRequest:@"sms/verify" method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, mobile, code, uid, ticket,nil]; } /// 补全用户资料 /// @param complection 完成 /// @param userInfo 需要更新的用户信息 + (void)completeUserInfo:(HttpRequestHelperCompletion)complection userInfo:(NSDictionary *)userInfo { [HttpRequestHelper request:@"user/v2/update" method:HttpRequestHelperMethodPOST params:userInfo completion:complection]; } /// 获取用户钱包余额信息 /// @param complection 完成 /// @param uid 用户uid /// @param ticket ticketg + (void)getUserWalletInfo:(HttpRequestHelperCompletion)complection uid:(NSString *)uid ticket:(NSString *)ticket { [self makeRequest:@"purse/query" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, ticket,nil]; } /// 批量验证 /// @param complection 完成 /// @param transcationIdStr 需要验证的数据 + (void)requestCheckTranscationIds:(HttpRequestHelperCompletion)complection transcationIdStr:(NSString *)transcationIdStr { [self makeRequest:@"verify/checkIOSChargeRecord" method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__,transcationIdStr, nil]; } /// 锁麦/开麦 /// @param complection 完成 /// @param roomUid 房主的uid /// @param state 0 开麦 1 锁麦 /// @param position 坑位 /// @param ticket 用户的ticket /// @param uid uid + (void)microMuteCompletion:(HttpRequestHelperCompletion)complection roomUid:(NSString *)roomUid state:(NSString *)state position:(NSString *)position ticket:(NSString *)ticket uid:(NSString *)uid { [self makeRequest:@"room/mic/lockmic" method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, roomUid, state, position, ticket, uid, nil]; } /// 锁坑/开锁 /// @param complection 完成 /// @param roomUid 房主的uid /// @param state 1锁坑位,0取消锁(即取消锁坑位) /// @param position 坑位 /// @param ticket 用户的ticket /// @param uid uid + (void)microLockCompletion:(HttpRequestHelperCompletion)complection roomUid:(NSString *)roomUid state:(NSString *)state position:(NSString *)position ticket:(NSString *)ticket uid:(NSString *)uid { [self makeRequest:@"room/mic/lockpos" method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, roomUid, state, position, ticket, uid, nil]; } ///得到腾讯存储信息 + (void)getQCloudInfo:(HttpRequestHelperCompletion)completion{ [self makeRequest:@"tencent/cos/getToken" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; } @end