CNLiveEmailModifyPassword.m 3.05 KB
//
//  CNLiveEmailModifyPassword.m
//  CNLiveUserSystemDemo
//
//  Created by 张旭 on 2017/5/26.
//  Copyright © 2017年 zhulin. All rights reserved.
//

#import "CNLiveEmailModifyPassword.h"
#import "CNLiveUserNetworkManager.h"
#import "CNLiveUserSystemTools.h"
#import "NSDictionary+Safety.h"

//通过邮箱修改密码
static  NSString *emailModifyPwdTestURL = @"http://test.open.cnlive.com/openapi/api2/user/updatePwdByEmail";
static  NSString *emailModifyPwdFormalURL = @"https://api.cnlive.com/open/api2/user/updatePwdByEmail";

@implementation CNLiveEmailModifyPassword

- (void)modifyPwdWithAppId:(NSString *)appId appKey:(NSString *)appKey email:(NSString *)email newPwd:(NSString *)newPwd success:(void (^)(id result))success failure :(void (^)(NSDictionary *errorDic))failure
{
    NSDictionary *params = @{@"appId":[CNLiveUserSystemTools verify:appId],
                             @"email":[CNLiveUserSystemTools verify:email],
                             @"newPwd":[CNLiveUserSystemTools verify:newPwd],
                             @"clientPlat":@"i",
                             @"platform_id":[NSBundle mainBundle].bundleIdentifier
                             };
    
    NSMutableDictionary *parameter = [NSMutableDictionary dictionaryWithDictionary:params];
    NSString *string = [NSString stringWithFormat:@"%@&key=%@", [CNLiveUserSystemTools signvalue:parameter], [CNLiveUserSystemTools verify:appKey]];
    NSString *signString = [[CNLiveUserSystemTools sha1:string] uppercaseString];
    
    [parameter setObject:signString forKey:@"sign"];
    NSString *url;
    if ([CNLiveUserSystemTools isTestEnvironment]) {
        url = emailModifyPwdTestURL;
    } else {
        url = emailModifyPwdFormalURL;
    }
    [self requestWithURL:url parameter:parameter success:success failure:failure];
}

#pragma mark - request
- (void)requestWithURL:(NSString *)URL parameter:(NSDictionary *)param success:(void(^)(id result))success failure :(void (^)(NSDictionary *errorDic))failure
{
    
    [[CNLiveUserNetworkManager manager] requestPostURL:URL parameters:param success:^(NSURLResponse * _Nullable response, id  _Nullable responseObject) {
        
        
        responseObject = [responseObject validatedDictionary];
        
        if ([[responseObject allKeys] containsObject:@"errorCode"] && [responseObject[@"errorCode"] isEqualToString:@"0"]) {
            
            if (success) {
                success(responseObject);
            }
            
        } else {
            
            if (failure) {
                failure(responseObject);
            }
            
            [CNLiveUserSystemTools errorStat:responseObject[@"errorMessage"]];
        }
        
    } failure:^(NSURLResponse * _Nullable response, NSError * _Nullable error) {
        
        NSDictionary *errorDic = @{@"errorCode": [NSString stringWithFormat:@"%ld", error.code], @"errorMessage": error.localizedDescription};
        
        if (failure) {
            failure(errorDic);
        }
        
        [CNLiveUserSystemTools errorStat:error.localizedDescription];
        
    }];
}

@end