Completed
Push — master ( 720025...0e57e6 )
by ARCANEDEV
04:07
created

RouteServiceProvider   C

Complexity

Total Complexity 7

Size/Duplication

Total Lines 112
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 19

Test Coverage

Coverage 96.23%

Importance

Changes 0
Metric Value
wmc 7
lcom 1
cbo 19
dl 0
loc 112
c 0
b 0
f 0
ccs 51
cts 53
cp 0.9623
rs 6.875

5 Methods

Rating   Name   Duplication   Size   Complexity  
A getRouteNamespace() 0 4 1
A map() 0 5 1
B mapPublicRoutes() 0 28 3
A getAdminAuthPrefix() 0 6 1
B mapAdminRoutes() 0 29 1
1
<?php namespace Arcanesoft\Auth\Providers;
2
3
use Arcanedev\LaravelAuth\Services\SocialAuthenticator;
4
use Arcanedev\LaravelAuth\Services\UserImpersonator;
5
use Arcanesoft\Auth\Http\Routes;
6
use Arcanesoft\Core\Bases\RouteServiceProvider as ServiceProvider;
7
use Illuminate\Contracts\Routing\Registrar as Router;
8
use Illuminate\Support\Arr;
9
10
/**
11
 * Class     RouteServiceProvider
12
 *
13
 * @package  Arcanesoft\Auth\Providers
14
 * @author   ARCANEDEV <[email protected]>
15
 */
16
class RouteServiceProvider extends ServiceProvider
17
{
18
    /* ------------------------------------------------------------------------------------------------
19
     |  Getters & Setters
20
     | ------------------------------------------------------------------------------------------------
21
     */
22
    /**
23
     * Get the routes namespace
24
     *
25
     * @return string
26
     */
27
    protected function getRouteNamespace()
28
    {
29
        return 'Arcanesoft\\Auth\\Http\\Routes';
30
    }
31
32
    /**
33
     * Get the auth foundation route prefix.
34
     *
35
     * @return string
36
     */
37 12
    public function getAdminAuthPrefix()
38
    {
39 12
        $prefix = Arr::get($this->getFoundationRouteGroup(), 'prefix', 'dashboard');
40
41 12
        return "$prefix/" . config('arcanesoft.auth.route.prefix', 'authorization');
42
    }
43
44
    /* ------------------------------------------------------------------------------------------------
45
     |  Main Functions
46
     | ------------------------------------------------------------------------------------------------
47
     */
48
    /**
49
     * Define the routes for the application.
50
     *
51
     * @param  \Illuminate\Contracts\Routing\Registrar  $router
52
     */
53 12
    public function map(Router $router)
54
    {
55 12
        $this->mapPublicRoutes($router);
56 12
        $this->mapAdminRoutes($router);
57 12
    }
58
59
    /**
60
     * Define the public routes for the application.
61
     *
62
     * @param  \Illuminate\Contracts\Routing\Registrar  $router
63
     */
64 12
    private function mapPublicRoutes(Router $router)
65
    {
66 12
        $configs    = $this->config()->get('arcanesoft.auth.authentication');
67 12
        $attributes = Arr::get($configs, 'routes.global', [
68 12
            'prefix'    => 'auth',
69 6
            'as'        => 'auth::',
70 6
            'namespace' => 'Arcanesoft\\Auth\\Http\\Controllers\\Front',
71 6
        ]);
72
73
        $router->group($attributes, function (Router $router) {
74 12
            Routes\Front\AuthenticationRoutes::register($router);
75 12
            Routes\Front\RegisterRoutes::register($router);
76 12
            Routes\Front\PasswordResetRoutes::register($router);
77
78 12
            if (UserImpersonator::isEnabled())
79 6
                Routes\Front\ImpersonateRoutes::register($router);
80
81 12
            if (SocialAuthenticator::isEnabled())
82 6
                Routes\Front\SocialiteRoutes::register($router);
83 12
        });
84
85 12
        $router->group(array_merge($attributes, [
86 12
            'prefix' => 'api',
87 12
            'as'     => $attributes['as'] . 'api.',
88
        ]), function (Router $router) {
89 12
            Routes\Front\ApiRoutes::register($router);
90 12
        });
91 12
    }
92
93
    /**
94
     * Define the foundation routes for the application.
95
     *
96
     * @param  \Illuminate\Contracts\Routing\Registrar  $router
97
     */
98 12
    private function mapAdminRoutes(Router $router)
99
    {
100 12
        $attributes = array_merge($this->getFoundationRouteGroup(), [
101 12
            'as'        => 'admin::auth.',
102 6
            'namespace' => 'Arcanesoft\\Auth\\Http\\Controllers\\Admin',
103 6
        ]);
104
105
        $router->group($attributes, function (Router $router) {
106 12
            Routes\Admin\ProfileRoutes::register($router);
107 12
        });
108
109 12
        $router->group(array_merge(
110 6
            $attributes,
111 12
            ['prefix' => $this->getAdminAuthPrefix()]
112
        ), function (Router $router) {
113 12
            Routes\Admin\StatsRoutes::register($router);
114 12
            Routes\Admin\UsersRoutes::register($router);
115 12
            Routes\Admin\RolesRoutes::register($router);
116 12
            Routes\Admin\PermissionsRoutes::register($router);
117 12
            Routes\Admin\PasswordResetsRoutes::register($router);
118 12
        });
119
120 12
        $router->group(array_merge(
121 6
            $attributes,
122 12
            ['prefix' => $this->getAdminAuthPrefix()]
123 12
        ), function (Router $router) {
124 12
            Routes\Admin\ApiRoutes::register($router);
125 12
        });
126 12
    }
127
}
128