/** * @param FilterInterface $filterInterface * @return array */ private function getDevices(FilterInterface $filterInterface) { $client = $this->get('fhem_connection.services.client_service'); $filter = new Filter(); $filter->addFilter($filterInterface); return $client->getContent($filter); }
/** * @param ParameterBag $query * @return Filter */ public function transform(ParameterBag $query) { $filter = new Filter(); if (null === $query->get('filter')) { return $filter; } foreach ($query->get('filter') as $name => $value) { $filterClassName = '\\FhemConnectionBundle\\Filter\\' . ucfirst($name) . 'Filter'; // TODO create factory $filterClass = new $filterClassName($value); $filter->addFilter($filterClass); } return $filter; }
/** * @param Filter $filter * @return mixed */ public function execute(Filter $filter = null) { $json = file_get_contents($this->endpoint . '/fhem?cmd=jsonlist2%20' . $filter->__toString() . '&XHR=1'); // TODO: need error handling here return json_decode($json); }