Explorar el Código

Correction de typage

Sangfroid hace 3 semanas
padre
commit
6db2329120

+ 33 - 34
src/Form/CommentaireType.php

@@ -10,61 +10,60 @@ use Symfony\Component\Form\FormBuilderInterface;
 use Symfony\Component\OptionsResolver\OptionsResolver;
 use Symfony\Component\Form\Extension\Core\Type\SubmitType;
 
-
 class CommentaireType extends AbstractType
 {
     /**
      * {@inheritdoc}
      */
-    public function buildForm(FormBuilderInterface $builder, array $options): void
-    {
-	    $builder
-            ->add('note', NumberType::class, [
-                'required'  => false,
-                'label'       => false,
-                'attr'      => [
-                    'min'   => 0,
-                    'max'   => 5,
-                    'class' => "rating",
-                    'data-step' => 1,
-                    'data-show-clear'   => "true",
-                    'data-show-caption' => "false",
-                    'data-size'         => "sm",
-                    'data-theme'          => "krajee-fa"
-                ]
+    public function buildForm(
+        FormBuilderInterface $builder,
+        array $options,
+    ): void {
+        $builder
+            ->add("note", NumberType::class, [
+                "required" => false,
+                "label" => false,
+                "attr" => [
+                    "min" => 0,
+                    "max" => 5,
+                    "class" => "rating",
+                    "data-step" => 1,
+                    "data-show-clear" => "true",
+                    "data-show-caption" => "false",
+                    "data-size" => "sm",
+                    "data-theme" => "krajee-fa",
+                ],
             ])
-            ->add('contenu', TextareaType::class, [
-                'required' => false,
-                'label' => false,
-                'attr'  => [
-                    'rows'  => 10
-                ]
+            ->add("contenu", TextareaType::class, [
+                "required" => false,
+                "label" => false,
+                "attr" => [
+                    "rows" => 10,
+                ],
             ])
-            ->add('save', SubmitType::class, [
-		        'label' => 'Enregistrer le commentaire',
-                'attr' => [
-                    'class'  =>  'btn-primary'
-                ]
+            ->add("save", SubmitType::class, [
+                "label" => "Enregistrer le commentaire",
+                "attr" => [
+                    "class" => "btn-primary",
+                ],
             ]);
     }
-    
+
     /**
      * {@inheritdoc}
      */
     public function configureOptions(OptionsResolver $resolver): void
     {
         $resolver->setDefaults([
-            'data_class' => Commentaire::class,
+            "data_class" => Commentaire::class,
         ]);
     }
 
     /**
      * {@inheritdoc}
      */
-    public function getBlockPrefix() : string
+    public function getBlockPrefix(): string
     {
-        return 'App_commentaire';
+        return "App_commentaire";
     }
-
-
 }

+ 10 - 11
src/Service/FilmManager.php

@@ -2,7 +2,6 @@
 
 namespace App\Service;
 
-use App\Entity\Commentaire;
 use App\Entity\Film;
 use App\Entity\User;
 use Doctrine\ORM\EntityManagerInterface;
@@ -11,7 +10,8 @@ use Symfony\Bundle\SecurityBundle\Security;
 /**
  * Class FilmManager
  */
-class FilmManager {
+class FilmManager
+{
     protected $user;
 
     public function __construct(
@@ -19,13 +19,12 @@ class FilmManager {
         protected UniciteCollections $uc,
         protected CommentaireManager $cm,
         protected MediaVideoManager $mvm,
-        Security $security
-    )
-    {
+        Security $security,
+    ) {
         $this->user = $security->getUser();
     }
 
-    public function addFilm (Film $film): void
+    public function addFilm(Film $film): void
     {
         $film->setAuthered($this->user);
         $film = $this->uc->assureUniciteCollections($film);
@@ -42,12 +41,12 @@ class FilmManager {
     public function delFilm(Film $film): void
     {
         $commentaires = $film->getCommentaires();
-        foreach($commentaires as $commentaire) {
+        foreach ($commentaires as $commentaire) {
             $this->cm->delCommentaire($commentaire);
         }
 
         $mediaVideos = $film->getMediaVideos();
-        foreach($mediaVideos as $media) {
+        foreach ($mediaVideos as $media) {
             $this->mvm->delMediaVideo($media);
         }
         $this->em->remove($film);
@@ -55,7 +54,7 @@ class FilmManager {
         $this->em->flush();
     }
 
-    public function inverseUserWhoSeen (Film $film): bool
+    public function inverseUserWhoSeen(Film $film): bool
     {
         if ($film->getUsersWhoSeen()->contains($this->user)) {
             $film->removeUserWhoSeen($this->user);
@@ -65,7 +64,7 @@ class FilmManager {
         return $this->isSeen($film);
     }
 
-    public function inverseUserWantToView (Film $film): bool
+    public function inverseUserWantToView(Film $film): bool
     {
         if ($film->getUsersWantToView()->contains($this->user)) {
             $film->removeUserWantToView($this->user);
@@ -86,4 +85,4 @@ class FilmManager {
         $user = $user ?: $this->user;
         return $film->getUsersWantToView()->contains($user);
     }
-}
+}

+ 96 - 60
src/Service/Mattermost.php

@@ -2,7 +2,6 @@
 
 namespace App\Service;
 
-
 use App\Entity\Film;
 use App\Entity\User;
 use Symfony\Bundle\SecurityBundle\Security;
@@ -25,93 +24,130 @@ class Mattermost
         protected string $channelIdAdmin,
         protected UrlGeneratorInterface $router,
         protected RequestStack $requestStack,
-        protected Security $security
-    )
-    {
-    }
+        protected Security $security,
+    ) {}
 
-    protected function SendNotif(string $message, bool $isChanAdmin = False) :void
-    {
+    protected function sendNotif(
+        string $message,
+        bool $isChanAdmin = false,
+    ): void {
         try {
             $response = $this->mattermostClient->request(
-                'POST',
-                'api/v4/posts', [
-                    'json'  => [
-                        "channel_id" => ($isChanAdmin ? $this->channelIdAdmin : $this->channelId),
-                        "message"    => $message
-                    ]
-                ]
+                "POST",
+                "api/v4/posts",
+                [
+                    "json" => [
+                        "channel_id" => $isChanAdmin
+                            ? $this->channelIdAdmin
+                            : $this->channelId,
+                        "message" => $message,
+                    ],
+                ],
             );
             // Appeler au moins une méthode pour déclencher l'exception en cas d'erreur réseau
             $response->getHeaders();
-
         } catch (TransportExceptionInterface $e) {
             /** @var \Symfony\Component\HttpFoundation\Session\Session $session */
             $session = $this->requestStack->getSession();
-            $session->getFlashBag()->add('error', "L'envoi vers mattermost a échoué.");
+            $session
+                ->getFlashBag()
+                ->add("error", "L'envoi vers mattermost a échoué.");
         }
     }
 
-    public function sendNouveauFilm(Film $film) :void
+    public function sendNouveauFilm(Film $film): void
     {
         $message =
-            ":new: **"
-            .$film->getAuthered()->getUserIdentifier()
-            ."** vient d'ajouter **"
-            ."[".$film->getTitre()."]("
-            .$this->router->generate('videotheque_voirfilm', ['id' => $film->getId()], UrlGeneratorInterface::ABSOLUTE_URL)
-            .")** dans la [vidéothèque]("
-            .$this->router->generate('videotheque_liste', [], UrlGeneratorInterface::ABSOLUTE_URL)
-            .").";
-        $this->SendNotif($message);
+            ":new: **" .
+            $film->getAuthered()->getUserIdentifier() .
+            "** vient d'ajouter **" .
+            "[" .
+            $film->getTitre() .
+            "](" .
+            $this->router->generate(
+                "videotheque_voirfilm",
+                ["id" => $film->getId()],
+                UrlGeneratorInterface::ABSOLUTE_URL,
+            ) .
+            ")** dans la [vidéothèque](" .
+            $this->router->generate(
+                "videotheque_liste",
+                [],
+                UrlGeneratorInterface::ABSOLUTE_URL,
+            ) .
+            ").";
+        $this->sendNotif($message);
     }
 
-    public function sendNouveauCommentaire(User $user, Film $film) :void
+    public function sendNouveauCommentaire(User $user, Film $film): void
     {
         $message =
-            ":new: **"
-            .$user->getUserIdentifier()
-            ."** vient d'ajouter un commentaire sur le film **"
-            ."[".$film->getTitre()."]("
-            .$this->router->generate('videotheque_voirfilm', ['id' => $film->getId()], UrlGeneratorInterface::ABSOLUTE_URL)
-            .")** dans la [vidéothèque]("
-            .$this->router->generate('videotheque_liste', [], UrlGeneratorInterface::ABSOLUTE_URL)
-            .")."
-        ;
+            ":new: **" .
+            $user->getUserIdentifier() .
+            "** vient d'ajouter un commentaire sur le film **" .
+            "[" .
+            $film->getTitre() .
+            "](" .
+            $this->router->generate(
+                "videotheque_voirfilm",
+                ["id" => $film->getId()],
+                UrlGeneratorInterface::ABSOLUTE_URL,
+            ) .
+            ")** dans la [vidéothèque](" .
+            $this->router->generate(
+                "videotheque_liste",
+                [],
+                UrlGeneratorInterface::ABSOLUTE_URL,
+            ) .
+            ").";
 
-        $this->SendNotif($message);
+        $this->sendNotif($message);
     }
 
-    public function sendNewUser(string $userName) : void
+    public function sendNewUser(string $userName): void
     {
         $message =
-            ":warning: Un utilisateur vient de s'enregistrer dans la [vidéothèque]("
-            .$this->router->generate('videotheque_liste', [], UrlGeneratorInterface::ABSOLUTE_URL)
-            .")** : "
-            .$userName
-            ."**. Accéder à la [liste des utilisateurs]("
-            .$this->router->generate('admin_index', [],  UrlGeneratorInterface::ABSOLUTE_URL)
-            .")."
-        ;
+            ":warning: Un utilisateur vient de s'enregistrer dans la [vidéothèque](" .
+            $this->router->generate(
+                "videotheque_liste",
+                [],
+                UrlGeneratorInterface::ABSOLUTE_URL,
+            ) .
+            ")** : " .
+            $userName .
+            "**. Accéder à la [liste des utilisateurs](" .
+            $this->router->generate(
+                "admin_index",
+                [],
+                UrlGeneratorInterface::ABSOLUTE_URL,
+            ) .
+            ").";
 
-        $this->sendNotif($message, True);
+        $this->sendNotif($message, true);
     }
 
     public function sendNewMediaVideo(Film $film): void
     {
         $message =
-            ":new: **"
-            . $this->security->getToken()->getUserIdentifier()
-            ."** vient d'ajouter une bande d'annonce sur le film **"
-            ."[".$film->getTitre()."]("
-            .$this->router->generate('videotheque_voirfilm', ['id' => $film->getId()], UrlGeneratorInterface::ABSOLUTE_URL)
-            .")** dans la [vidéothèque]("
-            .$this->router->generate('videotheque_liste', [], UrlGeneratorInterface::ABSOLUTE_URL)
-            .")."
-        ;
+            ":new: **" .
+            $this->security->getToken()->getUserIdentifier() .
+            "** vient d'ajouter une bande d'annonce sur le film **" .
+            "[" .
+            $film->getTitre() .
+            "](" .
+            $this->router->generate(
+                "videotheque_voirfilm",
+                ["id" => $film->getId()],
+                UrlGeneratorInterface::ABSOLUTE_URL,
+            ) .
+            ")** dans la [vidéothèque](" .
+            $this->router->generate(
+                "videotheque_liste",
+                [],
+                UrlGeneratorInterface::ABSOLUTE_URL,
+            ) .
+            ").";
 
-        $this->SendNotif($message);
+        $this->sendNotif($message);
     }
-
-
-}
+}

+ 8 - 10
src/Service/NoteListener.php

@@ -10,33 +10,32 @@ use Doctrine\ORM\Event\PostUpdateEventArgs;
 use Doctrine\ORM\Events;
 use Doctrine\Persistence\Event\LifecycleEventArgs;
 
-
 #[AsDoctrineListener(event: Events::postPersist)]
 #[AsDoctrineListener(event: Events::postUpdate)]
 #[AsDoctrineListener(event: Events::postRemove)]
 class NoteListener
-
 {
-    public function __construct(protected NoteMoyenne $noteMoyenne)
-    {
-    }
+    public function __construct(protected NoteMoyenne $noteMoyenne) {}
 
     public function postPersist(PostPersistEventArgs $args): void
     {
         $this->calculer($args);
     }
 
-    public function postUpdate (PostUpdateEventArgs $args): void
+    public function postUpdate(PostUpdateEventArgs $args): void
     {
         $this->calculer($args);
     }
 
-    public function postRemove (PostRemoveEventArgs $args): void
+    public function postRemove(PostRemoveEventArgs $args): void
     {
         $this->calculer($args);
     }
 
-    private function calculer (LifecycleEventArgs $args): void
+    /**
+     * @param LifecycleEventArgs $args
+     */
+    private function calculer(LifecycleEventArgs $args): void
     {
         $entity = $args->getObject();
 
@@ -46,5 +45,4 @@ class NoteListener
 
         $this->noteMoyenne->calculerMoyenne($entity->getFilm());
     }
-
-}
+}

+ 2 - 8
src/Service/RegisterListener.php

@@ -6,15 +6,11 @@ use App\Entity\User;
 use Doctrine\Bundle\DoctrineBundle\Attribute\AsDoctrineListener;
 use Doctrine\ORM\Event\PostPersistEventArgs;
 use Doctrine\ORM\Events;
-use Doctrine\Persistence\Event\LifecycleEventArgs;
-
 
 #[AsDoctrineListener(event: Events::postPersist)]
 class RegisterListener
 {
-    public function __construct(protected Mattermost $mattermostSender)
-    {
-    }
+    public function __construct(protected Mattermost $mattermostSender) {}
 
     public function postPersist(PostPersistEventArgs $args): void
     {
@@ -24,7 +20,5 @@ class RegisterListener
         }
 
         $this->mattermostSender->sendNewUser($entity->getUserIdentifier());
-
-
     }
-}
+}

+ 47 - 54
src/Service/TmdbApiService.php

@@ -10,31 +10,25 @@ use Symfony\Contracts\HttpClient\HttpClientInterface;
 
 class TmdbApiService
 {
-    protected string $content = '';
+    protected string $content = "";
     protected int $nbResults = 0;
     protected int $nbPages = 0;
     protected array $films = [];
 
     public function __construct(
         protected HttpClientInterface $tmdbClient,
-        protected UniciteCollections $uc
-    )
-    {
-        
-    }
+        protected UniciteCollections $uc,
+    ) {}
 
     public function query(string $titre, int $page = 1): bool
     {
         try {
-            $response = $this->tmdbClient->request(
-                'GET',
-                'search/movie',[
-                    'query' => [                
-                        'query' => $titre,
-                        'page'  => $page
-                    ]
-                ]
-            );
+            $response = $this->tmdbClient->request("GET", "search/movie", [
+                "query" => [
+                    "query" => $titre,
+                    "page" => $page,
+                ],
+            ]);
 
             $this->content = $response->getContent();
             $this->jsonDecode();
@@ -48,16 +42,12 @@ class TmdbApiService
     {
         $detail = null;
         try {
-            $response = $this->tmdbClient->request(
-                'GET',
-                'movie/'. $id ,[
-                    'query' => [
-                        'append_to_response'    => 'credits,videos',
-                    ]
-                ]
-            );
+            $response = $this->tmdbClient->request("GET", "movie/" . $id, [
+                "query" => [
+                    "append_to_response" => "credits,videos",
+                ],
+            ]);
             $detail = $response->getContent();
-
         } catch (\Exception $e) {
             return null;
         }
@@ -87,40 +77,33 @@ class TmdbApiService
         $this->nbPages = $json->total_pages;
         $entrees = $json->results;
 
-        foreach($entrees as $entree) {
+        foreach ($entrees as $entree) {
             $film = $this->hydrateFilm($entree->id);
 
-            $this->films[$entree->id]['data'] = $film;
+            $this->films[$entree->id]["data"] = $film;
         }
     }
 
-    public function hydrateFilm($filmTmdbId): Film
+    public function hydrateFilm(int $filmTmdbId): Film
     {
         $filmTmdb = json_decode($this->getDetailMovie($filmTmdbId));
+        dump($filmTmdb);
         $film = new Film();
-        $film
-            ->setTitre($filmTmdb->title)
-            ->setInformation($filmTmdb->overview);
+        $film->setTitre($filmTmdb->title)->setInformation($filmTmdb->overview);
 
-        if (preg_match ("/^\d{4}-\d{2}-\d{2}$/", $filmTmdb->release_date))
-        {
+        if (preg_match("/^\d{4}-\d{2}-\d{2}$/", $filmTmdb->release_date)) {
             $dateSortie = $filmTmdb->release_date;
-            $annee = substr($dateSortie, 0, 4) . '-01-01';
+            $annee = substr($dateSortie, 0, 4) . "-01-01";
             $film
                 ->setDateSortie(new \DateTimeImmutable($dateSortie))
-                ->setAnnee(new \DateTimeImmutable($annee))
-            ;
-
-        } elseif (preg_match("/^\d{4}/", $filmTmdb->release_date)) {
-            $annee = substr($filmTmdb->release_date, 0, 4) . '-01-01';
-            $film                    
                 ->setAnnee(new \DateTimeImmutable($annee));
-            ;
+        } elseif (preg_match("/^\d{4}/", $filmTmdb->release_date)) {
+            $annee = substr($filmTmdb->release_date, 0, 4) . "-01-01";
+            $film->setAnnee(new \DateTimeImmutable($annee));
         }
 
-        ;
         foreach ($filmTmdb->genres as $genre) {
-            $film->addGenre((new Genre())->setName($genre->name));
+            $film->addGenre(new Genre()->setName($genre->name));
         }
 
         foreach ($this->getRealisateurs($filmTmdb) as $realisateur) {
@@ -130,7 +113,7 @@ class TmdbApiService
         $videoTmdb = $this->getOneVideo($filmTmdb);
         if (!empty($videoTmdb)) {
             $video = new MediaVideo();
-            $video->setFromTmdb($videoTmdb['type'], $videoTmdb['identif']);
+            $video->setFromTmdb($videoTmdb["type"], $videoTmdb["identif"]);
             $film->addMediaVideo($video);
         }
 
@@ -138,11 +121,15 @@ class TmdbApiService
         return $film;
     }
 
-    public function getRealisateurs($detailMovie): array
+    /**
+     * @param array<string, mixed> $detailMovie
+     * @return array<int, Realisateur>
+     */
+    public function getRealisateurs(array $detailMovie): array
     {
-        $directors = array();
-        foreach($detailMovie->credits->crew as $crew) {
-            if ($crew->job === 'Director') {
+        $directors = [];
+        foreach ($detailMovie->credits->crew as $crew) {
+            if ($crew->job === "Director") {
                 $realisateur = new Realisateur();
                 $realisateur->setNomComplet($crew->name);
                 $directors[] = $realisateur;
@@ -151,21 +138,27 @@ class TmdbApiService
         return $directors;
     }
 
-    public function getOneVideo($detailMovie): array
+    /**
+     * @param array<string, mixed> $detailMovie
+     * @return array<string, string>
+     */
+    public function getOneVideo(array $detailMovie): array
     {
-        foreach($detailMovie->videos->results as $video) {
+        foreach ($detailMovie->videos->results as $video) {
             if (
-                ($video->site === "YouTube" || $video->site === "Vimeo" || $video->site === "DailyMotion") &&
+                ($video->site === "YouTube" ||
+                    $video->site === "Vimeo" ||
+                    $video->site === "DailyMotion") &&
                 $video->type === "Trailer" &&
-                $video->iso_639_1 === "fr" && $video->iso_3166_1 === "FR"
+                $video->iso_639_1 === "fr" &&
+                $video->iso_3166_1 === "FR"
             ) {
                 return [
-                    'type' => strtolower($video->site),
-                    'identif'   => $video->key
+                    "type" => strtolower($video->site),
+                    "identif" => $video->key,
                 ];
             }
         }
         return [];
     }
-
 }

+ 23 - 16
src/Service/UserManager.php

@@ -20,14 +20,21 @@ class UserManager
     public function __construct(
         protected EntityManagerInterface $em,
         protected UserPasswordHasherInterface $passwordEncoder,
-        protected TokenGeneratorInterface $tokenGenerator
-    )
-    {
-
-    }
+        protected TokenGeneratorInterface $tokenGenerator,
+    ) {}
 
-    public function createUser(string $username, string $password, string $nom, string $prenom, string $mail, array $roles, bool $activated): void
-    {
+    /**
+     * @param array<int, string> $roles
+     */
+    public function createUser(
+        string $username,
+        string $password,
+        string $nom,
+        string $prenom,
+        string $mail,
+        array $roles,
+        bool $activated,
+    ): void {
         $user = new User();
         $options = new Profile();
         $user->setUsername($username);
@@ -44,23 +51,24 @@ class UserManager
     public function register(User $user): void
     {
         $user->setActivated(false);
-        $user->setRoles(array('ROLE_USER'));
+        $user->setRoles(["ROLE_USER"]);
         $this->enregistrerUser($user);
     }
 
-
     public function resetPassword(User $user): void
     {
         //$user->setActivated(true);
         $this->enregistrerUser($user);
     }
-    public function enregistrerUser (User $user): void
+    public function enregistrerUser(User $user): void
     {
-        $encoded = $this->passwordEncoder->hashPassword($user, $user->getPassword());
+        $encoded = $this->passwordEncoder->hashPassword(
+            $user,
+            $user->getPassword(),
+        );
         $user->setPassword($encoded);
         $this->generateToken($user);
-        if ($user->getProfile() === null)
-        {
+        if ($user->getProfile() === null) {
             $options = new Profile();
             $user->setProfile($options);
         }
@@ -68,7 +76,7 @@ class UserManager
         $this->em->flush();
     }
 
-    public function editUser (): void
+    public function editUser(): void
     {
         $this->em->flush();
     }
@@ -83,5 +91,4 @@ class UserManager
     {
         $user->setToken($this->tokenGenerator->generateToken());
     }
-
-}
+}