• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/lib/integration/zoom/conference.php
  • Класс: BitrixSocialServicesIntegrationZoomConference
  • Вызов: Conference::prepareConferenceParams
static function prepareConferenceParams(array $data): Result
{
	$result = new Result();

	if (empty($data['conferenceTitle']))
	{
		$result->addError(new Error('Invalid entity type'));
	}

	$timestampStart = $data['timestampStart'] / 1000;
	if ($timestampStart < time())
	{
		$result->addError(new Error('Invalid date'));
	}

	$data['duration'] = (int)$data['duration'];
	if ($data['duration'] <= 0)
	{
		$result->addError(new Error('Invalid duration'));
	}

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

	$dateTimeStart = BitrixMainTypeDateTime::createFromTimestamp($timestampStart);
	$data['start_time'] = $dateTimeStart->setTimeZone(new DateTimeZone('UTC'))->format(DATE_ATOM);

	if ($data['durationType'] === 'h')
	{
		$data['duration'] *= 60;
	}

	$randomSequence = new BitrixMainTypeRandomSequence($data['conferenceTitle'].$data['start_time']);
	$password = $randomSequence->randString(10);

	$result->setData([
		'topic' => $data['conferenceTitle'],
		'type' => self::MEETING_SCHEDULED_TYPE,
		'start_time' => $data['start_time'],
		'duration' => $data['duration'],
		'password' => $password,
		'timezone' => 'UTC',
	]);

	return $result;
}