• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/controller/session/groupactions.php
  • Класс: BitrixImOpenLinesControllerSessionGroupActions
  • Вызов: GroupActions::getDialogAction
public function getDialogAction(): array
{
	$result = [];

	$filter = [
		' Session::STATUS_CLOSE,
		'!=CLOSED' => 'Y',
		'CONFIG_ID' => Config::getIdConfigCanJoin()
	];

	$requestData = $this->request->toArray();
	$currentFilter = BitrixImopenlinesHelpersFilter::getFilter($requestData['fields']['filterId']);
	if ($currentFilter)
	{
		$filter = array_merge($filter, $currentFilter);
	}

	$sessions = SessionTable::getList([
		'filter' => $filter,
		'select' => [
			'ID',
			'CHAT_ID'
		]
	]);

	while ($session = $sessions->fetch())
	{
		if (
			!empty($session['ID'])
			&& !empty($session['CHAT_ID'])
		)
		{
			$result[] = [
				'sessionId' => $session['ID'],
				'chatId' => $session['CHAT_ID']
			];
		}
	}

	$this->declareTotalItems(count($result));
	$this->declareProcessDone();

	return $this->preformProcessAnswer([
		'sessions' => $result,
	]);
}