mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 08:15:16 +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