| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import 'dart:convert';
- import '../../core/constants/api_constants.dart';
- import '../datasources/remote/api_client.dart';
- import '../models/user.dart';
- import '../models/api_response.dart';
-
- class UserRepository {
- final ApiClient _apiClient;
-
- UserRepository({required ApiClient apiClient}) : _apiClient = apiClient;
-
- // 获取用户资料
- Future<ApiResponse<User>> getUserProfile() async {
- try {
- final response = await _apiClient.get(
- ApiConstants.getUserProfileUrl(),
- withAuth: true,
- );
-
- if (response.statusCode == 200) {
- final userData = json.decode(response.body);
- return ApiResponse<User>(
- success: true,
- message: '获取成功',
- data: User.fromJson(userData),
- );
- } else {
- return ApiResponse<User>(
- success: false,
- message: '获取用户资料失败',
- );
- }
- } catch (e) {
- return ApiResponse<User>(
- success: false,
- message: '获取失败: $e',
- );
- }
- }
-
- // 更新用户资料
- Future<ApiResponse<User>> updateUserProfile(User user) async {
- try {
- final updateData = {
- 'full_name': user.fullName,
- 'email': user.email,
- };
-
- final response = await _apiClient.put(
- ApiConstants.getUpdateProfileUrl(),
- updateData,
- withAuth: true,
- );
-
- if (response.statusCode == 200) {
- final userData = json.decode(response.body);
- return ApiResponse<User>(
- success: true,
- message: '更新成功',
- data: User.fromJson(userData),
- );
- } else {
- final error = json.decode(response.body);
- return ApiResponse<User>(
- success: false,
- message: error['detail'] ?? '更新失败',
- );
- }
- } catch (e) {
- return ApiResponse<User>(
- success: false,
- message: '更新失败: $e',
- );
- }
- }
- }
|