• Модуль: rpa
  • Путь к файлу: ~/bitrix/modules/rpa/lib/controller/comment.php
  • Класс: BitrixRpaControllerComment
  • Вызов: Comment::addAction
public function addAction(BitrixRpaModelType $type, int $itemId, array $fields, string $eventId = ''): ?array
{
	$item = $type->getItem($itemId);
	if(!$item)
	{
		$this->addError(new Error(Loc::getMessage('RPA_ITEM_NOT_FOUND_ERROR')));
		return null;
	}

	$userPermissions = Driver::getInstance()->getUserPermissions();
	if(!$userPermissions->canAddComment($item))
	{
		$this->addError(new Error(Loc::getMessage('RPA_ADD_COMMENT_ACCESS_DENIED')));
		return null;
	}

	$emptyFields = $this->getEmptyRequiredParameterNames($fields, ['description']);
	if(!empty($emptyFields))
	{
		$this->addError(new Error('Empty required fields: '.implode(', ', $emptyFields)));
		return null;
	}

	$timeline = BitrixRpaModelTimeline::createForItem($item);
	$timeline->setAction($timeline::ACTION_COMMENT);
	$timeline->setDescription($fields['description']);
	$timeline->setUserId($userPermissions->getUserId());
	$files = $this->processFiles($fields);

	$uiComment = static::getUiComment();
	$result = $timeline->save();
	if($result->isSuccess())
	{
		$this->sendMentions($timeline);
		Driver::getInstance()->getPullManager()->sendTimelineAddEvent($timeline, $eventId);
		$uiComment->saveFiles($timeline->getId(), $files);
		return [
			'comment' => $timeline->preparePublicData(),
		];
	}

	$this->addErrors($result->getErrors());
	return null;
}