Completed
Push — master ( 759403...99b5e1 )
by John
03:06
created

JSONHTTPServer::handleRequest()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

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