src/Controller/SupportController.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\CustomerSupportcontactType;
  4. use App\Form\SupportcontactType;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use Symfony\Component\Mailer\MailerInterface;
  10. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  11. use Symfony\Component\Mime\Address;
  12. /**
  13.  * Le support controller gère les pages supports.
  14.  */
  15. class SupportController extends AbstractController {
  16.     /**
  17.      * page accueil Support
  18.      * @return Response la page html
  19.      * @param Request $request les paramètres GET OU POST
  20.      * @param MailerInterface $mailer gestionnaire d'envoi de mails
  21.      */
  22.     #[Route(path'support'name'support_client')]
  23.     public function supportClient(Request $requestMailerInterface $mailer): Response {
  24.         $form $this->createForm(CustomerSupportContactType::class);
  25.         $form->handleRequest($request);
  26.         if ($form->isSubmitted() && $form->isValid()) {
  27.             $params = [];
  28.             //on passe les données du formulaire dans un tableau de paramètre
  29.             $params['phone'] = $form->get('telephoneContact')->getData();
  30.             $params['emailContact'] = $form->get('mailContact')->getData();
  31.             $params['motif'] = $form->get('motifDeLaDemande')->getData();
  32.             $params['firstName'] = $form->get('firstName')->getData();
  33.             $params['lastName'] = $form->get('lastName')->getData();
  34.             if ($this->getUser() !== null) {
  35.                 $params['enterprise'] = $this->getUser()->getEnterprise();
  36.             }
  37.             $actionsList $this->getParameter('email_template');
  38.             $templateInfo $actionsList['support']['request'];
  39.             //TODO: changer l'adresse mail
  40.             $recipient 'iwip-collect@elementaire.in';
  41.             $email = (new TemplatedEmail())
  42.                 ->from(new Address($this->getParameter('emailSender')['address'],  $this->getParameter('emailSender')['adressName']))
  43.                 ->to(new Address($recipient))
  44.                 ->subject($templateInfo['subject'])
  45.                 ->htmlTemplate('email/fr/' $templateInfo['template'] . '.html.twig')
  46.                 ->context($params);
  47.             $mailer->send($email);
  48.             return $this->redirectToRoute('thank', ['type' => 'contact']);
  49.         }
  50.         return $this->render('front/supportClient.html.twig', ['form' => $form->createView()]);
  51.     }
  52.     #[Route(path'modificationCompte'name'modification_compte')]
  53.     public function modificationCompte(Request $requestMailerInterface $mailer): Response {
  54.         $form $this->createForm(SupportContactType::class);
  55.         $form->get('identifiant')->setData($this->getUser()->getContact()->getLastName());
  56.         $form->get('mailContact')->setData($this->getUser()->getEmail());
  57.         $form->handleRequest($request);
  58.         if ($form->isSubmitted() && $form->isValid()) {
  59.             $params = [];
  60.             $params['phone'] = $form->get('telephoneContact')->getData();
  61.             $params['emailContact'] = $form->get('mailContact')->getData();
  62.             $params['motif'] = $form->get('motifDeLaDemande')->getData();
  63.             $params['firstName'] = $form->get('identifiant')->getData();
  64.             if ($this->getUser() !== null) {
  65.                 $params['enterprise'] = $this->getUser()->getEnterprise();
  66.             }
  67.             $actionsList $this->getParameter('email_template');
  68.             $templateInfo $actionsList['support']['modificationInfos'];
  69.             $recipient 'iwip-collect@elementaire.in';
  70.             $email = (new TemplatedEmail())
  71.                 ->from('iwip-collect@elementaire.in')
  72.                 ->to(new Address($recipient))
  73.                 ->subject($templateInfo['subject'])
  74.                 ->htmlTemplate('email/fr/' $templateInfo['template'] . '.html.twig')
  75.                 ->context($params);
  76.             $mailer->send($email);
  77.             $this->addFlash('success''Message bien envoyé');
  78.             switch ($this->getUser()->getRoles()[0]) {
  79.                 case 'ROLE_ADMIN':
  80.                     return $this->redirectToRoute('admin');
  81.                 case 'ROLE_CUSTOMER':
  82.                     return $this->redirectToRoute('customer');
  83.                 case 'ROLE_PROVIDER':
  84.                     return $this->redirectToRoute('provider');
  85.                 case 'ROLE_BUSINESSLINEMANAGER':
  86.                     return $this->redirectToRoute('admin');
  87.                 case 'ROLE_GROUPMANAGER':
  88.                     return $this->redirectToRoute('admin');
  89.                 case 'ROLE_GESTIONNAIRE':
  90.                     return $this->redirectToRoute('admin_exporter_home');
  91.                 case 'ROLE_REGIONMANAGER':
  92.                     return $this->redirectToRoute('admin');
  93.             }
  94.         }
  95.         return $this->render('front/supportCompte.html.twig', ['form' => $form->createView()]);
  96.     }
  97. }