• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Import/ImportSendingService.php
  • Класс: BitrixImV2ImportImportSendingService
  • Вызов: ImportSendingService::addMessages
public function addMessages(array $messages): Result
{
	$resultArray = [
		'SUCCESS_RESULT' => [],
		'ERROR_RESULT' => [],
	];

	$messages = $this->fillFiles($messages);

	$addedFiles = [];
	foreach ($messages as $index => $message)
	{
		$externalId = $message['externalId'] === '' ? $index : $message['externalId'];
		$addResult = $this->addMessage($message);
		if (!$addResult->isSuccess())
		{
			$sendStubResult = $this->sendStubMessage($message);
			if (!$sendStubResult->isSuccess())
			{
				return $sendStubResult;
			}
			$error = $addResult->getErrors()[0];
			$resultArray['ERROR_RESULT'][] = [
				'ID' => $sendStubResult->getResult(),
				'EXTERNAL_ID' => $externalId,
				'ERROR_CODE' => $error->getCode(),
				'ERROR_MESSAGE' => $error->getMessage(),
			];
		}
		else
		{
			$resultArray['SUCCESS_RESULT'][] = [
				'ID' => $addResult->getResult()['ID'],
				'EXTERNAL_ID' => $externalId,
			];
			$this->lastDateCreate = $this->getDateTimeFromAtom($message['dateCreate']);
			if (isset($message['fileId']))
			{
				$addedFiles[] = (int)$message['fileId'];
			}
		}
	}
	$this->increaseFilesVersion($addedFiles);

	return (new Result())->setResult($resultArray);
}