1
0
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:
2019-06-10 14:24:34 +02:00
parent c7d11aed1d
commit ba93ffb01e
5 changed files with 234 additions and 0 deletions

View File

@ -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"],
);
}
}