From 1b05e4c619076b2ed6be801de61d123760c25282 Mon Sep 17 00:00:00 2001 From: qzl Date: Wed, 11 Mar 2026 20:58:32 +0800 Subject: [PATCH] feat(users): add getById API and UserBasicInfo --- apps/lib/features/users/data/users_api.dart | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/apps/lib/features/users/data/users_api.dart b/apps/lib/features/users/data/users_api.dart index 0d5cf50..414fd52 100644 --- a/apps/lib/features/users/data/users_api.dart +++ b/apps/lib/features/users/data/users_api.dart @@ -1,12 +1,33 @@ import 'package:social_app/core/api/i_api_client.dart'; import 'models/user_response.dart'; +class UserBasicInfo { + final String id; + final String username; + final String? avatarUrl; + + UserBasicInfo({required this.id, required this.username, this.avatarUrl}); + + factory UserBasicInfo.fromJson(Map json) { + return UserBasicInfo( + id: json['id'] as String, + username: json['username'] as String, + avatarUrl: json['avatar_url'] as String?, + ); + } +} + class UsersApi { final IApiClient _client; static const _prefix = '/api/v1/users'; UsersApi(this._client); + Future getById(String userId) async { + final response = await _client.get('$_prefix/$userId'); + return UserBasicInfo.fromJson(response.data); + } + Future getMe() async { final response = await _client.get('$_prefix/me'); return UserResponse.fromJson(response.data);