Browse Source

Ajout d'un message mattermost quand ajout ba

François Drouhard 1 year ago
parent
commit
95404e72c4
2 changed files with 41 additions and 13 deletions
  1. 12 4
      src/Service/FilmCreationListener.php
  2. 29 9
      src/Service/Mattermost.php

+ 12 - 4
src/Service/FilmCreationListener.php

@@ -3,8 +3,9 @@
 namespace App\Service;
 
 use App\Entity\Commentaire;
-use Doctrine\Persistence\Event\LifecycleEventArgs;
 use App\Entity\Film;
+use App\Entity\MediaVideo;
+use Doctrine\ORM\Event\PostPersistEventArgs;
 use Symfony\Component\Config\Definition\Exception\Exception;
 
 class FilmCreationListener
@@ -13,10 +14,14 @@ class FilmCreationListener
     {
     }
 
-    public function postPersist(LifecycleEventArgs $args): void
+    public function postPersist(PostPersistEventArgs $args): void
     {
         $entity = $args->getObject();
-        if (!$entity instanceof Film and !$entity instanceof Commentaire)
+        if (
+            !$entity instanceof Film &&
+            !$entity instanceof Commentaire &&
+            !$entity instanceof MediaVideo
+        )
         {
             return;
         }
@@ -24,8 +29,11 @@ class FilmCreationListener
         try {
             if ($entity instanceof Film)
                 $this->mattermostSender->sendNouveauFilm($entity);
-            else
+            elseif ($entity instanceof MediaVideo) {
+                $this->mattermostSender->sendNewMediaVideo($entity->getFilm());
+            } else {
                 $this->mattermostSender->sendNouveauCommentaire($entity->getUser(), $entity->getFilm());
+            }
         } catch (Exception $exception) {
 
         }

+ 29 - 9
src/Service/Mattermost.php

@@ -5,6 +5,7 @@ namespace App\Service;
 
 use App\Entity\Film;
 use App\Entity\User;
+use Symfony\Bundle\SecurityBundle\Security;
 use Symfony\Component\HttpFoundation\RequestStack;
 use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
 use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
@@ -23,7 +24,8 @@ class Mattermost
         protected string $channelId,
         protected string $channelIdAdmin,
         protected UrlGeneratorInterface $router,
-        protected RequestStack $requestStack
+        protected RequestStack $requestStack,
+        protected Security $security
     )
     {
     }
@@ -74,7 +76,8 @@ class Mattermost
             .$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);
     }
@@ -82,16 +85,33 @@ class Mattermost
     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);
     }
 
+    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)
+            .")."
+        ;
+
+        $this->SendNotif($message);
+    }
+
 
 }