-<?php
-
-namespace Wallabag\CommentBundle\Repository;
-
-use Doctrine\ORM\EntityRepository;
-
-/**
- * CommentRepository.
- *
- * This class was generated by the Doctrine ORM. Add your own custom
- * repository methods below.
- */
-class CommentRepository extends EntityRepository
-{
- /**
- * Return a query builder to used by other getBuilderFor* method.
- *
- * @param int $userId
- *
- * @return QueryBuilder
- */
- private function getBuilderByUser($userId)
- {
- return $this->createQueryBuilder('c')
- ->leftJoin('c.user', 'u')
- ->andWhere('u.id = :userId')->setParameter('userId', $userId)
- ->orderBy('c.id', 'desc')
- ;
- }
-
- /**
- * Retrieves all comments for a user.
- *
- * @param int $userId
- *
- * @return QueryBuilder
- */
- public function getBuilderForAllByUser($userId)
- {
- return $this
- ->getBuilderByUser($userId)
- ;
- }
-
- /**
- * Get comment for this id.
- *
- * @param int $commentId
- *
- * @return array
- */
- public function findCommentById($commentId)
- {
- return $this->createQueryBuilder('c')
- ->andWhere('c.id = :commentId')->setParameter('commentId', $commentId)
- ->getQuery()->getSingleResult()
- ;
- }
-
- /**
- * Find comments for entry id.
- *
- * @param int $entryId
- * @param int $userId
- *
- * @return array
- */
- public function findCommentsByPageId($entryId, $userId)
- {
- return $this->createQueryBuilder('c')
- ->where('c.entry = :entryId')->setParameter('entryId', $entryId)
- ->andwhere('c.user = :userId')->setParameter('userId', $userId)
- ->getQuery()->getResult()
- ;
- }
-
- /**
- * Find last comment for a given entry id. Used only for tests.
- *
- * @param int $entryId
- *
- * @return array
- */
- public function findLastCommentByPageId($entryId, $userId)
- {
- return $this->createQueryBuilder('c')
- ->where('c.entry = :entryId')->setParameter('entryId', $entryId)
- ->andwhere('c.user = :userId')->setParameter('userId', $userId)
- ->orderBy('c.id', 'DESC')
- ->setMaxResults(1)
- ->getQuery()
- ->getOneOrNullResult();
- }
-}