diff options
Diffstat (limited to 'lib/Db/NotesRequest.php')
-rw-r--r-- | lib/Db/NotesRequest.php | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/lib/Db/NotesRequest.php b/lib/Db/NotesRequest.php index c068c035..cbb96c6a 100644 --- a/lib/Db/NotesRequest.php +++ b/lib/Db/NotesRequest.php @@ -33,6 +33,7 @@ namespace OCA\Social\Db; use DateTime; use OCA\Social\Exceptions\NoteNotFoundException; use OCA\Social\Model\ActivityPub\Note; +use OCA\Social\Model\ActivityPub\Person; use OCA\Social\Service\ActivityService; use OCA\Social\Service\ConfigService; use OCA\Social\Service\MiscService; @@ -160,16 +161,16 @@ class NotesRequest extends NotesRequestBuilder { * * Own posts, * * Followed accounts * - * @param string $actorId + * @param Person $actor * @param int $since * @param int $limit * * @return array */ - public function getStreamHome(string $actorId, int $since = 0, int $limit = 5): array { + public function getStreamHome(Person $actor, int $since = 0, int $limit = 5): array { $qb = $this->getNotesSelectSql(); - $this->rightJoinFollowing($qb, $actorId); + $this->joinFollowing($qb, $actor); $this->limitPaginate($qb, $since, $limit); $this->leftJoinCacheActors($qb, 'attributed_to'); @@ -218,17 +219,21 @@ class NotesRequest extends NotesRequestBuilder { * * Private message. * - group messages. * - * @param string $actorId + * @param Person $actor * @param int $since * @param int $limit * * @return array */ - public function getStreamDirect(string $actorId, int $since = 0, int $limit = 5): array { + public function getStreamDirect(Person $actor, int $since = 0, int $limit = 5): array { $qb = $this->getNotesSelectSql(); $this->limitPaginate($qb, $since, $limit); + + $this->limitToRecipient($qb, $actor->getId(), true); + $this->filterToRecipient($qb, ActivityService::TO_PUBLIC); + $this->filterToRecipient($qb, $actor->getFollowers()); + $this->leftJoinCacheActors($qb, 'attributed_to'); - $this->limitToRecipient($qb, $actorId, true); $notes = []; $cursor = $qb->execute(); |