Merge pull request #40488 from nextcloud/bugfix/noid/message-expiration-breaks-pagination

fix(comments): Use provided offset in best effort when loading comments
This commit is contained in:
Joas Schilling 2023-09-19 15:30:57 +02:00 committed by GitHub
commit 2bd0f07e5a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -501,6 +501,22 @@ class Manager implements ICommentsManager {
)
);
}
} elseif ($lastKnownCommentId > 0) {
// We didn't find the "$lastKnownComment" but we still use the ID as an offset.
// This is required as a fall-back for expired messages in talk and deleted comments in other apps.
if ($sortDirection === 'desc') {
if ($includeLastKnown) {
$query->andWhere($query->expr()->lte('id', $query->createNamedParameter($lastKnownCommentId)));
} else {
$query->andWhere($query->expr()->lt('id', $query->createNamedParameter($lastKnownCommentId)));
}
} else {
if ($includeLastKnown) {
$query->andWhere($query->expr()->gte('id', $query->createNamedParameter($lastKnownCommentId)));
} else {
$query->andWhere($query->expr()->gt('id', $query->createNamedParameter($lastKnownCommentId)));
}
}
}
$resultStatement = $query->execute();