<?php
namespace App\Controller\Website;
use App\Controller\AbstractController;
use App\Criteria\DemandCommentCriteria;
use App\Criteria\NewsCriteria;
use App\Repository\DemandRepository;
use App\Repository\NewsRepository;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class ShowHomeController extends AbstractController
{
public function __construct(
private string $repartitionDemandsMapPath
) {
}
#[Route(name: 'home')]
public function __invoke(NewsCriteria $newsCriteria, NewsRepository $newsRepository, DemandRepository $demandRepository): Response
{
$newsCriteria->limit = 3;
$newsRepository->buildCriteriaQuery($newsCriteria);
$news = $newsRepository->getResult();
$demandCommentCriteria = new DemandCommentCriteria();
$demandRepository
->getDemandWithUserFeedback($demandCommentCriteria)
->getQueryBuilder()
;
$publishedDemands = $demandRepository->getResult();
$demands = $demandRepository->findAll();
return $this->render('home.html.twig', [
'news' => $news,
'published_demands' => $publishedDemands,
'demands' => $demands,
'repartition_demands_map_path' => $this->repartitionDemandsMapPath,
]);
}
}