3 namespace Wallabag\CoreBundle\Repository
;
5 use Doctrine\ORM\Query
;
6 use Doctrine\ORM\EntityRepository
;
7 use Doctrine\ORM\Tools\Pagination\Paginator
;
8 use Wallabag\CoreBundle\Entity\Entries
;
10 class EntriesRepository
extends EntityRepository
13 * Retrieves unread entries for a user
17 * @param int $maxResults
20 public function findUnreadByUser($userId, $firstResult, $maxResults = 12)
22 $qb = $this->createQueryBuilder('e')
24 ->setFirstResult($firstResult)
25 ->setMaxResults($maxResults)
26 ->where('e.isRead = 0')
27 ->andWhere('e.userId =:userId')->setParameter('userId', $userId)
30 $paginator = new Paginator($qb);
36 * Retrieves read entries for a user
40 * @param int $maxResults
43 public function findArchiveByUser($userId, $firstResult, $maxResults = 12)
45 $qb = $this->createQueryBuilder('e')
47 ->setFirstResult($firstResult)
48 ->setMaxResults($maxResults)
49 ->where('e.isRead = 1')
50 ->andWhere('e.userId =:userId')->setParameter('userId', $userId)
53 $paginator = new Paginator($qb);
59 * Retrieves starred entries for a user
63 * @param int $maxResults
66 public function findStarredByUser($userId, $firstResult, $maxResults = 12)
68 $qb = $this->createQueryBuilder('e')
70 ->setFirstResult($firstResult)
71 ->setMaxResults($maxResults)
72 ->where('e.isFav = 1')
73 ->andWhere('e.userId =:userId')->setParameter('userId', $userId)
76 $paginator = new Paginator($qb);
81 public function findEntries($userId, $isArchived, $isStarred, $isDeleted, $sort, $order)
83 //TODO tous les paramètres ne sont pas utilisés, à corriger
84 $qb = $this->createQueryBuilder('e')
86 ->where('e.isFav =:isStarred')->setParameter('isStarred', $isStarred)
87 ->andWhere('e.isRead =:isArchived')->setParameter('isArchived', $isArchived)
88 ->andWhere('e.userId =:userId')->setParameter('userId', $userId)
90 ->getResult(Query
::HYDRATE_ARRAY
);