Lines 92.85% 13 / 14
Methods 50.00% 1 / 2
Classes 0.00% 0 / 1
Name Lines Methods CRAP
 __invoke 75.00% 3 / 4 0.00% 0 / 1 2.06
 withValidator 100.00% 10 / 10 100.00% 1 / 1 3
10class Validator
11{
12    public function __invoke(
13        ServerRequestInterface $request,
14        ?RequestHandlerInterface $next
15    ) {
16        if (null !== $next) {
17            $response = $next->handle(self::withValidator($request));
18        } else {
19            $response = (new ResponseFactory())->createResponse();
20        }
21
22        return $response;
23    }
24
25    public static function withValidator(ServerRequestInterface $request): ServerRequestInterface
26    {
27        if ("GET" == $request->getMethod()) {
28            $validator = new \BO\Mellon\Validator($request->getQueryParams());
29        } else {
30            $queryParams = $request->getQueryParams();
31            $parameters = $request->getParsedBody();
32            $parameters = is_array($parameters) ? $parameters : [];
33            $parameters = array_merge($queryParams, $parameters);
34            $validator = new \BO\Mellon\Validator($parameters);
35            $body = (string)$request->getBody();
36            $validator->setInput($body);
37        }
38        return $request->withAttribute('validator', $validator);
39    }
40}