mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 00:05:16 +00:00
Can create group conversations
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
import 'package:comunic/helpers/groups_helper.dart';
|
||||
import 'package:comunic/helpers/serialization/conversation_message_serialization_helper.dart';
|
||||
import 'package:comunic/helpers/serialization/conversations_serialization_helper.dart';
|
||||
import 'package:comunic/helpers/users_helper.dart';
|
||||
@ -238,6 +239,8 @@ class ConversationsHelper {
|
||||
color: map["color"] == null ? null : HexColor(map["color"]),
|
||||
logoURL: map["logo"],
|
||||
groupID: map["group_id"],
|
||||
groupMinMembershipLevel:
|
||||
APIGroupsMembershipLevelsMap[map["group_min_membership_level"]],
|
||||
members: map["members"]
|
||||
.cast<Map<String, dynamic>>()
|
||||
.map(apiToConversationMember)
|
||||
|
@ -6,6 +6,7 @@ import 'package:comunic/models/advanced_group_info.dart';
|
||||
import 'package:comunic/models/api_request.dart';
|
||||
import 'package:comunic/models/group.dart';
|
||||
import 'package:comunic/models/group_membership.dart';
|
||||
import 'package:comunic/models/new_group_conversation.dart';
|
||||
import 'package:comunic/utils/api_utils.dart';
|
||||
import 'package:comunic/utils/map_utils.dart';
|
||||
|
||||
@ -13,7 +14,7 @@ import 'package:comunic/utils/map_utils.dart';
|
||||
///
|
||||
/// @author Pierre HUBERT
|
||||
|
||||
const _APIGroupsMembershipLevelsMap = {
|
||||
const APIGroupsMembershipLevelsMap = {
|
||||
"administrator": GroupMembershipLevel.ADMINISTRATOR,
|
||||
"moderator": GroupMembershipLevel.MODERATOR,
|
||||
"member": GroupMembershipLevel.MEMBER,
|
||||
@ -326,7 +327,22 @@ class GroupsHelper {
|
||||
await APIRequest.withLogin("groups/update_membership_level")
|
||||
.addInt("groupID", groupID)
|
||||
.addInt("userID", userID)
|
||||
.addString("level", invertMap(_APIGroupsMembershipLevelsMap)[level])
|
||||
.addString("level", invertMap(APIGroupsMembershipLevelsMap)[level])
|
||||
.execWithThrow();
|
||||
|
||||
/// Create a new group conversation
|
||||
///
|
||||
/// Throws in case of failure
|
||||
static Future<void> createGroupConversation(
|
||||
NewGroupConversation conv) async =>
|
||||
await APIRequest.withLogin("groups/create_conversation")
|
||||
.addInt("group_id", conv.groupID)
|
||||
.addString(
|
||||
"min_membership_level",
|
||||
APIGroupsMembershipLevelsMap.entries
|
||||
.firstWhere((e) => e.value == conv.minMembershipLevel)
|
||||
.key)
|
||||
.addString("name", conv.name)
|
||||
.execWithThrow();
|
||||
|
||||
/// Turn an API entry into a group object
|
||||
@ -336,7 +352,7 @@ class GroupsHelper {
|
||||
name: map["name"],
|
||||
iconURL: map["icon_url"],
|
||||
numberMembers: map["number_members"],
|
||||
membershipLevel: _APIGroupsMembershipLevelsMap[map["membership"]],
|
||||
membershipLevel: APIGroupsMembershipLevelsMap[map["membership"]],
|
||||
visibilityLevel: _APIGroupsVisibilityLevelsMap[map["visibility"]],
|
||||
registrationLevel:
|
||||
_APIGroupsRegistrationLevelsMap[map["registration_level"]],
|
||||
@ -352,7 +368,7 @@ class GroupsHelper {
|
||||
name: map["name"],
|
||||
iconURL: map["icon_url"],
|
||||
numberMembers: map["number_members"],
|
||||
membershipLevel: _APIGroupsMembershipLevelsMap[map["membership"]],
|
||||
membershipLevel: APIGroupsMembershipLevelsMap[map["membership"]],
|
||||
visibilityLevel: _APIGroupsVisibilityLevelsMap[map["visibility"]],
|
||||
registrationLevel:
|
||||
_APIGroupsRegistrationLevelsMap[map["registration_level"]],
|
||||
@ -373,6 +389,6 @@ class GroupsHelper {
|
||||
userID: row["user_id"],
|
||||
groupID: row["group_id"],
|
||||
timeCreate: row["time_create"],
|
||||
level: _APIGroupsMembershipLevelsMap[row["level"]],
|
||||
level: APIGroupsMembershipLevelsMap[row["level"]],
|
||||
);
|
||||
}
|
||||
|
@ -52,6 +52,8 @@ class ServerConfigurationHelper {
|
||||
minLikesLifetime: dataConservationPolicy["min_likes_lifetime"],
|
||||
),
|
||||
conversationsPolicy: ConversationsPolicy(
|
||||
maxConversationNameLen:
|
||||
conversationsPolicy["max_conversation_name_len"],
|
||||
minMessageLen: conversationsPolicy["min_message_len"],
|
||||
maxMessageLen: conversationsPolicy["max_message_len"],
|
||||
allowedFilesType:
|
||||
|
Reference in New Issue
Block a user