From 48251a0c9de6b41222fefe84878e1a5f281ea364 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 6 Jun 2018 11:20:47 +0200 Subject: [PATCH] First question route --- src/Controller/QuestionApiController.php | 28 +++++++++++++++++ src/Entity/Question.php | 13 +++----- src/Repository/QuestionRepository.php | 7 ++--- src/Service/ResponseService.php | 40 ------------------------ src/Service/TestSerializer.php | 23 -------------- 5 files changed, 36 insertions(+), 75 deletions(-) create mode 100644 src/Controller/QuestionApiController.php delete mode 100644 src/Service/ResponseService.php delete mode 100644 src/Service/TestSerializer.php diff --git a/src/Controller/QuestionApiController.php b/src/Controller/QuestionApiController.php new file mode 100644 index 0000000..2f89ea5 --- /dev/null +++ b/src/Controller/QuestionApiController.php @@ -0,0 +1,28 @@ +findFirst(); + + return JsonResponse::create($data, 200, ['Content-Type' => 'application/json']); + } +} \ No newline at end of file diff --git a/src/Entity/Question.php b/src/Entity/Question.php index 329ee59..a043854 100644 --- a/src/Entity/Question.php +++ b/src/Entity/Question.php @@ -7,11 +7,15 @@ use Doctrine\Common\Collections\Collection; use Doctrine\ORM\Mapping as ORM; use ApiPlatform\Core\Annotation\ApiResource; use ApiPlatform\Core\Annotation\ApiSubresource; +use App\Service\QuestionAPI; /** * @ApiResource( * collectionOperations={"get"={"method"="GET"}}, - * itemOperations={"get"={"method"="GET"}} + * itemOperations={ + * "get"={"method"="GET"}, + * "special"={"route_name"="api_questions_first", "requirements"={}} + * } * ) * @ORM\Table(name="question") * @ORM\Entity(repositoryClass="App\Repository\QuestionRepository") @@ -53,13 +57,6 @@ class Question $this->date = new \DateTime(); } - /*public function __invoke(Question $question): Question - { - $this->testSerializer->test(); - - return $question; - }*/ - public function __toString() { return $this->getText(); diff --git a/src/Repository/QuestionRepository.php b/src/Repository/QuestionRepository.php index f82c08c..1708048 100644 --- a/src/Repository/QuestionRepository.php +++ b/src/Repository/QuestionRepository.php @@ -22,14 +22,13 @@ class QuestionRepository extends ServiceEntityRepository /** * @return Question[] Returns an array of Question objects */ - public function findByToken($token) + public function findFirst() { return $this->createQueryBuilder('q') - ->andWhere('q.token = :token') - ->setParameter('token', $token) + ->orderBy('q.id', 'ASC') ->setMaxResults(1) ->getQuery() - ->getResult() + ->getArrayResult() ; } diff --git a/src/Service/ResponseService.php b/src/Service/ResponseService.php deleted file mode 100644 index cc7546e..0000000 --- a/src/Service/ResponseService.php +++ /dev/null @@ -1,40 +0,0 @@ -response = $response; - } - - public function persistResponses(array $data, $question) - { - $entityManager = $this->getDoctrine()->getManager(); - - foreach ($data as $text) { - $entity = new Response(); - $entity->setText($text); - $entity->setQuestion($question); - - // tell Doctrine you want to (eventually) save the Product (no queries yet) - $entityManager->persist($entity); - - // actually executes the queries (i.e. the INSERT query) - $entityManager->flush(); - } - } -} \ No newline at end of file diff --git a/src/Service/TestSerializer.php b/src/Service/TestSerializer.php deleted file mode 100644 index 3666a29..0000000 --- a/src/Service/TestSerializer.php +++ /dev/null @@ -1,23 +0,0 @@ -denormalize($data); - } -} \ No newline at end of file