- Модуль: 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);
}