diff --git a/src/Controller/IndexController.php b/src/Controller/IndexController.php index 2b494f3..b9a805e 100644 --- a/src/Controller/IndexController.php +++ b/src/Controller/IndexController.php @@ -3,6 +3,7 @@ namespace App\Controller; use App\Download\Framework\Repository\DownloadRepository; +use App\Tmdb\Tmdb; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; @@ -11,6 +12,7 @@ final class IndexController extends AbstractController { public function __construct( private readonly DownloadRepository $downloadRepository, + private readonly Tmdb $tmdb, ) {} #[Route('/', name: 'app_index')] @@ -18,7 +20,8 @@ final class IndexController extends AbstractController { return $this->render('index/index.html.twig', [ 'active_downloads' => [], - 'recent_downloads' => $this->downloadRepository->latest(5) + 'recent_downloads' => $this->downloadRepository->latest(5), + 'popular_movies' => $this->tmdb->popularMovies(1, 6), ]); } } diff --git a/src/Tmdb/Tmdb.php b/src/Tmdb/Tmdb.php index e6232a6..cdda7ef 100644 --- a/src/Tmdb/Tmdb.php +++ b/src/Tmdb/Tmdb.php @@ -94,12 +94,18 @@ class Tmdb $this->tvRepository = new TvRepository($this->client); } - public function popularMovies(int $page = 1) + public function popularMovies(int $page = 1, ?int $limit = null) { $movies = $this->movieRepository->getPopular(['page' => $page]); - foreach ($movies as $movie) { - $this->parseResult($movie); + $movies = $movies->map(function ($movie) use ($movies) { + return $this->parseResult($movies[$movie], "movie"); + }); + + $movies = array_values($movies->toArray()); + + if (null !== $limit) { + $movies = array_slice($movies, 0, $limit); } return $movies; diff --git a/templates/components/Poster.html.twig b/templates/components/Poster.html.twig index fc7f472..5d6e14a 100644 --- a/templates/components/Poster.html.twig +++ b/templates/components/Poster.html.twig @@ -1,4 +1,4 @@