src/Controller/HomeController.php line 23

  1. <?php
  2. namespace App\Controller;
  3. use App\Repository\UserRepository;
  4. use App\Services\FunnelConversionService;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. class HomeController extends AbstractController
  9. {
  10.     private $funnelConversionService;
  11.     public function __construct(FunnelConversionService $funnelConversionService)
  12.     {
  13.         $this->funnelConversionService $funnelConversionService;
  14.     }
  15.     #[Route('/'name'app_home')]
  16.     public function myObjectifs(): Response
  17.     {
  18.         $user $this->getUser();
  19.         if ($user) {
  20.             return $this->redirectToRoute('app_me', [
  21.                 'userName' => $user->getUserName(),
  22.             ]);
  23.         } else {
  24.             return $this->render('landing_pages/landing_V1.html.twig');
  25.         }
  26.     }
  27.     #[Route('/={userName}'name'app_me')]
  28.     public function me($userNameUserRepository $userRepo): Response
  29.     {
  30.         $connectedUser $this->getUser() ? true false;
  31.         $connectedUserName null;
  32.         $connectedUserId null;
  33.         $messageOnSite null;
  34.         $remainingDays null;
  35.         $lockedApp false;
  36.         if ($connectedUser) {
  37.             $objectUser $this->getUser();
  38.             $connectedUserName $this->getUser()->getUserName();
  39.             $connectedUserId $this->getUser()->getId();
  40.             /* Vérifier si l'abonnement est toujours actif */
  41.             if ($objectUser->getSubscription()) {
  42.                 if ($objectUser->getSubscription()->getStatus() != "active") {
  43.                     $lockedApp true;
  44.                 }
  45.             }
  46.             /* Vérifier la période d'essai est terminée */
  47.             if (!$objectUser->getSubscription()) {
  48.                 $remainingDays 0;
  49.                 /* $remainingDays = $this->funnelConversionService->checkRemainingDays($objectUser); */
  50.                 $messageOnSite $this->funnelConversionService->getDailyMessageAfterRegistration($remainingDays);
  51.                 if ($remainingDays <= 0) {
  52.                     $lockedApp true;
  53.                 }
  54.             }
  55.         }
  56.         $user $userRepo->findOneByUserName($userName);
  57.         if ($user) {
  58.             $usersObjectifs $user->getObjectifs();
  59.             $actionsDone 0;
  60.             $isPrivateProfil $user->isIsPrivate();
  61.             if ($usersObjectifs) {
  62.                 foreach ($usersObjectifs as $objo) {
  63.                     foreach ($objo->getDates() as $done) {
  64.                         $actionsDone++;
  65.                     }
  66.                 }
  67.             }
  68.             return $this->render('home/home.html.twig', [
  69.                 'user' => $user,
  70.                 'actionsDone' => $actionsDone,
  71.                 'connectedUser' => $connectedUser,
  72.                 'isPrivateProfil' => $isPrivateProfil,
  73.                 'connectedUserName' => $connectedUserName,
  74.                 'userNamePageProfil' => $userName,
  75.                 'connectedUserId' => $connectedUserId,
  76.                 'RemainingDaysMessage' => $messageOnSite,
  77.                 'lockedApp' => $lockedApp
  78.             ]);
  79.         } else {
  80.             return $this->render('landing_pages/landing_V1.html.twig');
  81.         }
  82.     }
  83. }