]> BookStack Code Mirror - bookstack/blob - app/Http/Middleware/RunThemeActions.php
d995f144547219bf2eafcd1b5dff698cc9f1457b
[bookstack] / app / Http / Middleware / RunThemeActions.php
1 <?php
2
3 namespace BookStack\Http\Middleware;
4
5 use BookStack\Facades\Theme;
6 use BookStack\Theming\ThemeEvents;
7 use Closure;
8
9 class RunThemeActions
10 {
11     /**
12      * Handle an incoming request.
13      *
14      * @param  \Illuminate\Http\Request  $request
15      * @param  \Closure  $next
16      * @return mixed
17      */
18     public function handle($request, Closure $next)
19     {
20         $earlyResponse = Theme::dispatch(ThemeEvents::WEB_MIDDLEWARE_BEFORE, $request);
21         if (!is_null($earlyResponse)) {
22             return $earlyResponse;
23         }
24
25         $response = $next($request);
26         $response = Theme::dispatch(ThemeEvents::WEB_MIDDLEWARE_AFTER, $request, $response) ?? $response;
27         return $response;
28     }
29 }