mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 00:05:16 +00:00
Add user profile route
This commit is contained in:
@ -1,4 +1,6 @@
|
||||
import 'package:comunic/helpers/groups_helper.dart';
|
||||
import 'package:comunic/helpers/users_helper.dart';
|
||||
import 'package:comunic/models/advanced_user_info.dart';
|
||||
import 'package:comunic/models/api_request.dart';
|
||||
import 'package:comunic/models/group.dart';
|
||||
|
||||
@ -14,4 +16,16 @@ class ForezGroupsHelper {
|
||||
.map(GroupsHelper.getGroupFromAPI)
|
||||
.toList();
|
||||
}
|
||||
|
||||
/// Get advanced information about a Forez member
|
||||
///
|
||||
/// This methods throws an exception in case of failure
|
||||
static Future<AdvancedUserInfo> getMemberInfo(int groupID, int userID) async {
|
||||
final response = await APIRequest.withLogin("forez/get_member_info")
|
||||
.addInt("group", groupID)
|
||||
.addInt("user", userID)
|
||||
.execWithThrowGetObject();
|
||||
|
||||
return UsersHelper.apiToAdvancedUserInfo(response);
|
||||
}
|
||||
}
|
||||
|
@ -151,36 +151,11 @@ class UsersHelper {
|
||||
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"],
|
||||
emailAddress: data["email_address"],
|
||||
customEmojies: _parseCustomEmojies(data["customEmojis"]),
|
||||
publicNote: data["publicNote"],
|
||||
canPostTexts: data["can_post_texts"],
|
||||
isFriendsListPublic: data["friend_list_public"],
|
||||
numberFriends: data["number_friends"],
|
||||
accountCreationTime: data["account_creation_time"],
|
||||
personalWebsite: data["personnalWebsite"],
|
||||
location: data["location"],
|
||||
likes: data["pageLikes"],
|
||||
userLike: data["user_like_page"],
|
||||
);
|
||||
return apiToAdvancedUserInfo(response.getObject());
|
||||
}
|
||||
|
||||
/// Parse the list of custom emojies
|
||||
CustomEmojiesList _parseCustomEmojies(List<dynamic> list) {
|
||||
static CustomEmojiesList _parseCustomEmojies(List<dynamic> list) {
|
||||
final l = list.cast<Map<String, dynamic>>();
|
||||
|
||||
return CustomEmojiesList()
|
||||
@ -193,4 +168,30 @@ class UsersHelper {
|
||||
))
|
||||
.toList());
|
||||
}
|
||||
|
||||
static AdvancedUserInfo apiToAdvancedUserInfo(Map<String, dynamic> data) =>
|
||||
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"],
|
||||
emailAddress: data["email_address"],
|
||||
customEmojies: _parseCustomEmojies(data["customEmojis"]),
|
||||
publicNote: data["publicNote"],
|
||||
canPostTexts: data["can_post_texts"],
|
||||
isFriendsListPublic: data["friend_list_public"],
|
||||
numberFriends: data["number_friends"],
|
||||
accountCreationTime: data["account_creation_time"],
|
||||
personalWebsite: data["personnalWebsite"],
|
||||
location: data["location"],
|
||||
likes: data["pageLikes"],
|
||||
userLike: data["user_like_page"],
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user