]> git.immae.eu Git - github/wallabag/wallabag.git/blob - src/Wallabag/CoreBundle/Controller/RssController.php
Merge pull request #1250 from frankoa/v2_pagination_and_api
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Controller / RssController.php
1 <?php
2
3 namespace Wallabag\CoreBundle\Controller;
4
5 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
6 use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
7 use Symfony\Bundle\FrameworkBundle\Controller\Controller;
8 use Wallabag\CoreBundle\Entity\User;
9 use Wallabag\CoreBundle\Entity\Entry;
10
11 class RssController extends Controller
12 {
13 /**
14 * Shows unread entries for current user.
15 *
16 * @Route("/{username}/{token}/unread.xml", name="unread_rss", defaults={"_format"="xml"})
17 * @ParamConverter("user", class="WallabagCoreBundle:User", converter="username_rsstoken_converter")
18 *
19 * @return \Symfony\Component\HttpFoundation\Response
20 */
21 public function showUnreadAction(User $user)
22 {
23 $entries = $this->getDoctrine()
24 ->getRepository('WallabagCoreBundle:Entry')
25 ->findUnreadByUser(
26 $user->getId()
27 );
28
29 $perPage = $user->getConfig()->getRssLimit() ?: $this->container->getParameter('rss_limit');
30 $entries->setMaxPerPage($perPage);
31
32 return $this->render('WallabagCoreBundle:Entry:entries.xml.twig', array(
33 'type' => 'unread',
34 'entries' => $entries,
35 ));
36 }
37
38 /**
39 * Shows read entries for current user.
40 *
41 * @Route("/{username}/{token}/archive.xml", name="archive_rss")
42 * @ParamConverter("user", class="WallabagCoreBundle:User", converter="username_rsstoken_converter")
43 *
44 * @return \Symfony\Component\HttpFoundation\Response
45 */
46 public function showArchiveAction(User $user)
47 {
48 $entries = $this->getDoctrine()
49 ->getRepository('WallabagCoreBundle:Entry')
50 ->findArchiveByUser(
51 $user->getId()
52 );
53
54 $perPage = $user->getConfig()->getRssLimit() ?: $this->container->getParameter('rss_limit');
55 $entries->setMaxPerPage($perPage);
56
57 return $this->render('WallabagCoreBundle:Entry:entries.xml.twig', array(
58 'type' => 'archive',
59 'entries' => $entries,
60 ));
61 }
62
63 /**
64 * Shows starred entries for current user.
65 *
66 * @Route("/{username}/{token}/starred.xml", name="starred_rss")
67 * @ParamConverter("user", class="WallabagCoreBundle:User", converter="username_rsstoken_converter")
68 *
69 * @return \Symfony\Component\HttpFoundation\Response
70 */
71 public function showStarredAction(User $user)
72 {
73 $entries = $this->getDoctrine()
74 ->getRepository('WallabagCoreBundle:Entry')
75 ->findStarredByUser(
76 $user->getId()
77 );
78
79 $perPage = $user->getConfig()->getRssLimit() ?: $this->container->getParameter('rss_limit');
80 $entries->setMaxPerPage($perPage);
81
82 return $this->render('WallabagCoreBundle:Entry:entries.xml.twig', array(
83 'type' => 'starred',
84 'entries' => $entries,
85 ));
86 }
87 }