Completed
Push — master ( b1ab96...b5f370 )
by Mike
04:56
created

Service   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 8
dl 0
loc 43
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A middlewareGroupExists() 0 16 4
A boot() 0 9 2
A register() 0 5 1
A provides() 0 3 1
1
<?php namespace GeneaLabs\LaravelCaffeine\Providers;
2
3
use GeneaLabs\LaravelCaffeine\Http\Middleware\LaravelCaffeineDripMiddleware;
4
use Illuminate\Support\ServiceProvider;
5
6
class Service extends ServiceProvider
7
{
8
    protected $defer = false;
9
10
    public function boot()
11
    {
12
        app('router')->group($this->middlewareGroupExists('web')
13
            ? ['middleware' => 'web']
14
            : [], function () {
15
                require __DIR__ . '/../../routes/web.php';
16
            });
17
18
        $this->publishes([__DIR__ . '/../../config/genealabs-laravel-caffeine.php' => config_path('genealabs-laravel-caffeine.php')], 'genealabs-laravel-caffeine');
19
    }
20
21
    public function register()
22
    {
23
        $this->mergeConfigFrom(__DIR__ . '/../../config/genealabs-laravel-caffeine.php', 'genealabs-laravel-caffeine');
24
25
        app('Illuminate\Contracts\Http\Kernel')->pushMiddleware('\GeneaLabs\LaravelCaffeine\Http\Middleware\LaravelCaffeineDripMiddleware');
26
    }
27
28
    public function provides() : array
29
    {
30
        return ['genealabs-laravel-caffeine'];
31
    }
32
33
    private function middlewareGroupExists(string $group) : bool
34
    {
35
        $routes = collect(app('router')->getRoutes()->getRoutes());
36
37
        return $routes->reduce(function ($carry, $route) use ($group) {
38
            $carry = ($carry ?? false) ?: false;
39
            $actions = (array) $route->getAction();
40
41
            if (array_key_exists('middleware', $actions)
42
                && in_array($group, (array) $actions['middleware'])
43
            ) {
44
                return true;
45
            }
46
47
            return $carry;
48
        }) ?? false;
49
    }
50
}
51