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

JSONHTTPServer   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
c 1
b 0
f 0
lcom 0
cbo 3
dl 0
loc 24
ccs 6
cts 6
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A handleRequest() 0 5 1
A parseBodyAsJSON() 0 6 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