Drest\Service\Action\GetElement::execute PHP Method

execute() public method

public execute ( )
    public function execute()
    {
        $classMetaData = $this->getMatchedRoute()->getClassMetaData();
        $elementName = $classMetaData->getEntityAlias();
        $em = $this->getEntityManager();
        $qb = $em->createQueryBuilder()->from($classMetaData->getClassName(), $elementName);
        $this->registerExposeFromMetaData($qb, $em->getClassMetadata($classMetaData->getClassName()));
        foreach ($this->getMatchedRoute()->getRouteParams() as $key => $value) {
            $qb->andWhere($elementName . '.' . $key . ' = :' . $key);
            $qb->setParameter($key, $value);
        }
        try {
            $resultArray = $qb->getQuery()->getSingleResult(ORM\Query::HYDRATE_ARRAY);
            if ($this->getMatchedRoute()->hasHandleCall()) {
                $className = $this->getMatchedRoute()->getClassMetaData()->getClassName();
                $handleMethod = $this->getMatchedRoute()->getHandleCall();
                $resultArray = $className::$handleMethod($resultArray, $this->getRequest());
            }
            $resultSet = $this->createResultSet($resultArray);
        } catch (\Exception $e) {
            return $this->handleError($e, Response::STATUS_CODE_404);
        }
        return $resultSet;
    }
GetElement