* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Flarum\Http\Middleware; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Zend\Stratigility\MiddlewareInterface; class ParseJsonBody implements MiddlewareInterface { /** * {@inheritdoc} */ public function __invoke(Request $request, Response $response, callable $out = null) { if (str_contains($request->getHeaderLine('content-type'), 'json')) { $input = json_decode($request->getBody(), true); $request = $request->withParsedBody($input ?: []); } return $out ? $out($request, $response) : $response; } }