From: Jérôme Benoit Date: Wed, 27 Jun 2018 19:33:31 +0000 (+0200) Subject: Fix PersonController. X-Git-Url: https://git.piment-noir.org/?p=Project_proches_de_moi-server.git;a=commitdiff_plain;h=51963d7f74d201615de629e0f6bfd4133e9e3a79 Fix PersonController. Signed-off-by: Jérôme Benoit --- 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(); } }