Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
31 / 31
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
GuestController
100.00% covered (success)
100.00%
31 / 31
100.00% covered (success)
100.00%
3 / 3
4
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 guests
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
1
 guest
100.00% covered (success)
100.00%
18 / 18
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace App\Controller\Front;
4
5use App\Repository\MediaRepository;
6use App\Repository\UserRepository;
7use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
8use Symfony\Component\HttpFoundation\Request;
9use Symfony\Component\HttpFoundation\Response;
10use Symfony\Component\Routing\Attribute\Route;
11
12class GuestController extends AbstractController
13{
14    public function __construct(
15        private UserRepository $userRepository,
16        private MediaRepository $mediaRepository,
17    ) {}
18
19    #[Route("/guests", name: "guests")]
20    public function guests(Request $request): Response
21    {
22        $page = $request->query->getInt('page', 1);
23
24        $criteria = ['super_admin' => false, 'admin' => true];
25
26        $guests = $this->userRepository->findAdminGuestsWithMediaCount(
27            10,
28            10 * ($page - 1)
29        );
30        $total = $this->userRepository->count($criteria);
31
32        return $this->render('front/guests.html.twig', [
33            'guests' => $guests,
34            'total' => $total,
35            'page' => $page,
36        ]);
37    }
38
39    #[Route("/guest/{id}", name: "guest")]
40    public function guest(int $id, Request $request): Response
41    {
42        $page = $request->query->getInt('page', 1);
43
44        $criteria = ['id' => $id, 'super_admin' => false, 'admin' => true];
45
46        $guest = $this->userRepository->findOneBy($criteria);
47        if (!$guest) {
48            throw $this->createNotFoundException('Guest not found');
49        }
50
51        $medias = $this->mediaRepository->findBy(
52            ['user' => $guest],
53            ['id' => 'ASC'],
54            9,
55            9 * ($page - 1)
56        );
57        $total = $this->mediaRepository->count(['user' => $guest]);
58
59        return $this->render('front/guest.html.twig', [
60            'guest' => $guest,
61            'medias' => $medias,
62            'total' => $total,
63            'page' => $page,
64        ]);
65    }
66}