• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/controller/conference.php
  • Класс: BitrixImControllerConference
  • Вызов: Conference::createAction
public function createAction(JsonPayload $payload)
{
	if (!isset($payload->getData()['fields']))
	{
		$this->addError(new Error(Loc::getMessage('IM_CONFERENCE_EDIT_CREATION_ERROR')));

		return null;
	}

	$fields = $payload->getData()['fields'];
	$fields = array_change_key_case($fields, CASE_UPPER);
	$fields = self::recursiveWhiteList($fields, BitrixImCallConference::AVAILABLE_PARAMS);

	$fields['ID'] = isset($fields['ID']) ? (int)$fields['ID'] : 0;
	if ($fields['ID'] > 0)
	{
		$updatingResult = $this->updateConference($fields);
		if (!$updatingResult->isSuccess())
		{
			$this->addErrors($updatingResult->getErrors());

			return null;
		}

		return $updatingResult;
	}

	$addingResult = $this->createConference($payload, $fields);
	if (!$addingResult->isSuccess())
	{
		$this->addErrors($addingResult->getErrors());

		return null;
	}

	$aliasData = $addingResult->getData()['ALIAS_DATA'];

	return [
		'CHAT_ID' => $addingResult->getData()['CHAT_ID'],
		'ALIAS' => $aliasData['ALIAS'],
		'LINK' => $aliasData['LINK']
	];
}