src/Controller/Auth/RegistrationController.php line 61

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Auth;
  3. use App\Form\Registration\RegistrationFormType;
  4. use App\Services\Api\Auth\AuthService;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use Symfony\Contracts\HttpClient\Exception\ClientExceptionInterface;
  10. use Symfony\Contracts\HttpClient\Exception\RedirectionExceptionInterface;
  11. use Symfony\Contracts\HttpClient\Exception\ServerExceptionInterface;
  12. use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
  13. class RegistrationController extends AbstractController
  14. {
  15.     private $authService;
  16.     public function __construct(AuthService $authService)
  17.     {
  18.         $this->authService $authService;
  19.     }
  20.     /**
  21.      * @throws TransportExceptionInterface
  22.      * @throws ServerExceptionInterface
  23.      * @throws RedirectionExceptionInterface
  24.      * @throws ClientExceptionInterface
  25.      */
  26.     #[Route('/register'name'app_register')]
  27.     public function registration(Request $request): Response
  28.     {
  29.         $form $this->createForm(RegistrationFormType::class);
  30.         // Traiter la soumission du formulaire
  31.         $form->handleRequest($request);
  32.         // Soumission du formulaire et validation
  33.         if ($form->isSubmitted() && $form->isValid()) {
  34.             $data $form->getData();
  35.             $body=[
  36.                 "email" => $form->get('email')->getData(),
  37.                 "password" => $form->get('password')->getData(),
  38.                 "lastname" => $form->get('lastname')->getData(),
  39.                 "firstname" => $form->get('firstname')->getData()
  40.             ];
  41.             $response $this->authService->postRegistration($body);
  42.             $statusCode $response->getStatusCode();
  43.             if ($statusCode === 200 || $statusCode === 201) {
  44.                 $this->addFlash("success""Votre Compte a été crée avec success");
  45.                 return $this->redirectToRoute('app_login');
  46.             }else{
  47.                 $this->addFlash("danger"json_decode($response->getContent(false), true)['message']);
  48.                 return $this->redirectToRoute('app_register');
  49.             }
  50.         }
  51.         return $this->render('frontend/registration/register.html.twig', [
  52.             'form' => $form->createView(),
  53.         ]);
  54.     }
  55. }