src/Controller/PostController.php line 113

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Component\HttpFoundation\Response;
  4. use Symfony\Component\Routing\Annotation\Route;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\JsonResponse;
  8. use App\Entity\PostLike;
  9. use App\Repository\PostLikeRepository;
  10. use App\Entity\Annonces;
  11. use App\Repository\AnnoncesRepository;
  12. use App\Entity\User;
  13. use Doctrine\Persistence\ManagerRegistry;
  14. use App\Controller\Fonctions\Fonctions;
  15. /**
  16.  * Class PostController
  17.  * @package App\Controller
  18.  */
  19. class PostController extends AbstractController
  20. {
  21.     /**
  22.      * @Route(path="/post/{id}/like", name="post_like", methods={"GET"})
  23.      * @param Annonces $annonce
  24.      * @param PostLikeRepository $repository
  25.      * @return \Symfony\Component\HttpFoundation\JsonResponse
  26.      */
  27.     public function show(Request $requestManagerRegistry $doctrineAnnoncesRepository $annoncesRepository,  $id): Response
  28.     {
  29.         // fonction pour envoyer l'id du journal ou de l'utilisateur 
  30.         $user $this->getUser();
  31.         $fonction = new Fonctions();
  32.         $idposte 0;
  33.         $message  '';
  34.         $utilisateur '';
  35.         if ($user ==  true) {
  36.             $utilisateur  $user->getId();
  37.             // mettre l'id de l'annonce 
  38.             $entityManager $doctrine->getManager();
  39.             $userRepo $entityManager->getRepository(Annonces::class);
  40.             $annonce $userRepo->find($id);
  41.             $userRepo $entityManager->getRepository(User::class);
  42.             $userid $userRepo->find($user);
  43.             // mettre l'id de l'annonce 
  44.             $userRepo $entityManager->getRepository(PostLike::class);
  45.             $idposte $userRepo->findOneBy(["annonce" => $id"user" => $utilisateur]);
  46.             $teste 1;
  47.             $date 0;
  48.             $date_terminee 0;
  49.             if ($idposte ==  true) {
  50.                 $date $idposte->getCreatedAt("d/m/Y H:i:s");
  51.               
  52.                 $date $date->format('Y-m-d H:i:s') ; 
  53.                 $date_terminee = new \DateTime();
  54.                 $date_terminee $date_terminee->format('Y-m-d H:i:s') ; 
  55.                 $date=date('Y-m-d H:i:s'strtotime('+1 minute'strtotime($date)));
  56.                 if ($date $date_terminee) {
  57.                     $code 201;
  58.                     $message 'Like trop top pour supprimer';
  59.                 } else {
  60.                     $teste 2;
  61.                     $idposte $idposte->getId();
  62.                     $user $userRepo->find($idposte);
  63.                     $entityManager->remove($user);
  64.                     $entityManager->flush($user);
  65.                     $code 201;
  66.                     $message 'Like supprimer';
  67.                 }
  68.             } else {
  69.                 $like = new PostLike();
  70.                 $like->setAnnonce($annonce);
  71.                 $like->setUser($userid);
  72.                 $entityManager->persist($like);
  73.                 $entityManager->flush();
  74.                 $code 200;
  75.                 $message 'Like bien ajouté';
  76.             }
  77.         }
  78.         return new JsonResponse([
  79.             'code' => $code,
  80.             'message' => $message,
  81.             'teste' => $teste,
  82.             'date1' => $date,
  83.             'date2' => $date_terminee,
  84.             'id' => $utilisateur,
  85.             'idpost' => $idposte,
  86.         ]);
  87.     }
  88. }