src/Controller/App/OnlineRegistrationController.php line 28
<?php
namespace App\Controller\App;
use App\Service\NotificationService;
use App\Entity\Company;
use App\Entity\Prechild;
use App\Form\PrechildType;
use App\Service\FileUploader;
use App\Repository\PrechildRepository;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Contracts\Translation\TranslatorInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
#[Route('/')]
class OnlineRegistrationController extends AbstractController
{
private NotificationService $notificationService;
public function __construct(private TranslatorInterface $translator, NotificationService $notificationService)
{
$this->notificationService = $notificationService;
}
#[Route('/online/registration/{company}', name: 'front_online_registration')]
public function index(Request $request, Company $company, PrechildRepository $prechildRepository, FileUploader $fileUploader): Response
{
$prechild = new Prechild();
$form = $this->createForm(PrechildType::class, $prechild, [
'action' => $this->generateUrl('front_online_registration', ['company' => $company->getId()]),
'method' => 'POST',
]);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$prechild->setOwner($company);
$photo = $form->get('photo')->getData();
if ($photo) {
$uploadedFileName = $fileUploader->upload($photo, 'children_dir');
$prechild->setPhoto($uploadedFileName);
}
$prechildRepository->add($prechild, true);
$recepients = $company->getUsers();
$company_name = $company->getName();
$this->notificationService->onlineSub($company_name, $recepients, $prechild);
return $this->redirectToRoute('front_online_registration_success', ['company' => $company->getId()], Response::HTTP_SEE_OTHER);
}
return $this->render('app/online_registration/index.html.twig', [
'controller_name' => 'OnlineRegistrationController',
'company' => $company,
'form' => $form->createView()
]);
}
#[Route('/online/registration/{company}/success', name: 'front_online_registration_success')]
public function success(Request $request, Company $company, PrechildRepository $prechildRepository, FileUploader $fileUploader): Response
{
return $this->render('app/online_registration/success.html.twig', [
'controller_name' => 'OnlineRegistrationController',
'company' => $company
]);
}
}