From 4dc872238a61f33c886c423c5812cc578b3b1cdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Fri, 26 Feb 2016 13:59:08 +0100 Subject: Rename CommentBundle with AnnotationBundle --- .../Repository/AnnotationRepository.php | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/Wallabag/AnnotationBundle/Repository/AnnotationRepository.php (limited to 'src/Wallabag/AnnotationBundle/Repository/AnnotationRepository.php') diff --git a/src/Wallabag/AnnotationBundle/Repository/AnnotationRepository.php b/src/Wallabag/AnnotationBundle/Repository/AnnotationRepository.php new file mode 100644 index 00000000..c1c6e638 --- /dev/null +++ b/src/Wallabag/AnnotationBundle/Repository/AnnotationRepository.php @@ -0,0 +1,91 @@ +createQueryBuilder('a') + ->leftJoin('a.user', 'u') + ->andWhere('u.id = :userId')->setParameter('userId', $userId) + ->orderBy('a.id', 'desc') + ; + } + + /** + * Retrieves all annotations for a user. + * + * @param int $userId + * + * @return QueryBuilder + */ + public function getBuilderForAllByUser($userId) + { + return $this + ->getBuilderByUser($userId) + ; + } + + /** + * Get annotation for this id. + * + * @param int $annotationId + * + * @return array + */ + public function findAnnotationById($annotationId) + { + return $this->createQueryBuilder('a') + ->andWhere('a.id = :annotationId')->setParameter('annotationId', $annotationId) + ->getQuery()->getSingleResult() + ; + } + + /** + * Find annotations for entry id. + * + * @param int $entryId + * @param int $userId + * + * @return array + */ + public function findAnnotationsByPageId($entryId, $userId) + { + return $this->createQueryBuilder('a') + ->where('a.entry = :entryId')->setParameter('entryId', $entryId) + ->andwhere('a.user = :userId')->setParameter('userId', $userId) + ->getQuery()->getResult() + ; + } + + /** + * Find last annotation for a given entry id. Used only for tests. + * + * @param int $entryId + * + * @return array + */ + public function findLastAnnotationByPageId($entryId, $userId) + { + return $this->createQueryBuilder('a') + ->where('a.entry = :entryId')->setParameter('entryId', $entryId) + ->andwhere('a.user = :userId')->setParameter('userId', $userId) + ->orderBy('a.id', 'DESC') + ->setMaxResults(1) + ->getQuery() + ->getOneOrNullResult(); + } +} -- cgit v1.2.3