From 0467ebb4e7999f628371f4e5b55df2a4bd726ebb Mon Sep 17 00:00:00 2001 From: KHOUBZA Younes Date: Sat, 11 Jun 2022 14:37:42 +0100 Subject: [PATCH] use request extension in laravel session middleware --- src/Laravel/Middleware/SessionMiddleware.php | 65 ++++---------------- 1 file changed, 13 insertions(+), 52 deletions(-) diff --git a/src/Laravel/Middleware/SessionMiddleware.php b/src/Laravel/Middleware/SessionMiddleware.php index 43bd65e4..c5357382 100644 --- a/src/Laravel/Middleware/SessionMiddleware.php +++ b/src/Laravel/Middleware/SessionMiddleware.php @@ -8,73 +8,34 @@ namespace Flasher\Laravel\Middleware; use Closure; -use Flasher\Prime\FlasherInterface; -use Illuminate\Http\Request; -use Illuminate\Http\Response; +use Flasher\Laravel\Http\Request; +use Flasher\Laravel\Http\Response; +use Flasher\Prime\Http\RequestExtension; +use Illuminate\Http\Request as LaravelRequest; +use Illuminate\Http\Response as LaravelResponse; final class SessionMiddleware { /** - * @var FlasherInterface + * @var RequestExtension */ - private $flasher; + private $requestExtension; - /** - * @var array - */ - private $mapping; - - /** - * @param array $mapping - */ - public function __construct(FlasherInterface $flasher, array $mapping = array()) + public function __construct(RequestExtension $requestExtension) { - $this->flasher = $flasher; - $this->mapping = $this->flatMapping($mapping); + $this->requestExtension = $requestExtension; } /** - * @return Response + * @return LaravelResponse */ - public function handle(Request $request, Closure $next) + public function handle(LaravelRequest $request, Closure $next) { - /** @var Response $response */ + /** @var LaravelResponse $response */ $response = $next($request); - if ($request->isXmlHttpRequest() || !$request->hasSession()) { - return $response; - } - - foreach ($this->mapping as $alias => $type) { - if (false === $request->session()->has($alias)) { - continue; - } - - /** @var string $message */ - $message = $request->session()->get($alias); - $this->flasher->addFlash($type, $message); - - $request->session()->forget($alias); - } + $this->requestExtension->flash(new Request($request), new Response($response)); return $response; } - - /** - * @param array $mapping - * - * @return array - */ - private function flatMapping(array $mapping) - { - $flatMapping = array(); - - foreach ($mapping as $type => $aliases) { - foreach ($aliases as $alias) { - $flatMapping[$alias] = $type; - } - } - - return $flatMapping; - } }