From 2cc35cc65d251ac52e1e09fe52381ccbf64eb89f Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 21 Oct 2020 09:08:48 +0200 Subject: Include an option to also include the lastKnownCommentId object Signed-off-by: Joas Schilling --- lib/private/Comments/Manager.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lib/private/Comments') diff --git a/lib/private/Comments/Manager.php b/lib/private/Comments/Manager.php index 3c9be9828d1..dc449cc4d4b 100644 --- a/lib/private/Comments/Manager.php +++ b/lib/private/Comments/Manager.php @@ -395,6 +395,7 @@ class Manager implements ICommentsManager { * @param string $sortDirection direction of the comments (`asc` or `desc`) * @param int $limit optional, number of maximum comments to be returned. if * set to 0, all comments are returned. + * @param bool $includeLastKnown * @return IComment[] * @return array */ @@ -403,7 +404,8 @@ class Manager implements ICommentsManager { string $objectId, int $lastKnownCommentId, string $sortDirection = 'asc', - int $limit = 30 + int $limit = 30, + bool $includeLastKnown = false ): array { $comments = []; @@ -427,6 +429,7 @@ class Manager implements ICommentsManager { if ($lastKnownComment instanceof IComment) { $lastKnownCommentDateTime = $lastKnownComment->getCreationDateTime(); if ($sortDirection === 'desc') { + $idComparison = $includeLastKnown ? 'lte' : 'lt'; $query->andWhere( $query->expr()->orX( $query->expr()->lt( @@ -440,11 +443,12 @@ class Manager implements ICommentsManager { $query->createNamedParameter($lastKnownCommentDateTime, IQueryBuilder::PARAM_DATE), IQueryBuilder::PARAM_DATE ), - $query->expr()->lt('id', $query->createNamedParameter($lastKnownCommentId)) + $query->expr()->$idComparison('id', $query->createNamedParameter($lastKnownCommentId)) ) ) ); } else { + $idComparison = $includeLastKnown ? 'gte' : 'gt'; $query->andWhere( $query->expr()->orX( $query->expr()->gt( @@ -458,7 +462,7 @@ class Manager implements ICommentsManager { $query->createNamedParameter($lastKnownCommentDateTime, IQueryBuilder::PARAM_DATE), IQueryBuilder::PARAM_DATE ), - $query->expr()->gt('id', $query->createNamedParameter($lastKnownCommentId)) + $query->expr()->$idComparison('id', $query->createNamedParameter($lastKnownCommentId)) ) ) ); -- cgit v1.2.3