. // }}} namespace Plugin\Favourite\Controller; use App\Core\DB\DB; use App\Core\Event; use Symfony\Component\HttpFoundation\Request; class Favourite { public function favouritesByActorId(Request $request, int $id) { $notes = DB::dql( 'select n from App\Entity\Note n, Plugin\Favourite\Entity\Favourite f ' . 'where n.id = f.note_id ' . 'and f.actor_id = :id ' . 'order by f.created DESC', ['id' => $id] ); $notes_out = null; Event::handle('FormatNoteList', [$notes, &$notes_out]); return [ '_template' => 'network/public.html.twig', 'notes' => $notes_out, ]; } public function favouritesByActorNickname(Request $request, string $nickname) { $user = DB::findOneBy('local_user', ['nickname' => $nickname]); return self::favouritesByActorId($request, $user->getId()); } /** * Reverse favourites stream * * @param Request $request * * @throws \App\Util\Exception\NoLoggedInUser user not logged in * * @return array template */ public function reverseFavouritesByActorId(Request $request, int $id) { $notes = DB::dql('select n from App\Entity\Note n, Plugin\Favourite\Entity\Favourite f ' . 'where n.id = f.note_id ' . 'and f.actor_id != :id ' . 'and n.actor_id = :id ' . 'order by f.created DESC' , ['id' => $id] ); $notes_out = null; Event::handle('FormatNoteList', [$notes, &$notes_out]); return [ '_template' => 'network/reversefavs.html.twig', 'notes' => $notes, ]; } public function reverseFavouritesByActorNickname(Request $request, string $nickname) { $user = DB::findOneBy('local_user', ['nickname' => $nickname]); return self::reverseFavouritesByActorId($request, $user->getId()); } }