forked from GNUsocial/gnu-social
[CONTROLLER][PLUGIN][Directory][Favourite][Reply][CORE][FeedController] Refactor to new FeedController
This commit is contained in:
parent
ba87944732
commit
7783922b2e
@ -23,10 +23,11 @@ declare(strict_types = 1);
|
|||||||
|
|
||||||
namespace Plugin\Directory\Controller;
|
namespace Plugin\Directory\Controller;
|
||||||
|
|
||||||
|
use App\Core\Controller\FeedController;
|
||||||
use App\Core\DB\DB;
|
use App\Core\DB\DB;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
|
||||||
class Directory
|
class Directory extends FeedController
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* actors stream
|
* actors stream
|
||||||
@ -35,7 +36,10 @@ class Directory
|
|||||||
*/
|
*/
|
||||||
public function actors(Request $request): array
|
public function actors(Request $request): array
|
||||||
{
|
{
|
||||||
return ['_template' => 'directory/actors.html.twig', 'actors' => DB::dql('select g from App\Entity\Actor g order by g.nickname ASC')];
|
return $this->process_feed([
|
||||||
|
'_template' => 'directory/actors.html.twig',
|
||||||
|
'actors' => DB::dql('select a from actor a order by a.nickname ASC'),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,6 +49,9 @@ class Directory
|
|||||||
*/
|
*/
|
||||||
public function groups(Request $request): array
|
public function groups(Request $request): array
|
||||||
{
|
{
|
||||||
return ['_template' => 'directory/groups.html.twig', 'groups' => DB::dql('select g from App\Entity\Group g order by g.nickname ASC')];
|
return $this->process_feed([
|
||||||
|
'_template' => 'directory/groups.html.twig',
|
||||||
|
'groups' => DB::dql('select g from group g order by g.nickname ASC'),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,9 +23,8 @@ declare(strict_types = 1);
|
|||||||
|
|
||||||
namespace Plugin\Favourite\Controller;
|
namespace Plugin\Favourite\Controller;
|
||||||
|
|
||||||
use App\Core\Controller;
|
use App\Core\Controller\FeedController;
|
||||||
use App\Core\DB\DB;
|
use App\Core\DB\DB;
|
||||||
use App\Core\Event;
|
|
||||||
use App\Core\Form;
|
use App\Core\Form;
|
||||||
use function App\Core\I18n\_m;
|
use function App\Core\I18n\_m;
|
||||||
use App\Core\Log;
|
use App\Core\Log;
|
||||||
@ -40,7 +39,7 @@ use Plugin\Favourite\Entity\Favourite as FavouriteEntity;
|
|||||||
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;
|
||||||
|
|
||||||
class Favourite extends Controller
|
class Favourite extends FeedController
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @throws \App\Util\Exception\ServerException
|
* @throws \App\Util\Exception\ServerException
|
||||||
@ -167,21 +166,20 @@ class Favourite extends Controller
|
|||||||
public function favouritesByActorId(Request $request, int $id)
|
public function favouritesByActorId(Request $request, int $id)
|
||||||
{
|
{
|
||||||
$notes = DB::dql(
|
$notes = DB::dql(
|
||||||
'select n from App\Entity\Note n, Plugin\Favourite\Entity\Favourite f '
|
<<< 'EOF'
|
||||||
. 'where n.id = f.note_id '
|
select n from note n
|
||||||
. 'and f.actor_id = :id '
|
join favourite f with n.id = f.note_id
|
||||||
. 'order by f.created DESC',
|
where f.actor_id = :id
|
||||||
|
order by f.created DESC
|
||||||
|
EOF,
|
||||||
['id' => $id],
|
['id' => $id],
|
||||||
);
|
);
|
||||||
|
|
||||||
$notes_out = null;
|
return $this->process_feed([
|
||||||
Event::handle('FormatNoteList', [$notes, &$notes_out]);
|
|
||||||
|
|
||||||
return [
|
|
||||||
'_template' => 'feeds/feed.html.twig',
|
'_template' => 'feeds/feed.html.twig',
|
||||||
'notes' => $notes_out,
|
|
||||||
'page_title' => 'Favourites feed.',
|
'page_title' => 'Favourites feed.',
|
||||||
];
|
'notes' => $notes,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function favouritesByActorNickname(Request $request, string $nickname)
|
public function favouritesByActorNickname(Request $request, string $nickname)
|
||||||
@ -200,22 +198,21 @@ class Favourite extends Controller
|
|||||||
public function reverseFavouritesByActorId(Request $request, int $id): array
|
public function reverseFavouritesByActorId(Request $request, int $id): array
|
||||||
{
|
{
|
||||||
$notes = DB::dql(
|
$notes = DB::dql(
|
||||||
'select n from App\Entity\Note n, Plugin\Favourite\Entity\Favourite f '
|
<<< 'EOF'
|
||||||
. 'where n.id = f.note_id '
|
select n from note n
|
||||||
. 'and f.actor_id != :id '
|
join favourite f with n.id = f.note_id
|
||||||
. 'and n.actor_id = :id '
|
where f.actor_id != :id
|
||||||
. 'order by f.created DESC',
|
and n.actor_id = :id
|
||||||
|
order by f.created DESC
|
||||||
|
EOF,
|
||||||
['id' => $id],
|
['id' => $id],
|
||||||
);
|
);
|
||||||
|
|
||||||
$notes_out = null;
|
return $this->process_feed([
|
||||||
Event::handle('FormatNoteList', [$notes, &$notes_out]);
|
|
||||||
|
|
||||||
return [
|
|
||||||
'_template' => 'feeds/feed.html.twig',
|
'_template' => 'feeds/feed.html.twig',
|
||||||
'notes' => $notes,
|
|
||||||
'page_title' => 'Reverse favourites feed.',
|
'page_title' => 'Reverse favourites feed.',
|
||||||
];
|
'notes' => $notes,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function reverseFavouritesByActorNickname(Request $request, string $nickname)
|
public function reverseFavouritesByActorNickname(Request $request, string $nickname)
|
||||||
|
@ -26,7 +26,7 @@ declare(strict_types = 1);
|
|||||||
|
|
||||||
namespace Plugin\Reply\Controller;
|
namespace Plugin\Reply\Controller;
|
||||||
|
|
||||||
use App\Core\Controller;
|
use App\Core\Controller\FeedController;
|
||||||
use App\Core\DB\DB;
|
use App\Core\DB\DB;
|
||||||
use App\Core\Form;
|
use App\Core\Form;
|
||||||
use function App\Core\I18n\_m;
|
use function App\Core\I18n\_m;
|
||||||
@ -48,7 +48,7 @@ use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
|||||||
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
|
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
|
||||||
class Reply extends Controller
|
class Reply extends FeedController
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Controller for the note reply non-JS page
|
* Controller for the note reply non-JS page
|
||||||
@ -152,10 +152,10 @@ class Reply extends Controller
|
|||||||
$notes_out = null;
|
$notes_out = null;
|
||||||
Event::handle('FormatNoteList', [$notes, &$notes_out]);
|
Event::handle('FormatNoteList', [$notes, &$notes_out]);
|
||||||
|
|
||||||
return [
|
return $this->process_feed([
|
||||||
'_template' => 'feeds/feed.html.twig',
|
'_template' => 'feeds/feed.html.twig',
|
||||||
'notes' => $notes_out,
|
'notes' => $notes_out,
|
||||||
'page_title' => 'Replies feed',
|
'page_title' => 'Replies feed',
|
||||||
];
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user