X-Git-Url: https://git.piment-noir.org/?p=Project_proches_de_moi-server.git;a=blobdiff_plain;f=src%2FController%2FPersonController.php;h=734f29c9eca165ade74de8773ffde5970a07cb1a;hp=0fb898527414e14ff7c940e3744cd8ea7f2c1edb;hb=84fd6c7fa765874e478ad7f92e356e88b3ff962c;hpb=b607789316c3ff7c7e01b9ad4ade2bc72ff61780 diff --git a/src/Controller/PersonController.php b/src/Controller/PersonController.php index 0fb8985..734f29c 100644 --- a/src/Controller/PersonController.php +++ b/src/Controller/PersonController.php @@ -3,7 +3,6 @@ namespace App\Controller; use App\Entity\Person; use Symfony\Bundle\FrameworkBundle\Controller\Controller; -#use FOS\RestBundle\Controller\FOSRestController; use FOS\RestBundle\Controller\Annotations as Rest; use FOS\RestBundle\View\ViewHandler; use FOS\RestBundle\View\View; @@ -29,7 +28,6 @@ class PersonController extends Controller $em->persist($person); $em->flush(); - //TODO: use ViewHandler return $this->view($person, Response::HTTP_CREATED, ['Location' => $this->generateUrl('show_person', ['id' => $person->getId(), UrlGeneratorInterface::ABSOLUTE_URL])]); } @@ -61,10 +59,8 @@ class PersonController extends Controller $em = $this->getDoctrine()->getManager(); $person = $em->getRepository('App:Person')->find($request->get('id')); - $viewHandler = $this->get('fos_rest.view_handler'); - if (empty($person)) { - return $this->PersonNotFound($viewHandler); + return $this->PersonNotFound(); } $person->setFirstName($request->get('firstname')); @@ -74,37 +70,39 @@ class PersonController extends Controller $em->merge($person); $em->flush(); - //TODO: use ViewHandler return $this->view($person, Response::HTTP_CREATED, ['Location' => $this->generateUrl('show_person', ['id' => $person->getId(), UrlGeneratorInterface::ABSOLUTE_URL])]); } /** - * @Rest\Get("/api/person/{id}/friends/localisation") + * @Rest\Get("/api/person/{id}/localisations") + * @Rest\View() */ - public function getFriendsLocalisationAction(Request $request) + public function getLocalisationsAction(Request $request) { + $em = $this->getDoctrine()->getManager(); + $localisations = $em->getRepository('App:Localisation')->findBy(['person' => $request->get('id')]); + if (empty($localisations)) { + return $this->PersonLocalisationsNotFound(); + } + + return $localisations; } /** - * @Rest\Get("/api/person/{id}/localisations") + * @Rest\Get("/api/person/{id}/localisation") + * @Rest\View() */ - public function getLocalisationsAction(Request $request) + public function getLocalisationAction(Request $request) { $em = $this->getDoctrine()->getManager(); - $localisations = $em->getRepository('App:Localisation')->findBy(['person' => $request->get('id')]); - - $viewHandler = $this->get('fos_rest.view_handler'); + $localisations = $em->getRepository('App:Localisation')->findOneBy(['person' => $request->get('id')]); if (empty($localisations)) { - return $this->PersonLocalisationsNotFound($viewHandler); + return $this->PersonLocalisationNotFound(); } - $view = View::create($localisations); - $view->setFormat('json'); - - return $viewHandler->handle($view); - + return $localisations; } /** @@ -138,16 +136,11 @@ class PersonController extends Controller $em = $this->getDoctrine()->getManager(); $person = $em->getRepository('App:Person')->find($request->get('id')); - $viewHandler = $this->get('fos_rest.view_handler'); - if (empty($person)) { - return $this->PersonNotFound($viewHandler); + return $this->PersonNotFound(); } - $view = View::create($person); - $view->setFormat('json'); - - return $viewHandler->handle($view); + return $person; } /** @@ -163,16 +156,11 @@ class PersonController extends Controller $em = $this->getDoctrine()->getManager(); $person = $em->getRepository('App:Person')->findOneBy(['email' => $request->get('email')]); - $viewHandler = $this->get('fos_rest.view_handler'); - if (empty($person)) { - return $this->PersonNotFound($viewHandler); + return $this->PersonNotFound(); } - $view = View::create($person); - $view->setFormat('json'); - - return $viewHandler->handle($view); + return $person; } /** @@ -188,18 +176,32 @@ class PersonController extends Controller $em = $this->getDoctrine()->getManager(); $person = $em->getRepository('App:Person')->find($request->get('id')); - $viewHandler = $this->get('fos_rest.view_handler'); - if (empty($person)) { - return $this->PersonNotFound($viewHandler); + return $this->PersonNotFound(); } - $view = View::create($person->getFriends()); - $view->setFormat('json'); - - return $viewHandler->handle($view); + return $person->getFriends(); } + /** + * @Rest\Get( + * path = "/api/persons", + * name = "show_persons" + * ) + * @Rest\View() + */ + public function showPersons(Request $request) + { + $em = $this->getDoctrine()->getManager(); + $persons = $em->getRepository('App:Person')->findAll(); + + if (empty($persons)) { + return $this->PersonsNotFound(); + } + + return $persons; + } + /** * @Rest\Get( * path = "/api/person/{email}/friends", @@ -213,24 +215,27 @@ class PersonController extends Controller $em = $this->getDoctrine()->getManager(); $person = $em->getRepository('App:Person')->findOneBy(['email' => $request->get('email')]); - $viewHandler = $this->get('fos_rest.view_handler'); - if (empty($person)) { - return $this->PersonNotFound($viewHandler); + return $this->PersonNotFound(); } - $view = View::create($person->getFriends()); - $view->setFormat('json'); + return $person->getFriends(); + } + + private function PersonNotFound() { + return View::create(['message' => 'Person not found'], Response::HTTP_NOT_FOUND); + } - return $viewHandler->handle($view); + private function PersonsNotFound() { + return View::create(['message' => 'Persons not found'], Response::HTTP_NOT_FOUND); } - private function PersonNotFound($viewHandler) { - return $viewHandler->handle(View::create(['message' => 'Person not found'], Response::HTTP_NOT_FOUND)); + private function PersonLocalisationNotFound() { + return View::create(['message' => 'Person localisation not found'], Response::HTTP_NOT_FOUND); } - private function PersonLocalisationsNotFound($viewHandler) { - return $viewHandler->handle(View::create(['message' => 'Person localisations not found'], Response::HTTP_NOT_FOUND)); + private function PersonLocalisationsNotFound() { + return View::create(['message' => 'Person localisations not found'], Response::HTTP_NOT_FOUND); } }