| @@ 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 | ||
| @@ 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 | ||