mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 04:04:18 +00:00 
			
		
		
		
	Get and show the name of conversation members
This commit is contained in:
		@@ -1,3 +1,5 @@
 | 
			
		||||
import 'package:comunic/lists/conversations_list.dart';
 | 
			
		||||
import 'package:comunic/lists/users_list.dart';
 | 
			
		||||
import 'package:comunic/models/api_request.dart';
 | 
			
		||||
import 'package:comunic/models/conversation.dart';
 | 
			
		||||
 | 
			
		||||
@@ -7,16 +9,15 @@ import 'package:comunic/models/conversation.dart';
 | 
			
		||||
 | 
			
		||||
class ConversationsHelper {
 | 
			
		||||
  /// Download the list of conversations from the server
 | 
			
		||||
  Future<List<Conversation>> downloadList() async {
 | 
			
		||||
  Future<ConversationsList> downloadList() async {
 | 
			
		||||
    final response =
 | 
			
		||||
        await APIRequest(uri: "conversations/getList", needLogin: true).exec();
 | 
			
		||||
 | 
			
		||||
    if (response.code != 200) return null;
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      List<Conversation> list = List();
 | 
			
		||||
      response.getArray().forEach((f) =>
 | 
			
		||||
          list.add(Conversation(
 | 
			
		||||
      ConversationsList list = ConversationsList();
 | 
			
		||||
      response.getArray().forEach((f) => list.add(Conversation(
 | 
			
		||||
            id: f["ID"],
 | 
			
		||||
            ownerID: f["ID_owner"],
 | 
			
		||||
            lastActive: f["last_active"],
 | 
			
		||||
@@ -27,10 +28,23 @@ class ConversationsHelper {
 | 
			
		||||
          )));
 | 
			
		||||
 | 
			
		||||
      return list;
 | 
			
		||||
 | 
			
		||||
    } on Exception catch(e){
 | 
			
		||||
    } on Exception catch (e) {
 | 
			
		||||
      print(e.toString());
 | 
			
		||||
      return null;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /// Get the name of a [conversation]. This requires information about the
 | 
			
		||||
  /// users of this conversation
 | 
			
		||||
  static String getConversationName(Conversation conversation, UsersList users) {
 | 
			
		||||
    if (conversation.has_name) return conversation.name;
 | 
			
		||||
 | 
			
		||||
    // TODO : exclude current user name
 | 
			
		||||
    String name = "";
 | 
			
		||||
    for (int i = 0; i < 3 && i < conversation.members.length; i++)
 | 
			
		||||
      name +=
 | 
			
		||||
          (i > 0 ? ", " : "") + users.getUser(conversation.members[i]).fullName;
 | 
			
		||||
 | 
			
		||||
    return name;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										47
									
								
								lib/helpers/users_helper.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								lib/helpers/users_helper.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
import 'package:comunic/enums/user_page_visibility.dart';
 | 
			
		||||
import 'package:comunic/lists/users_list.dart';
 | 
			
		||||
import 'package:comunic/models/api_request.dart';
 | 
			
		||||
import 'package:comunic/models/user.dart';
 | 
			
		||||
 | 
			
		||||
/// User helper
 | 
			
		||||
///
 | 
			
		||||
/// Helper used to get information about the users of Comunic
 | 
			
		||||
///
 | 
			
		||||
/// @author Pierre HUBERT
 | 
			
		||||
 | 
			
		||||
class UsersHelper {
 | 
			
		||||
  /// Download information about some given users ID
 | 
			
		||||
  ///
 | 
			
		||||
  /// Return the list of users information in case of success, null in case of
 | 
			
		||||
  /// failure
 | 
			
		||||
  Future<UsersList> downloadInfo(List<int> users) async {
 | 
			
		||||
    // Execute the request
 | 
			
		||||
    final response = await APIRequest(
 | 
			
		||||
        uri: "user/getInfoMultiple", args: {"usersID": users.join(",")}).exec();
 | 
			
		||||
 | 
			
		||||
    // Check if the request did not execute correctly
 | 
			
		||||
    if (response.code != 200) return null;
 | 
			
		||||
 | 
			
		||||
    final list = UsersList();
 | 
			
		||||
    response.getObject().forEach(
 | 
			
		||||
          (k, v) => list.add(
 | 
			
		||||
                User(
 | 
			
		||||
                  id: v["userID"],
 | 
			
		||||
                  firstName: v["firstName"],
 | 
			
		||||
                  lastName: v["lastName"],
 | 
			
		||||
                  pageVisibility: v["publicPage"] == "false"
 | 
			
		||||
                      ? UserPageVisibility.PRIVATE
 | 
			
		||||
                      : (v["openPage"] == "false"
 | 
			
		||||
                          ? UserPageVisibility.PRIVATE
 | 
			
		||||
                          : UserPageVisibility.OPEN),
 | 
			
		||||
                  virtualDirectory: v["virtualDirectory"] == ""
 | 
			
		||||
                      ? null
 | 
			
		||||
                      : v["virtualDirectory"],
 | 
			
		||||
                  accountImageURL: v["accountImage"],
 | 
			
		||||
                ),
 | 
			
		||||
              ),
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
    return list;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user