src/Controller/DomainVariationController.php line 44

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\DomainVariation;
  4. use App\Form\Type\DomainVariationType;
  5. use App\Service\DomainVariationService;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\RedirectResponse;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. /**
  13.  * @Route(path="variation")
  14.  */
  15. class DomainVariationController extends AbstractController
  16. {
  17.     const VARIATION_ID         'variationId';
  18.     const NOTIFICATION_SUCCESS 'notification-success';
  19.     /**
  20.      * @var DomainVariationService
  21.      */
  22.     private DomainVariationService $domainVariationService;
  23.     /**
  24.      * constructor
  25.      *
  26.      * @param DomainVariationService $domainVariationService
  27.      */
  28.     public function __construct(DomainVariationService $domainVariationService)
  29.     {
  30.         $this->domainVariationService $domainVariationService;
  31.     }
  32.     /**
  33.      * Domain Variation index
  34.      *
  35.      * @Route(path="/", name="variation_index", methods={"GET"})
  36.      * @return Response
  37.      */
  38.     public function indexAction(): Response
  39.     {
  40.         $lstVariations $this->domainVariationService->getAll();
  41.         return $this->render('variation/list.html.twig', [
  42.             'lstVariations' => $lstVariations,
  43.         ]);
  44.     }
  45.     /**
  46.      * Domain Variation new
  47.      *
  48.      * @Route(path="/new", name="variation_new", methods={"GET", "POST"})
  49.      * @param Request $request
  50.      * @return Response
  51.      */
  52.     public function newAction(Request $request): Response
  53.     {
  54.         $variation = new DomainVariation();
  55.         $form      $this->createForm(DomainVariationType::class, $variation);
  56.         $form->handleRequest($request);
  57.         $errors $this->domainVariationService->validate($variation);
  58.         if ($errors->count() === 0) {
  59.             if ($form->isSubmitted() && $form->isValid()) {
  60.                 $this->domainVariationService->save($variation);
  61.                 $this->addFlash(self::NOTIFICATION_SUCCESS'Variation created');
  62.                 return $this->redirectToRoute('variation_index');
  63.             }
  64.         }
  65.         return $this->renderForm('variation/new.html.twig', [
  66.             'form'  => $form,
  67.             'error' => $errors,
  68.         ]);
  69.     }
  70.     /**
  71.      * AdServer-Domain Edit.
  72.      *
  73.      * @Route(path="/edit/{id}", name="variation_edit", methods={"GET", "POST"})
  74.      *
  75.      * @param Request $request
  76.      * @param int     $id
  77.      * @return Response
  78.      */
  79.     public function editAction(Request $requestint $id): Response
  80.     {
  81.         $variation $this->domainVariationService->getById($id);
  82.         if (empty($variation)) {
  83.             throw new NotFoundHttpException('Variation not found!');
  84.         }
  85.         $form $this->createForm(DomainVariationType::class, $variation);
  86.         $form->handleRequest($request);
  87.         $errors $this->domainVariationService->validate($variation);
  88.         if ($errors->count() === 0) {
  89.             if ($form->isSubmitted() && $form->isValid()) {
  90.                 $this->domainVariationService->save($variation);
  91.                 $this->addFlash(self::NOTIFICATION_SUCCESS'Variation updated');
  92.                 return $this->redirectToRoute('variation_index');
  93.             }
  94.         }
  95.         return $this->renderForm('variation/edit.html.twig', [
  96.             'form'  => $form,
  97.             'error' => $errors,
  98.         ]);
  99.     }
  100.     /**
  101.      * AdServer-Domain New.
  102.      *
  103.      * @Route(path="/delete", name="variation_delete", methods={"POST"})
  104.      *
  105.      * @param Request $request
  106.      * @return RedirectResponse
  107.      */
  108.     public function deleteAction(Request $request): RedirectResponse
  109.     {
  110.         $id $request->request->all()[self::VARIATION_ID] ?? null;
  111.         if (is_null($id)) {
  112.             throw new \InvalidArgumentException();
  113.         }
  114.         $variation $this->domainVariationService->getById($id);
  115.         if (empty($variation)) {
  116.             throw new NotFoundHttpException('Variation not found!');
  117.         }
  118.         $this->domainVariationService->delete($variation);
  119.         $this->addFlash(self::NOTIFICATION_SUCCESS'Variation removed');
  120.         return $this->redirectToRoute('variation_index');
  121.     }
  122. }