src/Czech/Controller/RegisterController.php line 19

Open in your IDE?
  1. <?php
  2. namespace Czech\Controller;
  3. use App\Entity\Central\Client\Client;
  4. use App\Entity\Central\User\User;
  5. use App\Entity\Client\User\UserData;
  6. use App\Service\AppManager;
  7. use Czech\Form\Type\RegisterType;
  8. use Czech\Model\RegisterModel;
  9. use Czech\Service\MailerManager;
  10. use Czech\Service\RegisterManager;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Request;
  13. class RegisterController extends AbstractController
  14. {
  15.     public function index(Request $requestRegisterManager $registerManagerMailerManager $mailerManagerAppManager $appManager)
  16.     {
  17.         if ($this->getUser()) {
  18.             return $this->redirectToRoute('czech_homepage');
  19.         }
  20.         $registerModel = new RegisterModel();
  21.         $form $this->createForm(RegisterType::class, $registerModel);
  22.         $form->handleRequest($request);
  23.         if ($form->isSubmitted() && $form->isValid()) {
  24.             try {
  25.                 $registerManager->registerClient($registerModel);
  26.                 $user $appManager->getRepository(User::class)->findOneBy(['username' => $registerModel->email]);
  27.                 if ($user->getClient() instanceof Client) {
  28.                     $appManager->setClient($user->getClient());
  29.                 }
  30.                 $userData $appManager->getRepository(UserData::class)->findOneBy(['user' => $user->getId()]);
  31.                 $userEmail $user->getUserName();
  32.                 $user $userData->getFirstName();
  33.                 $mailerManager->sendWelcome($userEmail$user);
  34.                 return $this->redirectToRoute('czech_login');
  35.             } catch (\Exception $exception) {
  36.                 throw $exception;
  37.             }
  38.         }
  39.         return $this->render('czech/register/index.html.twig', ['form' => $form->createView()]);
  40.     }
  41. }