src/Controller/App/OnlineRegistrationController.php line 65

  1. <?php
  2. namespace App\Controller\App;
  3. use App\Service\NotificationService;
  4. use App\Entity\Company;
  5. use App\Entity\Prechild;
  6. use App\Form\PrechildType;
  7. use App\Service\FileUploader;
  8. use App\Repository\PrechildRepository;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Contracts\Translation\TranslatorInterface;
  13. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  14. #[Route('/')]
  15. class OnlineRegistrationController extends AbstractController
  16. {
  17.     private NotificationService $notificationService;
  18.     public function __construct(private TranslatorInterface $translatorNotificationService $notificationService)
  19.     {
  20.         $this->notificationService $notificationService;
  21.     }
  22.     #[Route('/online/registration/{company}'name'front_online_registration')]
  23.     public function index(Request $requestCompany $companyPrechildRepository $prechildRepositoryFileUploader $fileUploader): Response
  24.     {
  25.         $prechild = new Prechild();
  26.         $form $this->createForm(PrechildType::class, $prechild, [
  27.             'action' => $this->generateUrl('front_online_registration', ['company' => $company->getId()]),
  28.             'method' => 'POST',
  29.         ]);
  30.         $form->handleRequest($request);
  31.         if ($form->isSubmitted() && $form->isValid()) {
  32.             $prechild->setOwner($company);
  33.             $photo $form->get('photo')->getData();
  34.             if ($photo) {
  35.                 $uploadedFileName $fileUploader->upload($photo'children_dir');
  36.                 $prechild->setPhoto($uploadedFileName);
  37.             }
  38.             $prechildRepository->add($prechildtrue);
  39.             $recepients $company->getUsers();
  40.             $company_name $company->getName();
  41.             $this->notificationService->onlineSub($company_name$recepients$prechild);
  42.             return $this->redirectToRoute('front_online_registration_success', ['company' => $company->getId()], Response::HTTP_SEE_OTHER);
  43.         }
  44.         return $this->render('app/online_registration/index.html.twig', [
  45.             'controller_name' => 'OnlineRegistrationController',
  46.             'company' => $company,
  47.             'form' => $form->createView()
  48.         ]);
  49.     }
  50.     #[Route('/online/registration/{company}/success'name'front_online_registration_success')]
  51.     public function success(Request $requestCompany $companyPrechildRepository $prechildRepositoryFileUploader $fileUploader): Response
  52.     {
  53.         return $this->render('app/online_registration/success.html.twig', [
  54.             'controller_name' => 'OnlineRegistrationController',
  55.             'company' => $company
  56.         ]);
  57.     }
  58. }