Completed
Pull Request — master (#42)
by Şəhriyar
401:56 queued 366:56
created

RouteServiceProvider::mapWebRoutes()   B

Complexity

Conditions 2
Paths 1

Size

Total Lines 34
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 16
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 34
ccs 16
cts 16
cp 1
rs 8.8571
c 0
b 0
f 0
cc 2
eloc 13
nc 1
nop 0
crap 2
1
<?php namespace App\Providers;
2
3
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
4
use Illuminate\Http\Request;
5
use Illuminate\Routing\Router;
6
7
class RouteServiceProvider extends ServiceProvider
8
{
9
    /**
10
     * This namespace is applied to the controller routes in your routes file.
11
     * In addition, it is set as the URL generator's root namespace.
12
     *
13
     * @var string
14
     */
15
    protected $namespace = 'App\Http\Controllers';
16
17
    /**
18
     * Define your route model bindings, pattern filters, etc.
19
     *
20
     * @return void
21
     */
22 6
    public function boot()
23
    {
24 6
        app('router')->patterns([
25 6
            'provider' => 'twitter|google|facebook',
26
            'token' => '[a-zA-Z0-9-]+'
27 6
        ]);
28
29 6
        parent::boot();
30 6
    }
31
32
    /**
33
     * Define the routes for the application.
34
     */
35 6
    public function map()
36
    {
37 6
        $this->mapApiRoutes();
38 6
        $this->mapWebRoutes();
39 6
    }
40
41
    /**
42
     * Define the "api" routes for the application.
43
     * These routes are typically stateless.
44
     *
45
     * @return void
46
     */
47 6
    protected function mapApiRoutes()
48
    {
49 6
        app('router')->group([
50 6
            'middleware' => 'api',
51 6
            'namespace' => $this->namespace,
52 6
            'prefix' => 'api/v1',
53
        ], function (Router $router) {
54 6
            $router->post('login', 'Auth\LoginController@login');
55 6
            $router->post('logout', 'Auth\LoginController@logout')->middleware('auth:api');
56 6
            $router->post('register', 'Auth\RegisterController@register');
57
58 6
            $router->post('password/email', 'Auth\PasswordController@sendPasswordResetLink');
59 6
            $router->post('password/reset', 'Auth\PasswordController@resetPassword');
60
61 6
            $router->get('activation', 'Auth\ActivateController@requestActivationCode')->middleware('auth:api');
62 6
            $router->get('activation/{token}', 'Auth\ActivateController@activate')->middleware('auth:api');
63 6
            $router->post('activation', 'Auth\ActivateController@activate')->middleware('auth:api');
64 6
        });
65 6
    }
66
67
    /**
68
     * Define the "web" routes for the application.
69
     * These routes all receive session state, CSRF protection, etc.
70
     *
71
     * @return void
72
     */
73 6
    protected function mapWebRoutes()
74
    {
75 6
        app('router')->group([
76 6
            'middleware' => 'web',
77 6
            'namespace' => $this->namespace,
78
        ], function (Router $router) {
79 6
            $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...
80
81
            //-----------------------------------------------------------------------
82
            // Non-localized, generic routes (such as those for admin panel etc).
83
            //-----------------------------------------------------------------------
84
85 6
            $router->get('/oauth/to/{provider}', ['uses' => 'Auth\LoginController@handleOAuthRedirect', 'as' => 'oauth.to']);
86 6
            $router->get('/oauth/from/{provider}', ['uses' => 'Auth\LoginController@handleOAuthReturn', 'as' => 'oauth.from']);
87
88
            //-----------------------------------------------------------------------------------------------------
89
            // Register localized routes with locale-prefices (in case of default locale, no prefix is attached).
90
            //-----------------------------------------------------------------------------------------------------
91
92 6
            foreach (config('app.locales') as $prefix => $localeName) {
93 6
                app('translator')->setLocale($prefix);
94
                // Localized routes.
95 6
                $router->group(compact('namespace', 'middleware', 'prefix'), function (Router $router) use ($prefix) {
96 6
                    $this->localizeWebRoutes($router, $prefix);
97 6
                });
98 6
            }
99
100
            /*------------------------------------
101
             | Default, non-localized home
102
             *-----------------------------------*/
103
104 6
            $router->get('', 'HomeController@index');
105 6
        });
106 6
    }
107
108
    /**
109
     * @param \Illuminate\Routing\Router $router
110
     * @param string                     $prefix
111
     */
112 6
    protected function localizeWebRoutes(Router $router, $prefix = '')
113
    {
114 6
        $router->get('login', ['uses' => 'Auth\LoginController@showLoginForm', 'as' => empty($prefix) ?: $prefix . '.login']);
115 6
        $router->post('login', 'Auth\LoginController@loginViaWeb');
116 6
        $router->get('logout', ['uses' => 'Auth\LoginController@logout', 'as' => empty($prefix) ?: $prefix . '.logout']);
117 6
        $router->get('register', ['uses' => 'Auth\RegisterController@showRegistrationForm', 'as' => empty($prefix) ?: $prefix . '.register']);
118 6
        $router->post('register', 'Auth\RegisterController@register');
119
120 6
        $router->get('password/email', ['uses' => 'Auth\PasswordController@requestPasswordResetLink', 'as' => empty($prefix) ?: $prefix . '.password.email']);
121 6
        $router->post('password/email', 'Auth\PasswordController@sendPasswordResetLink');
122 6
        $router->get('password/reset/{token}', ['uses' => 'Auth\PasswordController@showPasswordResetForm', 'as' => empty($prefix) ?: $prefix . '.password.reset']);
123 6
        $router->post('password/reset', 'Auth\PasswordController@resetPassword');
124
125 6
        $router->get('activation', ['uses' => 'Auth\ActivateController@requestActivationCode', 'as' => empty($prefix) ?: $prefix . '.activation.request']);
126 6
        $router->get('activation/{token}', ['uses' => 'Auth\ActivateController@activate', 'as' => empty($prefix) ?: $prefix . '.activation.complete']);
127 6
        $router->post('activation', 'Auth\ActivateController@activate');
128
129 6
        $router->resource('files', 'FilesController', ['only' => ['index', 'create', 'store', 'show', 'destroy']]);
130
131 6
        $router->get('', ['uses' => 'HomeController@index', 'as' => empty($prefix) ?: $prefix . '.home']);
132 6
    }
133
}
134