/** * @Route("api/v1/book/{id}/edit", requirements={"id" = "\d+"}) */ public function editAction(Request $request, $id) { if (!$this->authentication($request)) { $messages = array("message" => "Autentication error, use right api key"); return $this->jsonResponse($messages); } $bookRepository = $this->getDoctrine()->getRepository("AppBundle:Book"); $book = $bookRepository->find($id); $messages = array(); if ($request->getMethod() === "POST") { $bookParametrBag = $request->request; $updatedBook = Book::updateBook($book, $bookParametrBag); if (is_array($updatedBook)) { $messages = $updatedBook; } if (count($messages) === 0) { $entityManager = $this->getDoctrine()->getManager(); $entityManager->flush(); $messages["message"] = "done"; } else { $messages["message"] = "error"; } } else { $messages["message"] = "error"; $messages["method_error"] = "You should use POST method"; } return $this->jsonResponse($messages); }