26 lines
827 B
PHP
26 lines
827 B
PHP
<?php
|
|
|
|
namespace TorstenHettstedt\TimekeepingApi\Middleware;
|
|
|
|
use Psr\Http\Message\ResponseInterface as Response;
|
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
|
use Psr\Http\Server\MiddlewareInterface;
|
|
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
|
|
|
|
class JsonBodyParserMiddleware implements MiddlewareInterface
|
|
{
|
|
public function process(Request $request, RequestHandler $handler): Response
|
|
{
|
|
$contentType = $request->getHeaderLine('Content-Type');
|
|
|
|
if (str_contains($contentType, 'application/json')) {
|
|
$contents = json_decode(file_get_contents('php://input'), true);
|
|
if (json_last_error() === JSON_ERROR_NONE) {
|
|
$request = $request->withParsedBody($contents);
|
|
}
|
|
}
|
|
|
|
return $handler->handle($request);
|
|
}
|
|
}
|