• Модуль: imconnector
  • Путь к файлу: ~/bitrix/modules/imconnector/lib/infoconnectors.php
  • Класс: BitrixImConnectorInfoConnectors
  • Вызов: InfoConnectors::refreshInfoConnectors
static function refreshInfoConnectors(int $lineId): Result
{
	$result = new Result();

	if ($data = Connector::getOutputInfoConnectorsLine($lineId))
	{
		$result->setResult($data);

		$dataEncoded = Json::encode($data);
		$hashDataEncoded = md5($dataEncoded);
		$timeExpires = DateTime::createFromTimestamp(time() + (int)Library::CACHE_TIME_INFO_CONNECTORS_LINE);

		$connectorsInfo = [
			'DATA' => $dataEncoded,
			'EXPIRES' => $timeExpires,
			'DATA_HASH' => $hashDataEncoded,
		];

		$connectorRes = InfoConnectorsTable::getByPrimary($lineId);
		$connectorsInfoCount = $connectorRes->getSelectedRowsCount();
		if ($connectorsInfoCount)
		{
			$updateResult = InfoConnectorsTable::update($lineId, $connectorsInfo);
			if (!$updateResult->isSuccess())
			{
				$result->addErrors($updateResult->getErrors());
			}
		}
		else
		{
			$connectorsInfo['LINE_ID'] = $lineId;
			$addResult = InfoConnectorsTable::add($connectorsInfo);
			if (!$addResult->isSuccess())
			{
				$result->addErrors($addResult->getErrors());
			}
		}
	}
	else
	{
		self::deleteInfoConnectors($lineId);
	}

	return $result;
}