summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMaxence Lange <maxence@artificial-owl.com>2018-12-06 18:18:12 -0100
committerMaxence Lange <maxence@artificial-owl.com>2018-12-06 18:18:12 -0100
commitc41c43c529cabc03b23d3de76345b6626fd33074 (patch)
tree051f45f287f3c3b9ffed7296f739d55dbc6d30fe /lib
parent296f8b3540847b25926358f9e2d25056d2b59bca (diff)
moving Person $actor around instead of $actorId
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/Controller/LocalController.php4
-rw-r--r--lib/Db/NotesRequest.php17
-rw-r--r--lib/Db/NotesRequestBuilder.php6
-rw-r--r--lib/Service/ActivityPub/NoteService.php13
4 files changed, 23 insertions, 17 deletions
diff --git a/lib/Controller/LocalController.php b/lib/Controller/LocalController.php
index 8ba1c6f7..a99782d9 100644
--- a/lib/Controller/LocalController.php
+++ b/lib/Controller/LocalController.php
@@ -208,7 +208,7 @@ class LocalController extends Controller {
public function streamHome($since = 0, int $limit = 5): DataResponse {
try {
$this->initViewer(true);
- $posts = $this->noteService->getStreamHome($this->viewer->getId(), $since, $limit);
+ $posts = $this->noteService->getStreamHome($this->viewer, $since, $limit);
return $this->success($posts);
} catch (Exception $e) {
@@ -259,7 +259,7 @@ class LocalController extends Controller {
public function streamDirect(int $since = 0, int $limit = 5): DataResponse {
try {
$this->initViewer();
- $posts = $this->noteService->getStreamDirect($this->viewer->getId(), $since, $limit);
+ $posts = $this->noteService->getStreamDirect($this->viewer, $since, $limit);
return $this->success($posts);
} catch (Exception $e) {
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();
diff --git a/lib/Db/NotesRequestBuilder.php b/lib/Db/NotesRequestBuilder.php
index 69681503..1e680a68 100644
--- a/lib/Db/NotesRequestBuilder.php
+++ b/lib/Db/NotesRequestBuilder.php
@@ -35,7 +35,9 @@ use DateTime;
use Doctrine\DBAL\Query\QueryBuilder;
use OCA\Social\Exceptions\InvalidResourceException;
use OCA\Social\Model\ActivityPub\Note;
+use OCA\Social\Model\ActivityPub\Person;
use OCA\Social\Model\InstancePath;
+use OCP\DB\QueryBuilder\ICompositeExpression;
use OCP\DB\QueryBuilder\IQueryBuilder;
class NotesRequestBuilder extends CoreRequestBuilder {
@@ -124,9 +126,9 @@ class NotesRequestBuilder extends CoreRequestBuilder {
/**
* @param IQueryBuilder $qb
- * @param string $actorId
+ * @param Person $actor
*/
- protected function rightJoinFollowing(IQueryBuilder $qb, string $actorId = '') {
+ protected function joinFollowing(IQueryBuilder $qb, Person $actor) {
if ($qb->getType() !== QueryBuilder::SELECT) {
return;
}
diff --git a/lib/Service/ActivityPub/NoteService.php b/lib/Service/ActivityPub/NoteService.php
index 8bddea7b..af0257f9 100644
--- a/lib/Service/ActivityPub/NoteService.php
+++ b/lib/Service/ActivityPub/NoteService.php
@@ -350,15 +350,14 @@ class NoteService implements ICoreService {
/**
- * @param string $actorId
- *
+ * @param Person $actor
* @param int $since
* @param int $limit
*
* @return Note[]
*/
- public function getStreamHome(string $actorId, int $since = 0, int $limit = 5): array {
- return $this->notesRequest->getStreamHome($actorId, $since, $limit);
+ public function getStreamHome(Person $actor, int $since = 0, int $limit = 5): array {
+ return $this->notesRequest->getStreamHome($actor, $since, $limit);
}
@@ -375,14 +374,14 @@ class NoteService implements ICoreService {
/**
- * @param string $actorId
+ * @param Person $actor
* @param int $since
* @param int $limit
*
* @return Note[]
*/
- public function getStreamDirect(string $actorId, int $since = 0, int $limit = 5): array {
- return $this->notesRequest->getStreamDirect($actorId, $since, $limit);
+ public function getStreamDirect(Person $actor, int $since = 0, int $limit = 5): array {
+ return $this->notesRequest->getStreamDirect($actor, $since, $limit);
}