user_dao.dart 1.29 KB
import 'package:wow_english/common/core/user_util.dart';
import 'package:wow_english/models/user_entity.dart';

import '../apis.dart';
import '../request_client.dart';

class UserDao {
  /// 登录
  static Future<UserEntity?> login(phoneNumber, type, checkKey, checkNumber) async {
    var params = {'phoneNum': phoneNumber, 'type': type, checkKey: checkNumber};
    var data = await requestClient.post<UserEntity>(
      Apis.login,
      data: params,
    );
    if (data != null && data.token.isNotEmpty) {
      UserUtil.saveUser(data);
    }
    return data;
  }

  /// 登出
  static Future logout() async {
    var result = await requestClient.post(Apis.logout);
    print('logout result=$result');
    UserUtil.logout();
    return result;
  }

  /// 发送验证码
  static Future sendCode(phoneNumber, {smsType = 'login'}) async {
    final params = {'phoneNum': phoneNumber, 'smsType': smsType};
    await requestClient.post(Apis.sendSmsCode, data: params);
  }

  /// 获取用户信息
  static Future<UserEntity?> getUserInfo() async {
    return await requestClient.post(Apis.getUserInfo);
  }

  /// 更新用户信息,返回即成功,无body
  static Future updateUserInfo(UserEntity userEntity) async {
    return await requestClient.put(Apis.setUserInfo, data: userEntity.toUpdateJson());
  }
}