ApiError::handle()   A
last analyzed

Complexity

Conditions 2
Paths 1

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
cc 2
eloc 6
nc 1
nop 1
dl 0
loc 11
ccs 0
cts 6
cp 0
crap 6
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace JobQueue\Application\Http;
4
5
use Middlewares\HttpErrorException;
6
use Psr\Http\Message\ResponseInterface;
7
use Psr\Http\Message\ServerRequestInterface;
8
use Psr\Http\Server\RequestHandlerInterface;
9
use Zend\Diactoros\Response\JsonResponse;
10
11
final class ApiError implements RequestHandlerInterface
12
{
13
    /**
14
     *
15
     * @param ServerRequestInterface $request
16
     * @return ResponseInterface
17
     */
18
    public function handle(ServerRequestInterface $request): ResponseInterface
19
    {
20
        $error = $request->getAttribute('error'); /** @var HttpErrorException $error */
21
        $error = $error->getPrevious() ?: $error;
22
23
        $body = [
24
            'message' => $error->getMessage(),
25
            'code' => 400,
26
        ];
27
28
        return (new JsonResponse($body))->withStatus(400);
29
    }
30
}
31