1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- namespace App\Controller;
- use App\Repository\CommentaireRepository;
- use App\Repository\FilmRepository;
- use App\Repository\GenreRepository;
- use App\Repository\MediaVideoRepository;
- use App\Repository\RealisateurRepository;
- use App\Repository\UserRepository;
- use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
- use Symfony\Bundle\SecurityBundle\Security;
- use Symfony\Component\HttpFoundation\JsonResponse;
- use Symfony\Component\HttpFoundation\Response;
- use Symfony\Component\Routing\Annotation\Route;
- class DashboardController extends AbstractController
- {
- #[Route('/dashboard', name: 'app_dashboard')]
- public function index(FilmRepository $filmRepository, Security $security): Response
- {
- return $this->render("dashboard/index.html.twig");
- }
- #[Route('/jsdashboard', name: 'app_json_dashboard')]
- public function jsonDashboard(
- FilmRepository $filmRepository,
- GenreRepository $genreRepository,
- RealisateurRepository $realisateurRepository,
- MediaVideoRepository $mediaVideoRepository,
- CommentaireRepository $commentaireRepository,
- UserRepository $userRepository,
- Security $security
- ) : JsonResponse
- {
- /** @var \App\Entity\User $user */
- $user = $security->getUser();
- $userId = $user->getId();
- $nbComsAll = $commentaireRepository->count([]);
- $nbComsUser = $commentaireRepository->nbComsByUser($userId);
- $nbFilmsAll = $filmRepository->count([]);
- $nbFilmsSeenByUser = $filmRepository->nbFilmSeenBy($userId);
- $nbFilmsToSeeByUser = $filmRepository->nbFilmToSeeBy($userId);
- $nbGenres = $genreRepository->count([]);
- $nbrealisateurs = $realisateurRepository->count([]);
- $nbUsers = $userRepository->count([]);
- $nbMediaVideos = $mediaVideoRepository->count([]);
- $tableau = [
- 'commentaires' => [
- 'all' => $nbComsAll,
- 'user' => $nbComsUser
- ],
- 'films' => [
- 'all' => $nbFilmsAll,
- 'seen-by-user' => $nbFilmsSeenByUser,
- 'to-see-by-user' => $nbFilmsToSeeByUser
- ],
- 'genres' => $nbGenres,
- 'realisateurs' => $nbrealisateurs,
- 'users' => $nbUsers,
- 'medias' => $nbMediaVideos
- ];
- return new JsonResponse($tableau, 200, [], false);
- }
- }
|