]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/CoreBundle/Controller/RssController.php
Add a real configuration for CS-Fixer
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Controller / RssController.php
index 090eccab2676daa8c2358ae2cd50d42052ce309c..e84044b1061da58b12ebd48779d9c84975830c3f 100644 (file)
@@ -2,19 +2,19 @@
 
 namespace Wallabag\CoreBundle\Controller;
 
-use Pagerfanta\Adapter\DoctrineORMAdapter;
 use Pagerfanta\Adapter\ArrayAdapter;
+use Pagerfanta\Adapter\DoctrineORMAdapter;
 use Pagerfanta\Exception\OutOfRangeCurrentPageException;
 use Pagerfanta\Pagerfanta;
 use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
+use Symfony\Bundle\FrameworkBundle\Controller\Controller;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
-use Symfony\Bundle\FrameworkBundle\Controller\Controller;
+use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
 use Wallabag\CoreBundle\Entity\Entry;
 use Wallabag\CoreBundle\Entity\Tag;
 use Wallabag\UserBundle\Entity\User;
-use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
 
 class RssController extends Controller
 {
@@ -26,7 +26,7 @@ class RssController extends Controller
      *
      * @return \Symfony\Component\HttpFoundation\Response
      */
-    public function showUnreadAction(Request $request, User $user)
+    public function showUnreadRSSAction(Request $request, User $user)
     {
         return $this->showEntries('unread', $user, $request->query->get('page', 1));
     }
@@ -39,7 +39,7 @@ class RssController extends Controller
      *
      * @return \Symfony\Component\HttpFoundation\Response
      */
-    public function showArchiveAction(Request $request, User $user)
+    public function showArchiveRSSAction(Request $request, User $user)
     {
         return $this->showEntries('archive', $user, $request->query->get('page', 1));
     }
@@ -52,11 +52,24 @@ class RssController extends Controller
      *
      * @return \Symfony\Component\HttpFoundation\Response
      */
-    public function showStarredAction(Request $request, User $user)
+    public function showStarredRSSAction(Request $request, User $user)
     {
         return $this->showEntries('starred', $user, $request->query->get('page', 1));
     }
 
+    /**
+     * Shows all entries for current user.
+     *
+     * @Route("/{username}/{token}/all.xml", name="all_rss", defaults={"_format"="xml"})
+     * @ParamConverter("user", class="WallabagUserBundle:User", converter="username_rsstoken_converter")
+     *
+     * @return \Symfony\Component\HttpFoundation\Response
+     */
+    public function showAllRSSAction(Request $request, User $user)
+    {
+        return $this->showEntries('all', $user, $request->query->get('page', 1));
+    }
+
     /**
      * Shows entries associated to a tag for current user.
      *
@@ -100,7 +113,7 @@ class RssController extends Controller
             $entries->setCurrentPage($page);
         } catch (OutOfRangeCurrentPageException $e) {
             if ($page > 1) {
-                return $this->redirect($url.'?page='.$entries->getNbPages(), 302);
+                return $this->redirect($url . '?page=' . $entries->getNbPages(), 302);
             }
         }
 
@@ -108,7 +121,7 @@ class RssController extends Controller
             '@WallabagCore/themes/common/Entry/entries.xml.twig',
             [
                 'url_html' => $this->generateUrl('tag_entries', ['slug' => $tag->getSlug()], UrlGeneratorInterface::ABSOLUTE_URL),
-                'type' => 'tag ('.$tag->getLabel().')',
+                'type' => 'tag (' . $tag->getLabel() . ')',
                 'url' => $url,
                 'entries' => $entries,
             ],
@@ -134,15 +147,15 @@ class RssController extends Controller
             case 'starred':
                 $qb = $repository->getBuilderForStarredByUser($user->getId());
                 break;
-
             case 'archive':
                 $qb = $repository->getBuilderForArchiveByUser($user->getId());
                 break;
-
             case 'unread':
                 $qb = $repository->getBuilderForUnreadByUser($user->getId());
                 break;
-
+            case 'all':
+                $qb = $repository->getBuilderForAllByUser($user->getId());
+                break;
             default:
                 throw new \InvalidArgumentException(sprintf('Type "%s" is not implemented.', $type));
         }
@@ -154,7 +167,7 @@ class RssController extends Controller
         $entries->setMaxPerPage($perPage);
 
         $url = $this->generateUrl(
-            $type.'_rss',
+            $type . '_rss',
             [
                 'username' => $user->getUsername(),
                 'token' => $user->getConfig()->getRssToken(),
@@ -166,7 +179,7 @@ class RssController extends Controller
             $entries->setCurrentPage((int) $page);
         } catch (OutOfRangeCurrentPageException $e) {
             if ($page > 1) {
-                return $this->redirect($url.'?page='.$entries->getNbPages(), 302);
+                return $this->redirect($url . '?page=' . $entries->getNbPages(), 302);
             }
         }