X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FApiBundle%2FController%2FTagRestController.php;h=f3498f55a83f17bab2c881a75ea6918115dd1125;hb=2a0e0a47d853937702d235bdb91df0ca0e3116b6;hp=efa4e8cfc1ea5b072121078c8532a970e54485e0;hpb=f808b01692a835673f328d7221ba8c212caa9b61;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/ApiBundle/Controller/TagRestController.php b/src/Wallabag/ApiBundle/Controller/TagRestController.php index efa4e8cf..f3498f55 100644 --- a/src/Wallabag/ApiBundle/Controller/TagRestController.php +++ b/src/Wallabag/ApiBundle/Controller/TagRestController.php @@ -25,7 +25,7 @@ class TagRestController extends WallabagRestController ->getRepository('WallabagCoreBundle:Tag') ->findAllTags($this->getUser()->getId()); - $json = $this->get('serializer')->serialize($tags, 'json'); + $json = $this->get('jms_serializer')->serialize($tags, 'json'); return (new JsonResponse())->setJson($json); } @@ -46,19 +46,21 @@ class TagRestController extends WallabagRestController $this->validateAuthentication(); $label = $request->get('tag', ''); - $tag = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findOneByLabel($label); + $tags = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findByLabelsAndUser([$label], $this->getUser()->getId()); - if (empty($tag)) { + if (empty($tags)) { throw $this->createNotFoundException('Tag not found'); } + $tag = $tags[0]; + $this->getDoctrine() ->getRepository('WallabagCoreBundle:Entry') ->removeTag($this->getUser()->getId(), $tag); $this->cleanOrphanTag($tag); - $json = $this->get('serializer')->serialize($tag, 'json'); + $json = $this->get('jms_serializer')->serialize($tag, 'json'); return (new JsonResponse())->setJson($json); } @@ -80,15 +82,7 @@ class TagRestController extends WallabagRestController $tagsLabels = $request->get('tags', ''); - $tags = []; - - foreach (explode(',', $tagsLabels) as $tagLabel) { - $tagEntity = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findOneByLabel($tagLabel); - - if (!empty($tagEntity)) { - $tags[] = $tagEntity; - } - } + $tags = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findByLabelsAndUser(explode(',', $tagsLabels), $this->getUser()->getId()); if (empty($tags)) { throw $this->createNotFoundException('Tags not found'); @@ -100,7 +94,7 @@ class TagRestController extends WallabagRestController $this->cleanOrphanTag($tags); - $json = $this->get('serializer')->serialize($tags, 'json'); + $json = $this->get('jms_serializer')->serialize($tags, 'json'); return (new JsonResponse())->setJson($json); } @@ -120,13 +114,19 @@ class TagRestController extends WallabagRestController { $this->validateAuthentication(); + $tagFromDb = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findByLabelsAndUser([$tag->getLabel()], $this->getUser()->getId()); + + if (empty($tagFromDb)) { + throw $this->createNotFoundException('Tag not found'); + } + $this->getDoctrine() ->getRepository('WallabagCoreBundle:Entry') ->removeTag($this->getUser()->getId(), $tag); $this->cleanOrphanTag($tag); - $json = $this->get('serializer')->serialize($tag, 'json'); + $json = $this->get('jms_serializer')->serialize($tag, 'json'); return (new JsonResponse())->setJson($json); } @@ -138,14 +138,14 @@ class TagRestController extends WallabagRestController */ private function cleanOrphanTag($tags) { - if (!is_array($tags)) { + if (!\is_array($tags)) { $tags = [$tags]; } $em = $this->getDoctrine()->getManager(); foreach ($tags as $tag) { - if (count($tag->getEntries()) === 0) { + if (0 === \count($tag->getEntries())) { $em->remove($tag); } }