. */ namespace Volkszaehler\Controller; use Volkszaehler\Model; use Volkszaehler\Util; /** * Data controller * * @author Steffen Vogel * @todo call via redirect from Controller\Channel * @package default */ class DataController extends Controller { /** * Query for data by given channel or group * * @todo authentification/indentification * @todo use uuids for groups or channels */ public function get() { if ($ucid = $this->view->request->getParameter('ucid')) { $entity = $this->em->getRepository('Volkszaehler\Model\Channel')->findOneBy(array('uuid' => $ucid)); } elseif ($ugid = $this->view->request->getParameter('ugid')) { $entity = $this->em->getRepository('Volkszaehler\Model\Group')->findOneBy(array('uuid' => $ugid)); } else { throw new \Exception('you have to specifiy an ugid or ucid paramter'); } if ($entity === FALSE) { throw new \Exception('no group/channel found'); } $from = $this->view->request->getParameter('from'); $to = $this->view->request->getParameter('to'); $groupBy = ($this->view->request->getParameter('groupBy')); // get all readings by default $data = $entity->getInterpreter($this->em, $from, $to)->getValues($groupBy); if ($entity instanceof Model\Group) { $this->view->addGroup($entity, $data); } elseif ($entity instanceof Model\Channel) { $this->view->addChannel($entity, $data); } } /** * Log new readings with logger interfaces * * @todo authentification/indentification */ public function add() { $loggerClassName = 'Volkszaehler\Logger\\' . ucfirst($this->view->request->getParameter('logger')) . 'Logger'; if (!(Util\ClassLoader::classExists($loggerClassName)) || !is_subclass_of($loggerClassName, '\Volkszaehler\Logger\Logger')) { throw new \Exception('\'' . $loggerClassName . '\' is not a valid controller'); } $logger = new $loggerClassName($this->view->request, $this->em); $logger->log(); } } ?>