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:
@ -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
|
||||
|
Reference in New Issue
Block a user