From 51963d7f74d201615de629e0f6bfd4133e9e3a79 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Wed, 27 Jun 2018 21:33:31 +0200 Subject: [PATCH] Fix PersonController. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- config/config.yaml | 8 +++++ src/Controller/PersonController.php | 49 +++++++++++++++++++++++------ 2 files changed, 47 insertions(+), 10 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index f7f08b1..3c4eb73 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -10,12 +10,20 @@ fos_rest: view: formats: { json: true, xml: false, rss: false } view_response_listener: true + mime_types: + json: ['application/json', 'application/json;version=1.0', 'application/json;version=2.0'] serializer: serialize_null: true format_listener: rules: - { path: '^/', priorities: ['json'], fallback_format: 'json' } param_fetcher_listener: force + versioning: + enabled: true + resolvers: + media_type: # Accept header + enabled: true + regex: '/(v|version)=(?P[0-9\.]+)/' sensio_framework_extra: view: { annotations: false } diff --git a/src/Controller/PersonController.php b/src/Controller/PersonController.php index 43b9078..a47df7c 100644 --- a/src/Controller/PersonController.php +++ b/src/Controller/PersonController.php @@ -12,6 +12,7 @@ use Symfony\Component\Routing\Generator\UrlGeneratorInterface; class PersonController extends FOSRestController { /** + * @Rest\Prefix("/api") * @Rest\Post( * path = "/person/inscription", * name = "create_person" @@ -36,10 +37,10 @@ class PersonController extends FOSRestController public function removePersonAction(Request $request) { $em = $this->getDoctrine()->getManager(); - $person = $em->getRepository('App:Person')->find($request->get('id')); + $person = $em->getRepository('App::Person')->find($request->get('id')); - if ($person) { - $em->remove($place); + if (!empty($person)) { + $em->remove($person); $em->flush(); } } @@ -56,7 +57,7 @@ class PersonController extends FOSRestController $em = $this->getDoctrine()->getManager(); $person = $em->getRepository('App::Person')->find($request->get('id')); - if (empty($place)) { + if (empty($person)) { return new JsonResponse(['message' => 'Person not found'], Response::HTTP_NOT_FOUND); } @@ -104,8 +105,15 @@ class PersonController extends FOSRestController * ) * @Rest\View() */ - public function showPerson(Person $person) + public function showPerson(Request $request) { + $em = $this->getDoctrine()->getManager(); + $person = $em->getRepository('App::Person')->find($request->get('id')); + + if (empty($person)) { + return new JsonResponse(['message' => 'Person not found'], Response::HTTP_NOT_FOUND); + } + return $person; } @@ -117,8 +125,15 @@ class PersonController extends FOSRestController * ) * @Rest\View() */ - public function showPersonByEmail(Person $person) + public function showPersonByEmail(Request $request) { + $em = $this->getDoctrine()->getManager(); + $person = $em->getRepository('App::Person')->find($request->get('email')); + + if (empty($person)) { + return new JsonResponse(['message' => 'Person not found'], Response::HTTP_NOT_FOUND); + } + return $person; } @@ -128,10 +143,17 @@ class PersonController extends FOSRestController * name = "show_person_friends", * requirements = {"id"="\d+"} * ) - * @Rest\View + * @Rest\View() */ - public function showPersonFriends(Person $person) + public function showPersonFriends(Request $request) { + $em = $this->getDoctrine()->getManager(); + $person = $em->getRepository('App::Person')->find($request->get('id')); + + if (empty($person)) { + return new JsonResponse(['message' => 'Person not found'], Response::HTTP_NOT_FOUND); + } + return $person->getFriends(); } @@ -141,10 +163,17 @@ class PersonController extends FOSRestController * name = "show_person_friends_by_email", * requirements = {"email"="\s+"} * ) - * @Rest\View + * @Rest\View() */ - public function showPersonFriendsByEmail(Person $person) + public function showPersonFriendsByEmail(Request $request) { + $em = $this->getDoctrine()->getManager(); + $person = $em->getRepository('App::Person')->find($request->get('email')); + + if (empty($person)) { + return new JsonResponse(['message' => 'Person not found'], Response::HTTP_NOT_FOUND); + } + return $person->getFriends(); } } -- 2.34.1