partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

commit 465a63503a277beb5395c09928a1d699f7c7c41a
parent 3545b8453c78a4d4dba8ee93f954fa3efb33d45d
Author: Felicitus <felicitus@felicitus.org>
Date:   Sat, 12 Sep 2015 15:00:38 +0200

Throw a proper exception if a category root node could not be found

Diffstat:
Msrc/PartKeepr/CategoryBundle/Controller/CategoryController.php | 13+++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/PartKeepr/CategoryBundle/Controller/CategoryController.php b/src/PartKeepr/CategoryBundle/Controller/CategoryController.php @@ -2,14 +2,17 @@ namespace PartKeepr\CategoryBundle\Controller; use Dunglas\ApiBundle\Api\ResourceInterface; +use Dunglas\ApiBundle\Exception\InvalidArgumentException; use FOS\RestBundle\Controller\Annotations\RequestParam; use Gedmo\Tree\Entity\Repository\AbstractTreeRepository; use PartKeepr\CategoryBundle\Exception\MissingParentCategoryException; use PartKeepr\CategoryBundle\Exception\RootMayNotBeMovedException; +use PartKeepr\CategoryBundle\Exception\RootNodeNotFoundException; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; class CategoryController extends Controller { @@ -116,11 +119,13 @@ class CategoryController extends Controller /** * @var $repository AbstractTreeRepository */ - $rootNode = $repository->getRootNodes()[0]; + $rootNodes = $repository->getRootNodes(); - //$this->get('serializer')->setCircularReferenceLimit(999); - //$normalizer = $this->get('serializer')->getNormalizer($rootNode, 'json-ld'); - //$normalizer->setCircularReferenceLimit(999); + if (count($rootNodes) == 0) { + throw new RootNodeNotFoundException(); + } + + $rootNode = reset($rootNodes); $data = $this->get('serializer')->normalize( $rootNode,