• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/call/conference.php
  • Класс: BitrixImCallConference
  • Вызов: Conference::delete
public function delete(): Result
{
	$result = new Result();

	//hide chat
	CIMChat::hide($this->getChatId());

	//delete relations
	RelationTable::deleteBatch(
		['=CHAT_ID' => $this->getChatId()]
	);

	//delete roles
	$presenters = $this->getPresentersList();
	foreach ($presenters as $presenter)
	{
		$deleteRolesResult = ConferenceUserRoleTable::delete(
			[
				'CONFERENCE_ID' => $this->getId(),
				'USER_ID' => $presenter
			]
		);

		if (!$deleteRolesResult->isSuccess())
		{
			return $result->addErrors($deleteRolesResult->getErrors());
		}
	}

	//delete conference
	$deleteConferenceResult = ConferenceTable::delete($this->getId());
	if (!$deleteConferenceResult->isSuccess())
	{
		return $result->addErrors($deleteConferenceResult->getErrors());
	}

	//delete alias
	$deleteAliasResult = AliasTable::delete($this->getAliasId());
	if (!$deleteAliasResult->isSuccess())
	{
		return $result->addErrors($deleteAliasResult->getErrors());
	}

	//delete access codes
	$accessProvider = new BitrixImAccessChatAuthProvider;
	$accessProvider->deleteChatCodes((int)$this->getChatId());

	return $result;
}