X-Git-Url: https://git.immae.eu/?p=github%2Fwallabag%2Fwallabag.git;a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FController%2FEntryController.php;h=ab50ebdfdf7550f82f09a83e2bf74d64743c3e66;hp=669e15d7ca95262cd5fe49882ecbe2bd3c108c24;hb=0447a75b06142afe59a179bb59ee94f1978aa7a9;hpb=f85d220c19872dd7e9199fd150060555584a2886 diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php index 669e15d7..ab50ebdf 100644 --- a/src/Wallabag/CoreBundle/Controller/EntryController.php +++ b/src/Wallabag/CoreBundle/Controller/EntryController.php @@ -249,73 +249,28 @@ class EntryController extends Controller } /** - * Shows random unread entry. + * Shows random entry depending on the given type. * * @param Entry $entry * - * @Route("/unread/random", name="unread_random") + * @Route("/{type}/random", name="random_entry", requirements={"_locale": "unread|starred|archive|untagged|all"}) * - * @return \Symfony\Component\HttpFoundation\Response - */ - public function showRandomUnreadEntryAction() - { - return $this->showRandomEntries('unread'); - } - - /** - * Shows random favorite entry. - * - * @param Entry $entry - * - * @Route("/starred/random", name="starred_random") - * - * @return \Symfony\Component\HttpFoundation\Response - */ - public function showRandomStarredEntryAction() - { - return $this->showRandomEntries('starred'); - } - - /** - * Shows random archived entry. - * - * @param Entry $entry - * - * @Route("/archive/random", name="archive_random") - * - * @return \Symfony\Component\HttpFoundation\Response + * @return \Symfony\Component\HttpFoundation\RedirectResponse */ - public function showRandomArchiveEntryAction() + public function redirectRandomEntryAction($type = 'all') { - return $this->showRandomEntries('archive'); - } + try { + $entry = $this->get('wallabag_core.entry_repository') + ->getRandomEntry($this->getUser()->getId(), $type); + } catch (NoResultException $e) { + $bag = $this->get('session')->getFlashBag(); + $bag->clear(); + $bag->add('notice', 'flashes.entry.notice.no_random_entry'); - /** - * Shows random all entry. - * - * @param Entry $entry - * - * @Route("/untagged/random", name="untagged_random") - * - * @return \Symfony\Component\HttpFoundation\Response - */ - public function showRandomUntaggedEntryAction() - { - return $this->showRandomEntries('untagged'); - } + return $this->redirect($this->generateUrl('homepage')); + } - /** - * Shows random all entry. - * - * @param Entry $entry - * - * @Route("/all/random", name="all_random") - * - * @return \Symfony\Component\HttpFoundation\Response - */ - public function showRandomAllEntryAction() - { - return $this->showRandomEntries(); + return $this->redirect($this->generateUrl('view', ['id' => $entry->getId()])); } /** @@ -623,30 +578,6 @@ class EntryController extends Controller ); } - /** - * Global method to retrieve random entries depending on the given type. - * - * @param string $type Entries type: unread, starred, archive or untagged - * - * @return \Symfony\Component\HttpFoundation\RedirectResponse - */ - private function showRandomEntries($type) - { - $repository = $this->get('wallabag_core.entry_repository'); - - try { - $entry = $repository->getRandomEntry($this->getUser()->getId(), $type); - } catch (NoResultException $e) { - $bag = $this->get('session')->getFlashBag(); - $bag->clear(); - $bag->add('notice', 'flashes.entry.notice.no_random_entry'); - - return $this->redirect($this->generateUrl('homepage')); - } - - return $this->redirect($this->generateUrl('view', ['id' => $entry->getId()])); - } - /** * Fetch content and update entry. * In case it fails, $entry->getContent will return an error message.