<?php
namespace App\Controller;
use App\Entity\SspEndpoint;
use App\Form\Type\SspEndpointType;
use App\Repository\SspEndpointRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Routing\Annotation\Route;
/**
* Controller for SSP endpoints.
*
* @Route(path="ssp")
*/
class SspEndpointController extends AbstractController
{
/**
* Show all projects.
*
* @Route(path="", name="ssp_index", methods={"GET"})
*
* @param SspEndpointRepository $sspEndpointRepository
* @return Response
*/
public function indexAction(SspEndpointRepository $sspEndpointRepository): Response
{
$endpoints = $sspEndpointRepository->findAll();
return $this->render('ssp/list.html.twig', ['endpoints' => $endpoints]);
}
/**
* Create new SSP endpoint
*
* @Route(path="/new", name="ssp_new", methods={"GET", "POST"})
*
* @param Request $request
* @param EntityManagerInterface $entityManager
* @return Response
*/
public function newAction(Request $request, EntityManagerInterface $entityManager): Response
{
$endpoint = new SspEndpoint();
$form = $this->createForm(SspEndpointType::class, $endpoint);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$entityManager->persist($endpoint);
$entityManager->flush();
return $this->redirectToRoute('ssp_index');
}
return $this->renderForm('ssp/new.html.twig', ['form' => $form]);
}
/**
* Edits an existing SSP endpoint
*
* @Route(path="/edit/{id}", name="ssp_edit", methods={"GET", "POST"})
*
* @param int $id
* @param Request $request
* @param EntityManagerInterface $entityManager
* @return Response
*/
public function editAction(int $id, Request $request, EntityManagerInterface $entityManager): Response
{
$endpoint = $entityManager->find(SspEndpoint::class, $id);
if (empty($endpoint)) {
throw new NotFoundHttpException('SSP endpoint not found!');
}
$form = $this->createForm(SspEndpointType::class, $endpoint);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$entityManager->persist($endpoint);
$entityManager->flush();
return $this->redirectToRoute('ssp_index');
}
return $this->renderForm('ssp/new.html.twig', ['form' => $form]);
}
}