Test Failed
Branch release/v3.0.0 (f6f419)
by Anatoly
03:15
created

NullizeEmptyStringsMiddleware::process()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 15
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 7
c 1
b 0
f 0
nc 2
nop 2
dl 0
loc 15
rs 10
1
<?php declare(strict_types=1);
2
3
namespace App\Middleware;
4
5
/**
6
 * Import classes
7
 */
8
use Psr\Http\Message\ResponseInterface;
9
use Psr\Http\Message\ServerRequestInterface;
10
use Psr\Http\Server\MiddlewareInterface;
11
use Psr\Http\Server\RequestHandlerInterface;
12
13
/**
14
 * Import functions
15
 */
16
use function array_walk_recursive;
17
use function is_array;
18
19
/**
20
 * NullizeEmptyStringsMiddleware
21
 */
22
final class NullizeEmptyStringsMiddleware implements MiddlewareInterface
23
{
24
25
    /**
26
     * {@inheritDoc}
27
     *
28
     * @param ServerRequestInterface $request
29
     * @param RequestHandlerInterface $handler
30
     *
31
     * @return ResponseInterface
32
     */
33
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
34
    {
35
        $parsedBody = $request->getParsedBody();
36
37
        if (is_array($parsedBody)) {
38
            array_walk_recursive($parsedBody, function (&$value) {
39
                if ('' === $value) {
40
                    $value = null;
41
                }
42
            });
43
44
            $request = $request->withParsedBody($parsedBody);
45
        }
46
47
        return $handler->handle($request);
48
    }
49
}
50