• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/lib/apmanager.php
  • Класс: BitrixSocialservicesApManager
  • Вызов: ApManager::receive
static function receive($userId, $connectionString)
{
	if(static::checkState())
	{
		$connection = static::parseConnectionString($connectionString);

		if($connection)
		{
			$uri = new Uri($connection['endpoint']);

			if($uri->getHost())
			{
				$dbRes = ApTable::getList(array(
					'filter' => array(
						'=USER_ID' => $userId,
						'=DOMAIN' => $uri->getHost()
					),
					'select' => array('ID')
				));
				$existingEntry = $dbRes->fetch();
				if($existingEntry)
				{
					$result = ApTable::update($existingEntry['ID'], array(
						'ENDPOINT' => $uri->getLocator(),
						'LAST_AUTHORIZE' => '',
					));
				}
				else
				{
					$result = ApTable::add(array(
						'USER_ID' => $userId,
						'DOMAIN' => $uri->getHost(),
						'ENDPOINT' => $uri->getLocator(),
					));
				}

				return $result->isSuccess();
			}
		}
	}

	return false;
}