mirror of
https://github.com/flarum/core.git
synced 2025-10-12 15:34:26 +02:00
Extract another middleware from API routing
This commit is contained in:
24
src/Api/Middleware/ReadJsonParameters.php
Normal file
24
src/Api/Middleware/ReadJsonParameters.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php namespace Flarum\Api\Middleware;
|
||||
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use Zend\Stratigility\MiddlewareInterface;
|
||||
|
||||
class ReadJsonParameters implements MiddlewareInterface
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function __invoke(Request $request, Response $response, callable $out = null)
|
||||
{
|
||||
if (str_contains($request->getHeaderLine('content-type'), 'application/vnd.api+json')) {
|
||||
$input = json_decode($request->getBody(), true);
|
||||
|
||||
foreach ($input as $name => $value) {
|
||||
$request = $request->withAttribute($name, $value);
|
||||
}
|
||||
}
|
||||
|
||||
return $out ? $out($request, $response) : $response;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user