1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-06-19 00:05:16 +00:00

Can change conversation visibility

This commit is contained in:
2021-04-06 17:40:13 +02:00
parent 054b2a1d32
commit 5773981750
5 changed files with 71 additions and 6 deletions

View File

@ -1,9 +1,11 @@
import 'dart:typed_data';
import 'package:comunic/helpers/conversations_helper.dart';
import 'package:comunic/lists/group_members_list.dart';
import 'package:comunic/lists/groups_list.dart';
import 'package:comunic/models/advanced_group_info.dart';
import 'package:comunic/models/api_request.dart';
import 'package:comunic/models/conversation.dart';
import 'package:comunic/models/group.dart';
import 'package:comunic/models/group_membership.dart';
import 'package:comunic/models/new_group_conversation.dart';
@ -345,6 +347,20 @@ class GroupsHelper {
.addString("name", conv.name)
.execWithThrow();
/// Set new conversation visibility level
///
/// Throws in case of failure
static Future<void> setConversationVisibility(
int convID, GroupMembershipLevel newLevel) async =>
await APIRequest.withLogin("groups/set_conversation_visibility")
.addInt("conv_id", convID)
.addString(
"min_membership_level",
APIGroupsMembershipLevelsMap.entries
.firstWhere((e) => e.value == newLevel)
.key)
.execWithThrow();
/// Turn an API entry into a group object
Group _getGroupFromAPI(Map<String, dynamic> map) {
return Group(
@ -381,6 +397,10 @@ class GroupsHelper {
url: nullToEmpty(map["url"]),
likes: map["number_likes"],
userLike: map["is_liking"],
conversations: map["conversations"]
.map((s) => ConversationsHelper.apiToConversation(s))
.cast<Conversation>()
.toList(),
);
/// Create [GroupMembership] object from API entry