Code Coverage
 
Lines
Branches
Paths
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
WordController
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
2 / 2
2
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 __invoke
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace App\Controller;
4
5use App\Application\UseCase\GetWordInterface;
6use App\Dto\Command\GetWordCommand;
7use App\Dto\Request\RandomWordRequest;
8use App\Dto\Request\RequestFromQuery;
9use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
10use Symfony\Component\HttpFoundation\JsonResponse;
11use Symfony\Component\HttpFoundation\Response;
12use Symfony\Component\Routing\Attribute\Route;
13
14/**
15 * @author Wilhelm Zwertvaegher
16 */
17#[Route('/api/word')]
18class WordController extends AbstractController
19{
20    public function __construct(private readonly GetWordInterface $getWord)
21    {
22    }
23
24    #[Route('', name: 'api_word', methods: ['GET'])]
25    public function __invoke(#[RequestFromQuery] RandomWordRequest $request): JsonResponse
26    {
27        $command = new GetWordCommand(
28            $request->getGrammaticalRoleType(),
29            $request->getGender(),
30            $request->getOffenseLevel(),
31            $request->getPreviousId(),
32            null,
33            $request->getExclusions()
34        );
35
36        return $this->json(
37            ($this->getWord)($command),
38            Response::HTTP_OK
39        );
40    }
41}