transformDialogCallIntoGroupCall method

  1. @override
Future<void> transformDialogCallIntoGroupCall(
  1. ChatId chatId,
  2. List<UserId> additionalMemberIds,
  3. ChatName? groupName
)
override

Moves an ongoing ChatCall in a Chat-dialog to a newly created Chat-group, optionally adding new members.

Implementation

@override
Future<void> transformDialogCallIntoGroupCall(
  ChatId chatId,
  List<UserId> additionalMemberIds,
  ChatName? groupName,
) async {
  Log.debug(
    'transformDialogCallIntoGroupCall($chatId, $additionalMemberIds, $groupName)',
    '$runtimeType',
  );

  try {
    await _graphQlProvider.transformDialogCallIntoGroupCall(
      chatId,
      additionalMemberIds,
      groupName,
    );
  } on TransformDialogCallIntoGroupCallException catch (e) {
    switch (e.code) {
      case TransformDialogCallIntoGroupCallErrorCode.noCall:
      case TransformDialogCallIntoGroupCallErrorCode.unknownChat:
        WebUtils.removeCall(chatId);
        remove(chatId);
        break;

      case TransformDialogCallIntoGroupCallErrorCode.notDialog:
        // No-op.
        break;

      case TransformDialogCallIntoGroupCallErrorCode.unknownUser:
        // TODO(temp): What to do here?
        break;

      case TransformDialogCallIntoGroupCallErrorCode.wrongMembersCount:
      case TransformDialogCallIntoGroupCallErrorCode.blocked:
      case TransformDialogCallIntoGroupCallErrorCode.artemisUnknown:
        rethrow;
    }
  }
}