UserRequestModel.m 7.1 KB
//
//  UserRequestModel.m
//  DreamSleep
//
//  Created by peter on 2022/4/14.
//

#import "UserRequestModel.h"

@implementation UserRequestModel

+ (NSURLSessionDataTask *)wxLoginWithCode:(NSString *)code completion:(void (^)(UserRequestModel *requestModel))completion {
    UserRequestModel * requestModel = [[UserRequestModel alloc] init];
    NSString *api = @"wxLogin";
    NSString *argStr = [NSString stringWithFormat:@"mutation{%@(code:\"%@\")}", api, code];
    return [self httpPostBodyRequestWithAPI:api params:@{@"query" : argStr} view:nil hasNetActivity:YES loadingInfo:nil hasFailInfo:YES success:^(NSDictionary * _Nonnull apiDic) {
        DSLog(@"微信登录接口apiDic:%@", apiDic);
        requestModel.resCode = DSResCodeSuccess;
        NSDictionary *resultDic = apiDic[@"result"];
        UserModel *userModel = [UserModel yy_modelWithJSON:resultDic];
        DSLog(@"userModel:%@", userModel.debugDescription);
        // 保存用户信息
        [LoginUtils saveUserLoginData:userModel];
        completion(requestModel);
    } failure:^(id _Nonnull failureInfo) {
        requestModel.resCode = DSResCodeNetFail;
        requestModel.errorInfo = failureInfo;
        completion(requestModel);
    }];
}

+ (NSURLSessionDataTask *)appleLoginWithUser:(NSString *)user
                               identityToken:(NSString *)identityToken
                           authorizationCode:(NSString *)authorizationCode
                                  completion:(void (^)(UserRequestModel *requestModel))completion
{
    UserRequestModel * requestModel = [[UserRequestModel alloc] init];
    NSString *api = @"verify_sign_with_appleid";
    NSString *argStr = [NSString stringWithFormat:@"mutation{%@(user_id:\"%@\",identity_token:\"%@\",authorization_code:\"%@\")}", api, user, identityToken, authorizationCode];
    return [self httpPostBodyRequestWithAPI:api params:@{@"query" : argStr} view:nil hasNetActivity:YES loadingInfo:nil hasFailInfo:YES success:^(NSDictionary * _Nonnull apiDic) {
        DSLog(@"苹果登录接口apiDic:%@", apiDic);
        requestModel.resCode = DSResCodeSuccess;
        NSDictionary *resultDic = apiDic[@"result"];
        UserModel *userModel = [UserModel yy_modelWithJSON:resultDic];
        DSLog(@"userModel:%@", userModel.debugDescription);
        // 保存用户信息
        [LoginUtils saveUserLoginData:userModel];
        completion(requestModel);
    } failure:^(id _Nonnull failureInfo) {
        requestModel.resCode = DSResCodeNetFail;
        requestModel.errorInfo = failureInfo;
        completion(requestModel);
    }];
}

+ (NSURLSessionDataTask *)layoutRequestWithCompletion:(void (^)(UserRequestModel *requestModel))completion
{
    UserRequestModel * requestModel = [[UserRequestModel alloc] init];
    NSString *api = @"user_logout";
    NSString *argStr = [NSString stringWithFormat:@"mutation{%@}", api];
    return [self httpPostBodyRequestWithAPI:api params:@{@"query" : argStr} view:nil hasNetActivity:YES loadingInfo:nil hasFailInfo:YES success:^(NSDictionary * _Nonnull apiDic) {
        DSLog(@"用户退出登录接口apiDic:%@", apiDic);
        requestModel.resCode = DSResCodeSuccess;
        completion(requestModel);
    } failure:^(id _Nonnull failureInfo) {
        requestModel.resCode = DSResCodeNetFail;
        requestModel.errorInfo = failureInfo;
        completion(requestModel);
    }];
}

+ (NSURLSessionDataTask *)closeUserRequestWithCompletion:(void (^)(UserRequestModel *requestModel))completion
{
    UserRequestModel * requestModel = [[UserRequestModel alloc] init];
    NSString *api = @"close_user";
    int user_id = [LoginUtils getUserID];
    NSString *argStr = [NSString stringWithFormat:@"mutation{%@(user_id:%d)}", api, user_id];
    return [self httpPostBodyRequestWithAPI:api params:@{@"query" : argStr} view:nil hasNetActivity:YES loadingInfo:nil hasFailInfo:YES success:^(NSDictionary * _Nonnull apiDic) {
        DSLog(@"用户注销账户接口apiDic:%@", apiDic);
        requestModel.resCode = DSResCodeSuccess;
        completion(requestModel);
    } failure:^(id _Nonnull failureInfo) {
        requestModel.resCode = DSResCodeNetFail;
        requestModel.errorInfo = failureInfo;
        completion(requestModel);
    }];
}

+ (NSURLSessionDataTask *)autoLoginRequestWithCompletion:(void (^)(UserRequestModel *requestModel))completion {
    UserRequestModel * requestModel = [[UserRequestModel alloc] init];
    NSString *api = @"auto_login";
    NSString *token = [LoginUtils getToken];
    NSString *argStr = [NSString stringWithFormat:@"mutation{%@(token:\"%@\")}", api, token];
    return [self httpPostBodyRequestWithAPI:api params:@{@"query" : argStr} view:nil hasNetActivity:YES loadingInfo:nil hasFailInfo:YES success:^(NSDictionary * _Nonnull apiDic) {
        DSLog(@"用户自动登录接口apiDic:%@\n, token:%@\n, sid:%@", apiDic, token, [LoginUtils getSid]);
        NSDictionary *resultDic = apiDic[@"result"];
        [LoginUtils updateSid:resultDic[@"sid"] token:resultDic[@"token"]];
        DSLog(@"自动登录成功后token:%@\n, sid:%@", [LoginUtils getToken], [LoginUtils getSid]);
        requestModel.resCode = DSResCodeSuccess;
        completion(requestModel);
    } failure:^(id _Nonnull failureInfo) {
        requestModel.resCode = DSResCodeNetFail;
        requestModel.errorInfo = failureInfo;
        completion(requestModel);
    }];
}

+ (NSURLSessionDataTask *)updateFaceImgRequest:(UIImage *)faceImg completion:(void (^)(UserRequestModel *requestModel))completion {
    UserRequestModel * requestModel = [[UserRequestModel alloc] init];
    NSString *api = @"update_face_img";
    int user_id = [LoginUtils getUserID];
    NSString *base64 = [faceImg imageToBase64Str:faceImg];
    NSString *argStr = [NSString stringWithFormat:@"mutation{%@(user_id:%d,base64:\"%@\")}", api, user_id, base64];
    return [self httpPostBodyRequestWithAPI:api params:@{@"query" : argStr} view:nil hasNetActivity:YES loadingInfo:nil hasFailInfo:YES success:^(NSDictionary * _Nonnull apiDic) {
        DSLog(@"用户头像修改接口apiDic:%@", apiDic);
        [LoginUtils updateFaceImg:apiDic[@"result"]];
        requestModel.resCode = DSResCodeSuccess;
        completion(requestModel);
    } failure:^(id _Nonnull failureInfo) {
        requestModel.resCode = DSResCodeNetFail;
        requestModel.errorInfo = failureInfo;
        completion(requestModel);
    }];
}

// 修改用户信息
+ (NSURLSessionDataTask *)updateUserInfoWithCompletion:(void (^)(UserRequestModel *requestModel))completion {
    UserRequestModel * requestModel = [[UserRequestModel alloc] init];
    NSString *api = @"update_user";
    NSString *argStr = [NSString stringWithFormat:@"mutation{%@(gender:%d,nick_name:\"%@\")}", api, 1, @"ggg"];
    
    return [self httpPostBodyRequestWithParam:@{@"query" : argStr} view:nil hasNetActivity:YES loadingInfo:nil hasFailInfo:YES success:^(id _Nonnull responseObj) {
        DSLog(@"修改用户接口dataDic:%@", responseObj);
        requestModel.resCode = DSResCodeSuccess;
        completion(requestModel);
    } failure:^(id _Nonnull failureInfo) {
        requestModel.resCode = DSResCodeNetFail;
        requestModel.errorInfo = failureInfo;
        completion(requestModel);
    }];
}

@end