From 293e1b24fc37123b9999cc7cb7532e49378bf736 Mon Sep 17 00:00:00 2001 From: Polonkai Gergely Date: Sat, 25 Aug 2012 17:01:48 +0200 Subject: [PATCH] Fixed non-working forum topic (un)favourite functions Signed-off-by: Gergely Polonkai --- .../Controller/ForumController.php | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/KekRozsak/FrontBundle/Controller/ForumController.php b/src/KekRozsak/FrontBundle/Controller/ForumController.php index ec5d3b4..9e60e7d 100644 --- a/src/KekRozsak/FrontBundle/Controller/ForumController.php +++ b/src/KekRozsak/FrontBundle/Controller/ForumController.php @@ -175,15 +175,23 @@ class ForumController extends Controller /** * @Route("/{topicGroupSlug}/{topicSlug}/kedvenc-be", name="KekRozsakFrontBundle_forumFavouriteTopic", options={"expose": true}) * @Method("GET") - * @ParamConverter("topic", options={"mapping"={"topicGroup"="topicGroup", "topicSlug"="slug"}}) - * @ParamConverter("topicGroup", options={"mapping"={"topicGroupSlug"="slug"}}) * * @param KekRozsak\FrontBundle\Entity\ForumTopicGroup $topicGroup * @param KekRozsak\FrontBundle\Entity\ForumTopic $topic * @return array */ - public function favouriteTopic(ForumTopicGroup $topicGroup, ForumTopic $topic) + public function favouriteTopic($topicGroupSlug, $topicSlug) { + $topicGroupRepo = $this->getDoctrine()->getRepository('KekRozsakFrontBundle:ForumTopicGroup'); + if (null === $topicGroup = $topicGroupRepo->findOneBySlug($topicGroupSlug)) { + throw $this->createNotFoundException('Ilyen témakör nem létezik!'); + } + + $topicRepo = $this->getDoctrine()->getRepository('KekRozsakFrontBundle:ForumTopic'); + if (null === $topic = $topicRepo->findOneBy(array('slug' => $topicSlug, 'topicGroup' => $topicGroup))) { + throw $this->createNotFoundException('Ilyen téma nem létezik!'); + } + $user = $this->get('security.context')->getToken()->getUser(); if (($userData = $user->getUserData()) === null) { $userData = new UserData(); @@ -201,15 +209,23 @@ class ForumController extends Controller /** * @Route("/{topicGroupSlug}/{topicSlug}/kedvenc-ki", name="KekRozsakFrontBundle_forumUnfavouriteTopic", options={"expose": true}) * @Method("GET") - * @ParamConverter("topic", options={"mapping"={"topicGroup"="topicGroup", "topicSlug"="slug"}}) - * @ParamConverter("topicGroup", options={"mapping"={"topicGroupSlug"="slug"}}) * * @param KekRozsak\FrontBundle\Entity\ForumTopicGroup $topicGroup * @param KekRozsak\FrontBundle\Entity\ForumTopic $topic * @return array */ - public function unfavouriteTopic(ForumTopicGroup $topicGroup, ForumTopic $topic) + public function unfavouriteTopic($topicGroupSlug, $topicSlug) { + $topicGroupRepo = $this->getDoctrine()->getRepository('KekRozsakFrontBundle:ForumTopicGroup'); + if (null === $topicGroup = $topicGroupRepo->findOneBySlug($topicGroupSlug)) { + throw $this->createNotFoundException('Ilyen témakör nem létezik!'); + } + + $topicRepo = $this->getDoctrine()->getRepository('KekRozsakFrontBundle:ForumTopic'); + if (null === $topic = $topicRepo->findOneBy(array('slug' => $topicSlug, 'topicGroup' => $topicGroup))) { + throw $this->createNotFoundException('Ilyen téma nem létezik!'); + } + $user = $this->get('security.context')->getToken()->getUser(); if (($userData = $user->getUserData()) === null) { $userData = new UserData();