src/Controller/Back/SubscriptionController.php line 48

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Back;
  3. use App\Entity\Company;
  4. use App\Repository\CompanyRepository;
  5. use App\Repository\PaiementRepository;
  6. use App\Services\MangoPayService;
  7. use App\Services\StripeSubscriptionService;
  8. use Doctrine\ORM\EntityManagerInterface;
  9. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. /**
  15.  * @Route("/admin/subscriptions")
  16.  * @IsGranted("ROLE_ADMIN_LIMITED")
  17.  */
  18. class SubscriptionController extends AbstractController {
  19.     
  20.     /**
  21.      * @var EntityManagerInterface
  22.      */
  23.     private $em;
  24.     /**
  25.      * @var MangoPayService
  26.      */
  27.     private $mangoPayService;
  28.     /**
  29.      * @var StripeSubscriptionService
  30.      */
  31.     private $stripeSubscriptionService;
  32.     public function __construct(EntityManagerInterface $emMangoPayService $mangoPayServiceStripeSubscriptionService $stripeSubscriptionService)
  33.     {
  34.         $this->em $em;
  35.         $this->mangoPayService $mangoPayService;
  36.         $this->stripeSubscriptionService $stripeSubscriptionService;
  37.     }
  38.     /**
  39.      * @Route("/subscribers/list", name="admin_subscribers_list")
  40.      */
  41.     public function everySubscription(CompanyRepository $companyRepository)
  42.     {
  43.         $companies $companyRepository->getSubscribedCompanies();
  44.         return $this->render('back/subscription/index.html.twig', [
  45.             'companies' => $companies
  46.         ]);
  47.     }
  48.     /**
  49.      * @Route("/paiements", name="app_admin_subscription_paiements")
  50.      */
  51.     public function paiements(PaiementRepository $paiementRepository): Response
  52.     {   
  53.         $paiements $paiementRepository->findByExistentAbonnement();
  54.         return $this->render('back/admin_finances/paiements.html.twig', [
  55.             'paiements' => $paiements,
  56.             'controller_name' => 'AdminFinancesController',
  57.         ]);
  58.     }
  59.     /**
  60.      * @Route("/disable/subscription/{id}", name="admin_subscription_subscription_end")
  61.      */
  62.     public function disableSubscription(Company $companyRequest $request)
  63.     {
  64.         if (!$this->getUser() ) {
  65.             return $this->redirectToRoute('front_home');
  66.         }
  67.         if (!$this->isCsrfTokenValid('unsubscribe' $company->getId(), $request->request->get('token'))) {
  68.             $this->addFlash('danger','jeton csfr invalide !!');
  69.             return $this->redirectToRoute('admin_subscribers_list');
  70.         }
  71.         
  72.         $this->stripeSubscriptionService->cancelCompanySubscription($company$this->em);
  73.         
  74.         return $this->redirectToRoute('admin_subscribers_list');
  75.     }
  76. }