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

	if (!static::isEnvironmentConfigured()) {
		return $result->addError(
			new Error(
				Loc::getMessage('IM_CALL_CONFERENCE_ERROR_ENVIRONMENT_CONFIG'),
				'ENVIRONMENT_CONFIG_ERROR'
			)
		);
	}

		$validationResult = static::validateFields($fields);

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

	$addData = $validationResult->getData()['FIELDS'];
	$addData['ENTITY_TYPE'] = static::ALIAS_TYPE;
	$addData['ENTITY_DATA_1'] = $addData['VIDEOCONF']['IS_BROADCAST'] === 'Y'? static::BROADCAST_MODE: '';

	$currentUser = BitrixImUser::getInstance();
	$addData['AUTHOR_ID'] = $currentUser->getId();

	if (!isset($fields['MANAGERS']))
	{
		$addData['MANAGERS'] = [];
		if ($addData['VIDEOCONF']['IS_BROADCAST'] === 'Y')
		{
			foreach ($addData['VIDEOCONF']['PRESENTERS'] as $presenter)
			{
				$addData['MANAGERS'][$presenter] = true;
			}
		}
	}

	$result->setData(['FIELDS' => $addData]);

	return $result;
}