1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| <?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use FOS\RestBundle\Controller\FOSRestController;
use FOS\RestBundle\Controller\Annotations as Rest;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use App\Entity\Movie;
use App\Form\MovieType;
/**
* Movie controller
* @Route("/api", name="api_")
*/
class MovieController extends FOSRestController
{
/**
* List All Movie
* @Rest\Get("/Movie")
* @return Response
*/
public function getMovieAction()
{
$rep = $this->getDoctrine()->getRepository(Movie::class);
$movies = $rep->findAll();
return $this->handleView($this->view($movies));
}
/**
* create Movie
* @Rest\Post("/Movie")
* @param Request $request
* @return Response
*/
public function postMovieAction(Request $request)
{
$movie = new Movie();
$form = $this->createForm(MovieType::class, $movie);
$data = json_decode($request->getContent(), true);
$form->submit($data);
if ($form->isSubmitted() && $form->isValid()){
$em = $this->getDoctrine()->getManager();
$em->persist($movie);
$em->flush();
return $this->handleView($this->view(['status' => 'success'], Response::HTTP_CREATED));
}
return $this->handleView($this->view($form->getErrors()));
}
} |
Partager