X-Git-Url: https://git.piment-noir.org/?p=Project_proches_de_moi-server.git;a=blobdiff_plain;f=src%2FController%2FPersonController.php;fp=src%2FController%2FPersonController.php;h=0b7a7d5c5d127e3f88c83dbaac3141c0c8da129b;hp=6b4120545ec9196498d354910457e2de92407f97;hb=199445c061aac9aa77294d3861c11ca10a77a94b;hpb=a692051d7b10cab8a1ff7badcf67862fc7109ad4 diff --git a/src/Controller/PersonController.php b/src/Controller/PersonController.php index 6b41205..0b7a7d5 100644 --- a/src/Controller/PersonController.php +++ b/src/Controller/PersonController.php @@ -4,11 +4,13 @@ namespace App\Controller; use App\Entity\Person; use App\Entity\Localisation; use \Datetime; +use \NotNull; 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; +use FOS\RestBundle\Request\ParamFetcherInterface; use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -38,7 +40,10 @@ class PersonController extends FOSRestController $em->persist($person); $em->flush(); - return $this->view($person, Response::HTTP_CREATED, ['Location' => $this->generateUrl('show_person', ['id' => $person->getId(), UrlGeneratorInterface::ABSOLUTE_URL])]); + return $this->view($person, Response::HTTP_CREATED, + ['Location' => $this->generateUrl('show_person', + ['id' => $person->getId(), + UrlGeneratorInterface::ABSOLUTE_URL])]); } /** @@ -106,7 +111,10 @@ class PersonController extends FOSRestController $em->merge($person); $em->flush(); - return $this->view($person, Response::HTTP_CREATED, ['Location' => $this->generateUrl('show_person', ['id' => $person->getId(), UrlGeneratorInterface::ABSOLUTE_URL])]); + return $this->view($person, Response::HTTP_CREATED, + ['Location' => $this->generateUrl('show_person', + ['id' => $person->getId(), + UrlGeneratorInterface::ABSOLUTE_URL])]); } /** @@ -128,7 +136,10 @@ class PersonController extends FOSRestController if ($request->get('password') != $person->getPassword()) { return $this->PersonWrongPassword(); } else { - return $this->view($person, Response::HTTP_ACCEPTED, ['Location' => $this->generateUrl('show_person', ['id' => $person->getId(), UrlGeneratorInterface::ABSOLUTE_URL])]); + return $this->view($person, Response::HTTP_ACCEPTED, + ['Location' => $this->generateUrl('show_person', + ['id' => $person->getId(), + UrlGeneratorInterface::ABSOLUTE_URL])]); } } @@ -177,7 +188,10 @@ class PersonController extends FOSRestController } private function getLastLocalisation($em, $id) { - $query = $em->createQuery("SELECT l1 FROM App\Entity\Localisation l1 WHERE l1.person = :person and l1.timestamp = (SELECT MAX(l2.timestamp) FROM App\Entity\Localisation l2 WHERE l2.person = l1.person)"); + $query = $em->createQuery("SELECT l1 FROM App\Entity\Localisation l1 + WHERE l1.person = :person and l1.timestamp = + (SELECT MAX(l2.timestamp) FROM App\Entity\Localisation l2 + WHERE l2.person = l1.person)"); $query->setParameter('person', $id); $result = $query->getResult(); if (!empty($result)) { @@ -413,24 +427,25 @@ class PersonController extends FOSRestController } /** - * @Rest\Post( + * @Rest\Get( * path = "/api/person/search", * name = "search_person" * ) + * @Rest\QueryParam(name="keyword") * @Rest\View() */ - public function searchPerson(Request $request) + public function searchPerson(ParamFetcherInterface $paramFetcher) { $em = $this->getDoctrine()->getManager(); $query = $em->createQuery("SELECT DISTINCT p FROM App\Entity\Person p WHERE - p.firstname LIKE :keyword or - p.lastname LIKE :keyword or + p.firstname LIKE :keyword OR + p.lastname LIKE :keyword OR p.email LIKE :keyword"); - $query->setParameter('keyword', '%'.$request->get('keyword').'%'); + $query->setParameter('keyword', '%'.$paramFetcher->get('keyword').'%'); $persons = $query->getResult(); if (empty($persons)) { - return $this->PersonNotFound(); + return $this->PersonsNotFound(); } return $persons;