useDirectQuery) { return $this->directQuery($params); } $methodName = static::REST_METHOD_PREFIX . '.' . $params['methodName']; $parameters = $params['parameters']; $engine = new Engine\Bitrix(); if (!$engine->isRegistered()) { return false; } $parameters['proxy_client_id'] = $this->getAuthAdapter()->getClientId(); $parameters['lang'] = LANGUAGE_ID; $transport = $engine->getInterface()->getTransport(); if ($params['timeout']) { $transport->setTimeout($params['timeout']); } $response = $transport->call($methodName, $parameters); if ($response['result']['RESULT']) { return $response['result']['RESULT']; } if ($response['error']) { throw new InvalidOperationException($response['error_description'] ? $response['error_description'] : $response['error']); } return []; } }