• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/lib/preset/data/webhook.php
  • Класс: BitrixRestPresetDataWebhook
  • Вызов: Webhook::getList
static function getList() : array
{
	$result = [];

	$cache = Cache::createInstance();
	if ($cache->initCache(static::CACHE_TIME, 'all' . LANGUAGE_ID, static::CACHE_DIR))
	{
		$result = $cache->getVars();
	}
	elseif ($cache->startDataCache())
	{
		$eventDictionary = new DictionaryWebHook();
		$eventDictionaryResult = [];
		foreach ($eventDictionary as $event)
		{
			$eventDictionaryResult[mb_strtoupper($event['code'])] = $event;
		}
		$eventList = CRestUtil::getEventList();
		$eventDistinctId = [];
		foreach ($eventList as $type => $events)
		{
			foreach ($events as $event)
			{
				if (array_key_exists($event, $eventDictionaryResult) && !in_array(mb_strtoupper($event), $eventDistinctId))
				{
					$event = mb_strtoupper($event);
					$eventDistinctId[] = $event;

					$result[] = [
						'id' => $event,
						'name' => !empty($eventDictionaryResult[$event]['name'])
							? $eventDictionaryResult[$event]['name'] . ' (' . $event . ')' : $event,
						'descr' => !empty($eventDictionaryResult[$event]['descr'])
							? $eventDictionaryResult[$event]['descr'] : '',
					];
				}
			}
		}
		$cache->endDataCache($result);
	}

	return $result;
}