Typo fixes.
[Project_proches_de_moi-server.git] / src / Controller / PersonController.php
CommitLineData
dec6d031
JB
1<?php
2namespace App\Controller;
3
4use App\Entity\Person;
5use FOS\RestBundle\Controller\FOSRestController;
6use FOS\RestBundle\Controller\Annotations as Rest;
7use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
8use Symfony\Component\HttpFoundation\Request;
9use Symfony\Component\HttpFoundation\Response;
10use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
11
12class PersonController extends FOSRestController
13{
14 /**
15 * @Rest\Post(
16 * path = "/person/inscription",
17 * name = "create_person"
18 * )
19 * @Rest\View(StatusCode = Response::HTTP_CREATED)
20 * @ParamConverter("person", converter="fos_rest.request_body")
21 */
22 public function createPersonAction(Person $person)
23 {
24 $em = $this->getDoctrine()->getManager();
25
26 $em->persist($person);
27 $em->flush();
28
29 return $this->view($person, Response::HTTP_CREATED, ['Location' => $this->generateUrl('show_person', ['id' => $person->getId(), UrlGeneratorInterface::ABSOLUTE_URL])]);
30 }
31
32 /**
33 * @Rest\Delete("/person/{id}")
34 * @Rest\View(statusCode = Response::HTTP_NO_CONTENT)
35 */
36 public function removePersonAction(Request $request)
37 {
38 $em = $this->getDoctrine()->getManager();
39 $person = $em->getRepository('App:Person')->find($request->get('id'));
40
41 if ($person) {
42 $em->remove($place);
43 $em->flush();
44 }
45 }
46
47 /**
48 * @Rest\Put(
49 * path = "/person/{id}/update",
50 * name = "update_person"
51 * )
52 * @Rest\View(StatusCode = Response::HTTP_CREATED)
53 */
54 public function updatePersonAction(Request $request)
55 {
56 $em = $this->getDoctrine()->getManager();
43f58db4 57 $person = $em->getRepository('App::Person')->find($request->get('id'));
dec6d031
JB
58
59 if (empty($place)) {
60 return new JsonResponse(['message' => 'Person not found'], Response::HTTP_NOT_FOUND);
61 }
62
63 $person->setFirstName($request->get('firstname'));
64 $person->setLastName($request->get('lastname'));
65 $person->setEmail($request->get('email'));
66
67 $em->merge($person);
68 $em->flush();
69
70 return $this->view($person, Response::HTTP_CREATED, ['Location' => $this->generateUrl('show_person', ['id' => $person->getId(), UrlGeneratorInterface::ABSOLUTE_URL])]);
71 }
72
73 /**
74 * @Rest\Get("/person/{id}/friends/localisation")
75 */
76 public function getFriendsLocalisationAction(Request $request)
77 {
78
79 }
80
81 /**
82 * @Rest\Post("/person/{id}/localisation")
43f58db4 83 * @Rest\View(StatusCode = Response::HTTP_CREATED)
dec6d031
JB
84 */
85 public function updateLocalisationAction(Request $request)
86 {
87 $localisation = new Localisation();
88 $localisation->setPerson($request->get('id'));
89 $localisation->setTimestamp($request->get('timestamp'));
90 $localisation->setLatitude($request->get('latitude'));
91 $localisation->setLongitude($request->get('longitude'));
92
93 $em = $this->getDoctrine()->getManager();
94
95 $em->persist($localisation);
96 $em->flush();
97 }
98
99 /**
100 * @Rest\Get(
101 * path = "/person/{id}",
102 * name = "show_person",
103 * requirements = {"id"="\d+"}
104 * )
43f58db4 105 * @Rest\View()
dec6d031
JB
106 */
107 public function showPerson(Person $person)
108 {
109 return $person;
110 }
111
112 /**
113 * @Rest\Get(
114 * path = "/person/{email}",
115 * name = "show_person_by_email",
116 * requirements = {"email"="\s+"}
117 * )
43f58db4 118 * @Rest\View()
dec6d031
JB
119 */
120 public function showPersonByEmail(Person $person)
121 {
122 return $person;
123 }
124
125 /**
126 * @Rest\Get(
127 * path = "/person/{id}/friends",
128 * name = "show_person_friends",
129 * requirements = {"id"="\d+"}
130 * )
131 * @Rest\View
132 */
133 public function showPersonFriends(Person $person)
134 {
135 return $person->getFriends();
136 }
137
138 /**
139 * @Rest\Get(
140 * path = "/person/{email}/friends",
141 * name = "show_person_friends_by_email",
142 * requirements = {"email"="\s+"}
143 * )
144 * @Rest\View
145 */
146 public function showPersonFriendsByEmail(Person $person)
147 {
148 return $person->getFriends();
149 }
150}