• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sharing/link/factory.php
  • Класс: BitrixCalendarSharingLinkFactory
  • Вызов: Factory::getLinkByHash
public function getLinkByHash(string $hash): ?BitrixCalendarCoreBaseEntityInterface
{
	$sharingLinkEO = SharingLinkTable::query()
		->setSelect(['*'])
		->where('HASH', $hash)
		->exec()->fetchObject();

	if ($sharingLinkEO === null)
	{
		return null;
	}

	if ($sharingLinkEO->getObjectType() === Helper::USER_SHARING_TYPE)
	{
		return (new UserLinkMapper())->getByEntityObject($sharingLinkEO);
	}

	if ($sharingLinkEO->getObjectType() === Helper::EVENT_SHARING_TYPE)
	{
		return (new EventLinkMapper())->getByEntityObject($sharingLinkEO);
	}

	if ($sharingLinkEO->getObjectType() === Helper::CRM_DEAL_SHARING_TYPE)
	{
		return (new CrmDealLinkMapper())->getByEntityObject($sharingLinkEO);
	}

	return null;
}