• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Link/File/FileService.php
  • Класс: BitrixImV2LinkFileFileService
  • Вызов: FileService::saveFilesFromMessage
public function saveFilesFromMessage(array $files, Message $message): Result
{
	$result = new Result();

	if (empty($files))
	{
		return $result;
	}

	$entities = new BitrixImV2EntityFileFileCollection($files, $message->getChatId());
	/** @var FileCollection $links */
	$links = FileCollection::linkEntityToMessage($entities, $message);

	$saveResult = $this->saveFiles($links);

	if ($links->count() === 0)
	{
		return $result;
	}

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

	if ($saveResult->isSuccess())
	{
		foreach ($links as $link)
		{
			Push::getInstance()
				->setContext($this->context)
				->sendFull($link, self::ADD_FILE_EVENT, ['CHAT_ID' => $link->getChatId()])
			;
		}
	}

	return $result;
}