Completed
Pull Request — master (#37)
by Şəhriyar
274:38 queued 267:45
created

RouteServiceProvider::mapWebRoutes()   B

Complexity

Conditions 2
Paths 1

Size

Total Lines 35
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 35
ccs 0
cts 6
cp 0
rs 8.8571
cc 2
eloc 14
nc 1
nop 0
crap 6
1
<?php namespace App\Providers;
2
3
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
4
use Illuminate\Routing\Router;
5
6
class RouteServiceProvider extends ServiceProvider
7
{
8
    /**
9
     * This namespace is applied to the controller routes in your routes file.
10
     * In addition, it is set as the URL generator's root namespace.
11
     *
12
     * @var string
13
     */
14
    protected $namespace = 'App\Http\Controllers';
15
16
    /**
17
     * Define your route model bindings, pattern filters, etc.
18
     *
19
     * @return void
20
     */
21
    public function boot()
22
    {
23
        app('router')->patterns([
24
            'provider' => 'twitter|google|facebook',
25
            'token' => '[a-zA-Z0-9-]+'
26
        ]);
27
28
        parent::boot();
29
    }
30
31
    /**
32
     * Define the routes for the application.
33
     */
34
    public function map()
35
    {
36
        $this->mapApiRoutes();
37
        $this->mapWebRoutes();
38
    }
39
40
    /**
41
     * Define the "api" routes for the application.
42
     * These routes are typically stateless.
43
     *
44
     * @return void
45
     */
46
    protected function mapApiRoutes()
47
    {
48
        app('router')->group([
49
            'middleware' => 'api',
50
            'namespace' => $this->namespace,
51
            'prefix' => 'api/v1',
52
        ], function (Router $router) {
53
            $router->post('login', 'Auth\LoginController@login');
54
            $router->post('logout', 'Auth\LoginController@logout')->middleware('auth:api');
55
            $router->post('register', 'Auth\RegisterController@register');
56
57
            $router->post('password/email', 'Auth\PasswordController@sendPasswordResetLink');
58
            $router->post('password/reset', 'Auth\PasswordController@resetPassword');
59
60
            $router->get('activation', 'Auth\ActivateController@requestActivationCode')->middleware('auth:api');
61
            $router->get('activation/{token}', 'Auth\ActivateController@activate')->middleware('auth:api');
62
            $router->post('activation', 'Auth\ActivateController@activate')->middleware('auth:api');
63
        });
64
    }
65
66
    /**
67
     * Define the "web" routes for the application.
68
     * These routes all receive session state, CSRF protection, etc.
69
     *
70
     * @return void
71
     */
72
    protected function mapWebRoutes()
73
    {
74
        app('router')->group([
75
            'middleware' => 'web',
76
            'namespace' => $this->namespace,
77
        ], function (Router $router) {
78
            $defaultLocale = config('app.locale');
0 ignored issues
show
Unused Code introduced by
$defaultLocale is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
79
80
            //-----------------------------------------------------------------------
81
            // Non-localized, generic routes (such as those for admin panel etc).
82
            //-----------------------------------------------------------------------
83
84
            $router->get('oauth/to/{provider}', ['uses' => 'Auth\LoginController@handleOAuthRedirect', 'as' => 'oauth.to']);
85
            $router->get('oauth/from/{provider}', ['uses' => 'Auth\LoginController@handleOAuthReturn', 'as' => 'oauth.from']);
86
            $router->get('admin', 'AdminController@index');
87
88
            //-----------------------------------------------------------------------------------------------------
89
            // Register localized routes with locale-prefices (in case of default locale, no prefix is attached).
90
            //-----------------------------------------------------------------------------------------------------
91
92
            foreach (config('app.locales') as $prefix => $localeName) {
93
                app('translator')->setLocale($prefix);
94
                // Localized routes.
95
                $router->group(compact('namespace', 'middleware', 'prefix'), function (Router $router) use ($prefix) {
96
                    $this->localizeWebRoutes($router, $prefix);
97
                });
98
            }
99
100
            /*------------------------------------
101
             | Default, non-localized home
102
             *-----------------------------------*/
103
104
            $router->get('', 'HomeController@index');
105
        });
106
    }
107
108
    /**
109
     * @param \Illuminate\Routing\Router $router
110
     * @param string                     $prefix
111
     */
112
    protected function localizeWebRoutes(Router $router, $prefix = '')
113
    {
114
        $router->get('login', ['uses' => 'Auth\LoginController@showLoginForm', 'as' => empty($prefix) ?: $prefix . '.login']);
115
        $router->post('login', 'Auth\LoginController@loginViaWeb');
116
        $router->get('logout', ['uses' => 'Auth\LoginController@logout', 'as' => empty($prefix) ?: $prefix . '.logout']);
117
        $router->get('register', ['uses' => 'Auth\RegisterController@showRegistrationForm', 'as' => empty($prefix) ?: $prefix . '.register']);
118
        $router->post('register', 'Auth\RegisterController@register');
119
120
        $router->get('password/email', ['uses' => 'Auth\PasswordController@requestPasswordResetLink', 'as' => empty($prefix) ?: $prefix . '.password.email']);
121
        $router->post('password/email', 'Auth\PasswordController@sendPasswordResetLink');
122
        $router->get('password/reset/{token}', ['uses' => 'Auth\PasswordController@showPasswordResetForm', 'as' => empty($prefix) ?: $prefix . '.password.reset']);
123
        $router->post('password/reset', 'Auth\PasswordController@resetPassword');
124
125
        $router->get('activation', ['uses' => 'Auth\ActivateController@requestActivationCode', 'as' => empty($prefix) ?: $prefix . '.activation.request']);
126
        $router->get('activation/{token}', ['uses' => 'Auth\ActivateController@activate', 'as' => empty($prefix) ?: $prefix . '.activation.complete']);
127
        $router->post('activation', 'Auth\ActivateController@activate');
128
129
        $router->resource('files', 'FilesController', ['only' => ['index', 'create', 'store', 'show', 'destroy']]);
130
131
132
        $router->get('', ['uses' => 'HomeController@index', 'as' => empty($prefix) ?: $prefix . '.home']);
133
    }
134
}
135