addMember method

dynamic addMember(
  1. List<User>? users,
  2. BuildContext context
)

Implementation

addMember(List<User>? users, BuildContext context) {
  List<GroupMember> members = [];
  List<User> addedMembers = [];

  if (users == null) return;

  for (User user in users) {
    members.add(GroupMember(
        scope: GroupMemberScope.participant,
        name: user.name,
        role: user.role ?? "",
        status: user.status ?? "",
        uid: user.uid,
        avatar: user.avatar,
        blockedByMe: user.blockedByMe,
        joinedAt: DateTime.now(),
        hasBlockedMe: user.hasBlockedMe,
        lastActiveAt: user.lastActiveAt,
        link: user.link,
        metadata: user.metadata,
        statusMessage: user.statusMessage,
        tags: user.tags));
  }

  CometChat.addMembersToGroup(
      guid: group.guid,
      groupMembers: members,
      onSuccess: (Map<String?, String?> result) {
        List<cc.Action> messages = [];
        for (GroupMember member in members) {
          if (result[member.uid] == "success") {
            addedMembers.add(member);
            messages.add(cc.Action(
              conversationId: _conversationId!,
              message: '${_loggedInUser?.name} added ${member.name}',
              oldScope: '',
              newScope: GroupMemberScope.participant,
              muid: DateTime.now().microsecondsSinceEpoch.toString(),
              sender: _loggedInUser!,
              receiverUid: group.guid,
              type: MessageTypeConstants.groupActions,
              receiverType: ReceiverTypeConstants.group,
              parentMessageId: 0,
            ));
          }
        }
        group.membersCount += addedMembers.length;
        Navigator.of(context).pop();
        CometChatGroupEvents.ccGroupMemberAdded(
            messages, addedMembers, group, _loggedInUser!);
      },
      onError: onError);
}