• Модуль: imconnector
  • Путь к файлу: ~/bitrix/modules/imconnector/lib/connectors/base.php
  • Класс: BitrixImConnectorConnectorsBase
  • Вызов: Base::processingUser
protected function processingUser(array $user): Result
{
	$result = new Result();
	$userId = 0;

	$user = $this->getFullName($user);

	$userFieldsResult = $this->getUserByUserCode($user);

	if ($userFieldsResult->isSuccess())
	{
		$userFields = $userFieldsResult->getResult();

		if (is_array($userFields))
		{
			$updateResult = $this->updateUser($user, $userFields);
			$userId = $updateResult->getResult();
			if (empty($userId) && !$updateResult->isSuccess())
			{
				$result->addErrors($updateResult->getErrors());
			}
		}
	}
	else
	{
		$addResult = $this->addUser($user);
		if ($addResult->isSuccess())
		{
			$userId = $addResult->getResult();
		}
		else
		{
			$result->addErrors($addResult->getErrors());
		}
	}

	if (empty($userId))
	{
		$result->addError(new Error(
			Loc::getMessage('IMCONNECTOR_PROXY_NO_ADD_USER'),
			Library::ERROR_CONNECTOR_PROXY_NO_ADD_USER,
			__METHOD__
		));
	}
	else
	{
		$result->setResult($userId);
	}

	return $result;
}