Line data Source code
1 : import 'package:stream_feed_dart/src/core/api/users_api.dart'; 2 : import 'package:stream_feed_dart/src/core/http/token.dart'; 3 : import 'package:stream_feed_dart/src/core/models/user.dart'; 4 : import 'package:stream_feed_dart/src/core/util/token_helper.dart'; 5 : 6 : class UsersClient { 7 : ///Initialize a user session object 8 2 : UsersClient(this.users, {this.userToken, this.secret}); 9 : 10 : ///User JWT token 11 : final Token? userToken; 12 : final UsersApi users; 13 : final String? secret; 14 : 15 : /// Create a new user in stream 16 : /// 17 : /// Usage 18 : /// 19 : /// ```dart 20 : /// await users.add('john-doe', { 21 : /// 'name': 'John Doe', 22 : /// 'occupation': 'Software Engineer', 23 : /// 'gender': 'male', 24 : /// }); 25 : /// ``` 26 : /// API docs: [adding-users](https://getstream.io/activity-feeds/docs/flutter-dart/users_introduction/?language=dart#adding-users) 27 1 : Future<User> add( 28 : String id, 29 : Map<String, Object> data, { 30 : bool? getOrCreate, 31 : }) { 32 : final token = 33 1 : userToken ?? TokenHelper.buildUsersToken(secret!, TokenAction.write); 34 2 : return users.add(token, id, data, getOrCreate ?? false); 35 : } 36 : 37 : /// Delete the user 38 : /// Usage: 39 : ///```dart 40 : ///await users.delete('123'); 41 : ///``` 42 : ///API docs: [removing-users](https://getstream.io/activity-feeds/docs/flutter-dart/users_introduction/?language=dart#removing-users) 43 1 : Future<void> delete(String id) { 44 : final token = 45 1 : userToken ?? TokenHelper.buildUsersToken(secret!, TokenAction.delete); 46 2 : return users.delete(token, id); 47 : } 48 : 49 : /// Get the user data 50 : /// Usage 51 : /// ```dart 52 : /// await users.get('123'); 53 : /// ``` 54 : /// API docs: [retrieving-users](https://getstream.io/activity-feeds/docs/flutter-dart/users_introduction/?language=dart#retrieving-users) 55 1 : Future<User> get( 56 : String id, { 57 : bool? withFollowCounts, 58 : }) { 59 : final token = 60 1 : userToken ?? TokenHelper.buildUsersToken(secret!, TokenAction.read); 61 2 : return users.get(token, id, withFollowCounts ?? true); 62 : } 63 : 64 : /// Update the user 65 : /// Usage: 66 : /// ```dart 67 : /// await users.update('123', { 68 : /// 'name': 'Jane Doe', 69 : /// 'occupation': 'Software Engineer', 70 : /// 'gender': 'female', 71 : /// }); 72 : /// ``` 73 : /// API docs: [updating-users](https://getstream.io/activity-feeds/docs/flutter-dart/users_introduction/?language=dart#updating-users) 74 1 : Future<User> update(String id, Map<String, Object> data) { 75 : final token = 76 1 : userToken ?? TokenHelper.buildUsersToken(secret!, TokenAction.write); 77 2 : return users.update(token, id, data); 78 : } 79 : }