JSONHTTPServer::parseBodyAsJSON()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 3
cts 3
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 1
crap 1
1
<?php
2
namespace LunixREST;
3
4
5
use Psr\Http\Message\ResponseInterface;
6
use Psr\Http\Message\ServerRequestInterface;
7
8
/**
9
 * An HTTP server implementation that assumes the server request contains a json body
10
 * Class JSONHTTPServer
11
 * @package LunixREST
12
 */
13
class JSONHTTPServer extends HTTPServer
14
{
15
    /**
16
     * @param ServerRequestInterface $serverRequest
17
     * @param ResponseInterface $response
18
     * @return ResponseInterface
19
     */
20 1
    public function handleRequest(ServerRequestInterface $serverRequest, ResponseInterface $response): ResponseInterface
21
    {
22 1
        $serverRequest = self::parseBodyAsJSON($serverRequest);
23 1
        return parent::handleRequest($serverRequest, $response);
24
    }
25
26
    /**
27
     * @param ServerRequestInterface $serverRequest
28
     * @return ServerRequestInterface
29
     */
30 2
    public static function parseBodyAsJSON(ServerRequestInterface $serverRequest): ServerRequestInterface
31
    {
32
        //Use toString so that we don't have to rewind it
33 2
        $jsonBody = json_decode($serverRequest->getBody()->__toString(), true);
34 2
        return $serverRequest->withParsedBody($jsonBody);
35
    }
36
}
37