[COMPONENT][Collection][CONTROLLER][Collection] Add utility method to call Feed::query in Collection, which handles getting and passing the page

This commit is contained in:
Hugo Sales 2022-01-02 23:59:23 +00:00
parent 07b65584ff
commit 141c5f6785
Signed by: someonewithpc
GPG Key ID: 7D0C7EAFC9D835A0
6 changed files with 13 additions and 16 deletions

View File

@ -5,7 +5,12 @@ declare(strict_types = 1);
namespace Component\Collection\Util\Controller; namespace Component\Collection\Util\Controller;
use App\Core\Controller; use App\Core\Controller;
use Component\Feed\Feed;
class Collection extends Controller class Collection extends Controller
{ {
public function query(string $query, ?string $language = null, ?Actor $actor = null)
{
return Feed::query($query, $this->int('page') ?? 1, $language, $actor);
}
} }

View File

@ -34,7 +34,6 @@ use App\Util\Common;
use App\Util\Exception\RedirectException; use App\Util\Exception\RedirectException;
use Component\Collection\Util\Controller\FeedController; use Component\Collection\Util\Controller\FeedController;
use Component\Conversation\Entity\ConversationMute; use Component\Conversation\Entity\ConversationMute;
use Component\Feed\Feed;
use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
@ -47,7 +46,7 @@ class Conversation extends FeedController
*/ */
public function showConversation(Request $request, int $conversation_id) public function showConversation(Request $request, int $conversation_id)
{ {
$data = Feed::query(query: "note-conversation:{$conversation_id}", page: $this->int('p') ?? 1); $data = $this->query(query: "note-conversation:{$conversation_id}");
$notes = $data['notes']; $notes = $data['notes'];
return [ return [
'_template' => 'collection/notes.html.twig', '_template' => 'collection/notes.html.twig',

View File

@ -59,7 +59,7 @@ class Reply extends FeedController
} }
$conversation_id = $note->getConversationId(); $conversation_id = $note->getConversationId();
$data = Feed::query(query: "note-conversation:{$conversation_id}", page: $this->int('p') ?? 1); $data = $this->query(query: "note-conversation:{$conversation_id}");
$notes = $data['notes']; $notes = $data['notes'];
return [ return [
'_template' => 'collection/notes.html.twig', '_template' => 'collection/notes.html.twig',

View File

@ -38,7 +38,6 @@ namespace Component\Feed\Controller;
use function App\Core\I18n\_m; use function App\Core\I18n\_m;
use App\Util\Common; use App\Util\Common;
use Component\Collection\Util\Controller\FeedController; use Component\Collection\Util\Controller\FeedController;
use Component\Feed\Feed;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
class Feeds extends FeedController class Feeds extends FeedController
@ -48,9 +47,8 @@ class Feeds extends FeedController
*/ */
public function public(Request $request): array public function public(Request $request): array
{ {
$data = Feed::query( $data = $this->query(
query: 'note-local:true', query: 'note-local:true',
page: $this->int('p'),
language: Common::actor()?->getTopLanguage()?->getLocale(), language: Common::actor()?->getTopLanguage()?->getLocale(),
); );
return [ return [
@ -67,9 +65,8 @@ class Feeds extends FeedController
{ {
$user = Common::ensureLoggedIn(); $user = Common::ensureLoggedIn();
$actor = $user->getActor(); $actor = $user->getActor();
$data = Feed::query( $data = $this->query(
query: 'note-from:subscribed-person,subscribed-group,subscribed-organization,subscribed-business', query: 'note-from:subscribed-person,subscribed-group,subscribed-organization,subscribed-business',
page: $this->int('p'),
language: $actor->getTopLanguage()->getLocale(), language: $actor->getTopLanguage()->getLocale(),
actor: $actor, actor: $actor,
); );

View File

@ -38,7 +38,6 @@ use App\Core\DB\DB;
use function App\Core\I18n\_m; use function App\Core\I18n\_m;
use App\Util\Common; use App\Util\Common;
use Component\Collection\Util\Controller\FeedController; use Component\Collection\Util\Controller\FeedController;
use Component\Feed\Feed;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
class Feeds extends FeedController class Feeds extends FeedController
@ -52,9 +51,8 @@ class Feeds extends FeedController
public function network(Request $request): array public function network(Request $request): array
{ {
Common::ensureLoggedIn(); Common::ensureLoggedIn();
$data = Feed::query( $data = $this->query(
query: 'note-local:false', query: 'note-local:false',
page: $this->int('p'),
language: Common::actor()?->getTopLanguage()?->getLocale(), language: Common::actor()?->getTopLanguage()?->getLocale(),
); );
return [ return [
@ -101,9 +99,8 @@ class Feeds extends FeedController
public function federated(Request $request): array public function federated(Request $request): array
{ {
Common::ensureLoggedIn(); Common::ensureLoggedIn();
$data = Feed::query( $data = $this->query(
query: '', query: '',
page: $this->int('p'),
language: Common::actor()?->getTopLanguage()?->getLocale(), language: Common::actor()?->getTopLanguage()?->getLocale(),
); );
return [ return [

View File

@ -31,7 +31,6 @@ use App\Util\Exception\RedirectException;
use App\Util\Form\FormFields; use App\Util\Form\FormFields;
use App\Util\Formatting; use App\Util\Formatting;
use Component\Collection\Util\Controller\FeedController; use Component\Collection\Util\Controller\FeedController;
use Component\Feed\Feed;
use Component\Search as Comp; use Component\Search as Comp;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\SubmitType;
@ -49,7 +48,7 @@ class Search extends FeedController
$language = !\is_null($actor) ? $actor->getTopLanguage()->getLocale() : null; $language = !\is_null($actor) ? $actor->getTopLanguage()->getLocale() : null;
$q = $this->string('q'); $q = $this->string('q');
$data = Feed::query(query: $q, page: $this->int('p'), language: $language); $data = $this->query(query: $q, language: $language);
$notes = $data['notes']; $notes = $data['notes'];
$actors = $data['actors']; $actors = $data['actors'];