Code Duplication    Length = 25-26 lines in 2 locations

src/Drest/Service/Action/GetCollection.php 1 location

@@ 18-42 (lines=25) @@
15
use Doctrine\ORM;
16
use DrestCommon\Response\Response;
17
18
class GetCollection extends AbstractAction
19
{
20
21
    public function execute()
22
    {
23
        $classMetaData = $this->getMatchedRoute()->getClassMetaData();
24
        $em = $this->getEntityManager();
25
26
        $qb = $em->createQueryBuilder()->from($classMetaData->getClassName(), $classMetaData->getEntityAlias());
27
        $this->registerExposeFromMetaData($qb, $em->getClassMetadata($classMetaData->getClassName()));
28
29
        foreach ($this->getMatchedRoute()->getRouteParams() as $key => $value) {
30
            $qb->andWhere($classMetaData->getEntityAlias() . '.' . $key . ' = :' . $key);
31
            $qb->setParameter($key, $value);
32
        }
33
34
        try {
35
            $resultSet = $this->createResultSet($qb->getQuery()->getResult(ORM\Query::HYDRATE_ARRAY));
36
        } catch (\Exception $e) {
37
            return $this->handleError($e, Response::STATUS_CODE_404);
38
        }
39
40
        return $resultSet;
41
    }
42
}
43

src/Drest/Service/Action/GetElement.php 1 location

@@ 18-43 (lines=26) @@
15
use Doctrine\ORM;
16
use DrestCommon\Response\Response;
17
18
class GetElement extends AbstractAction
19
{
20
21
    public function execute()
22
    {
23
        $classMetaData = $this->getMatchedRoute()->getClassMetaData();
24
        $elementName = $classMetaData->getEntityAlias();
25
26
        $em = $this->getEntityManager();
27
        $qb = $em->createQueryBuilder()->from($classMetaData->getClassName(), $elementName);
28
        $this->registerExposeFromMetaData($qb, $em->getClassMetadata($classMetaData->getClassName()));
29
30
        foreach ($this->getMatchedRoute()->getRouteParams() as $key => $value) {
31
            $qb->andWhere($elementName . '.' . $key . ' = :' . $key);
32
            $qb->setParameter($key, $value);
33
        }
34
35
        try {
36
            $resultSet = $this->createResultSet($qb->getQuery()->getSingleResult(ORM\Query::HYDRATE_ARRAY));
37
        } catch (\Exception $e) {
38
            return $this->handleError($e, Response::STATUS_CODE_404);
39
        }
40
41
        return $resultSet;
42
    }
43
}
44