Files
zh-chat-flutter/lib/providers/user_provider.dart
2022-11-01 11:06:51 +08:00

67 lines
1.5 KiB
Dart

import 'package:chat/models/im/search_user_model.dart';
import 'package:chat/models/upload_model.dart';
import 'package:chat/utils/network/http.dart';
import 'package:chat/utils/ui_tools.dart';
class UserProvider {
/// 上传头像
static Future<UploadModel?> uploadAvatar(String filePath) async {
try {
var res = await Http.upload('storage/upload', filePath: filePath);
var model = UploadModel.fromJson(res);
await Http.put('user/setting/avatar', data: {
'value': model.url,
});
return model;
} catch (e) {
UiTools.toast(e.toString());
return null;
}
}
static Future<bool> updateNickname(String nickname) async {
try {
await Http.put('user/setting/nickname', data: {
'value': nickname,
});
return true;
} catch (e) {
UiTools.toast(e.toString());
return false;
}
}
/// 从服务器查找用户
static Future<List<SearchUserModel>?> searchUser(String keyword) async {
try {
var json = await Http.get(
'user/search',
params: {
'keyword': keyword,
},
);
return List<SearchUserModel>.from(
json.map(
(x) => SearchUserModel.fromJson(x),
),
);
} catch (e) {
UiTools.toast(e.toString());
}
return null;
}
static Future<bool?> togglePrivacy() async {
try {
return await Http.put('user/privacy');
} catch (e) {
UiTools.toast(e.toString());
}
return null;
}
}