mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-03 19:54:12 +00:00 
			
		
		
		
	Create empty user page
This commit is contained in:
		@@ -1,6 +1,7 @@
 | 
			
		||||
import 'package:comunic/enums/user_page_visibility.dart';
 | 
			
		||||
import 'package:comunic/helpers/database/users_database_helper.dart';
 | 
			
		||||
import 'package:comunic/lists/users_list.dart';
 | 
			
		||||
import 'package:comunic/models/advanced_user_info.dart';
 | 
			
		||||
import 'package:comunic/models/api_request.dart';
 | 
			
		||||
import 'package:comunic/models/user.dart';
 | 
			
		||||
 | 
			
		||||
@@ -10,6 +11,15 @@ import 'package:comunic/models/user.dart';
 | 
			
		||||
///
 | 
			
		||||
/// @author Pierre HUBERT
 | 
			
		||||
 | 
			
		||||
/// Handle advanced information error
 | 
			
		||||
enum GetUserAdvancedInformationErrorCause { NOT_FOUND, NETWORK_ERROR }
 | 
			
		||||
 | 
			
		||||
class GetUserAdvancedUserError extends Error {
 | 
			
		||||
  final GetUserAdvancedInformationErrorCause cause;
 | 
			
		||||
 | 
			
		||||
  GetUserAdvancedUserError(this.cause) : assert(cause != null);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class UsersHelper {
 | 
			
		||||
  final UsersDatabaseHelper _usersDatabaseHelper = UsersDatabaseHelper();
 | 
			
		||||
 | 
			
		||||
@@ -87,4 +97,39 @@ class UsersHelper {
 | 
			
		||||
 | 
			
		||||
    return list;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /// Try to fetch advanced information about a user
 | 
			
		||||
  Future<AdvancedUserInfo> getAdvancedInfo(int id) async {
 | 
			
		||||
    final response = await APIRequest(
 | 
			
		||||
        uri: "user/getAdvancedUserInfo",
 | 
			
		||||
        needLogin: true,
 | 
			
		||||
        args: {"userID": id.toString()}).exec();
 | 
			
		||||
 | 
			
		||||
    // Handle exceptions
 | 
			
		||||
    if (response.code != 200) {
 | 
			
		||||
      var cause = GetUserAdvancedInformationErrorCause.NETWORK_ERROR;
 | 
			
		||||
 | 
			
		||||
      if (response.code == 404)
 | 
			
		||||
        cause = GetUserAdvancedInformationErrorCause.NOT_FOUND;
 | 
			
		||||
 | 
			
		||||
      throw new GetUserAdvancedUserError(cause);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    final data = response.getObject();
 | 
			
		||||
 | 
			
		||||
    return AdvancedUserInfo(
 | 
			
		||||
      id: data["userID"],
 | 
			
		||||
      firstName: data["firstName"],
 | 
			
		||||
      lastName: data["lastName"],
 | 
			
		||||
      pageVisibility: data["publicPage"] == "false"
 | 
			
		||||
          ? UserPageVisibility.PRIVATE
 | 
			
		||||
          : (data["openPage"] == "false"
 | 
			
		||||
              ? UserPageVisibility.PRIVATE
 | 
			
		||||
              : UserPageVisibility.OPEN),
 | 
			
		||||
      virtualDirectory:
 | 
			
		||||
          data["virtualDirectory"] == "" ? null : data["virtualDirectory"],
 | 
			
		||||
      accountImageURL: data["accountImage"],
 | 
			
		||||
      publicNote: data["publicNote"],
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user