1
0
mirror of https://github.com/flarum/core.git synced 2025-10-12 07:24:27 +02:00

Update Stratigility, use http-interop middleware

This commit is contained in:
Franz Liedke
2018-03-18 13:52:16 +01:00
parent d5ef9486d0
commit 9d30be1617
19 changed files with 72 additions and 101 deletions

View File

@@ -11,18 +11,15 @@
namespace Flarum\Api\Middleware;
use Psr\Http\Message\ResponseInterface as Response;
use Interop\Http\ServerMiddleware\DelegateInterface;
use Interop\Http\ServerMiddleware\MiddlewareInterface;
use Psr\Http\Message\ServerRequestInterface as Request;
use Zend\Stratigility\MiddlewareInterface;
class FakeHttpMethods implements MiddlewareInterface
{
const HEADER_NAME = 'x-http-method-override';
/**
* {@inheritdoc}
*/
public function __invoke(Request $request, Response $response, callable $out = null)
public function process(Request $request, DelegateInterface $delegate)
{
if ($request->getMethod() === 'POST' && $request->hasHeader(self::HEADER_NAME)) {
$fakeMethod = $request->getHeaderLine(self::HEADER_NAME);
@@ -30,6 +27,6 @@ class FakeHttpMethods implements MiddlewareInterface
$request = $request->withMethod(strtoupper($fakeMethod));
}
return $out ? $out($request, $response) : $response;
return $delegate->process($request);
}
}

View File

@@ -13,10 +13,12 @@ namespace Flarum\Api\Middleware;
use Exception;
use Flarum\Api\ErrorHandler;
use Interop\Http\ServerMiddleware\DelegateInterface;
use Interop\Http\ServerMiddleware\MiddlewareInterface;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
class HandleErrors
class HandleErrors implements MiddlewareInterface
{
/**
* @var ErrorHandler
@@ -35,14 +37,13 @@ class HandleErrors
* Catch all errors that happen during further middleware execution.
*
* @param Request $request
* @param Response $response
* @param callable $out
* @param DelegateInterface $delegate
* @return Response
*/
public function __invoke(Request $request, Response $response, callable $out = null)
public function process(Request $request, DelegateInterface $delegate)
{
try {
return $out($request, $response);
return $delegate->process($request);
} catch (Exception $e) {
return $this->errorHandler->handle($e);
}