registerUser method
Implementation
Future<User> registerUser(String? username, String? nickname,
String? password, String? avatar, String? subDomain) async {
//
Map<String, String> headers = {"Content-Type": "application/json"};
var body = json.encode({
"username": username,
"nickname": nickname,
"password": password,
"avatar": avatar,
"subDomain": subDomain,
"client": client
});
//
final initUrl = BytedeskUtils.getHostUri('/visitor/api/register/user');
final initResponse =
await httpClient.post(initUrl, headers: headers, body: body);
//解决json解析中的乱码问题
Utf8Decoder utf8decoder = const Utf8Decoder(); // fix 中文乱码
//将string类型数据 转换为json类型的数据
final responseJson =
json.decode(utf8decoder.convert(initResponse.bodyBytes));
debugPrint("registerUser:$responseJson");
//
int statusCode = responseJson['status_code'];
if (statusCode == 200) {
User user = User.fromJson(responseJson['data']);
//
SpUtil.putString(BytedeskConstants.uid, user.uid!);
SpUtil.putString(BytedeskConstants.username, user.username!);
SpUtil.putString(BytedeskConstants.password, password!);
SpUtil.putString(BytedeskConstants.nickname, user.nickname!);
SpUtil.putString(BytedeskConstants.avatar, user.avatar!);
SpUtil.putString(BytedeskConstants.description, user.description!);
SpUtil.putString(BytedeskConstants.subDomain, user.subDomain!);
// 解析用户资料
return user;
} else {
//
SpUtil.putString(BytedeskConstants.uid, responseJson['data']);
SpUtil.putString(
BytedeskConstants.username, '${username!}@${subDomain!}');
SpUtil.putString(BytedeskConstants.password, password!);
SpUtil.putString(BytedeskConstants.nickname, nickname!);
SpUtil.putString(BytedeskConstants.avatar, avatar!);
SpUtil.putString(BytedeskConstants.description, "");
SpUtil.putString(BytedeskConstants.subDomain, subDomain);
}
return const User();
}