RedirectController   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 77
Duplicated Lines 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 31
c 1
b 1
f 0
dl 0
loc 77
rs 10
wmc 7

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A delete() 0 8 2
A create() 0 18 2
A index() 0 5 1
A update() 0 18 1
1
<?php
2
3
namespace Chuckbe\Chuckcms\Controllers;
4
5
use Chuckbe\Chuckcms\Models\Redirect;
6
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
7
use Illuminate\Foundation\Bus\DispatchesJobs;
8
use Illuminate\Foundation\Validation\ValidatesRequests;
9
use Illuminate\Http\Request;
10
use Illuminate\Routing\Controller as BaseController;
11
12
class RedirectController extends BaseController
13
{
14
    use AuthorizesRequests;
15
    use DispatchesJobs;
16
    use ValidatesRequests;
17
18
    /**
19
     * Create a new controller instance.
20
     *
21
     * @return void
22
     */
23
    public function __construct(Redirect $redirect)
24
    {
25
        $this->redirect = $redirect;
0 ignored issues
show
Bug Best Practice introduced by
The property redirect does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
26
    }
27
28
    /**
29
     * Show the dashboard -> menus index.
30
     *
31
     * @return \Illuminate\Http\Response
32
     */
33
    public function index()
34
    {
35
        $redirects = $this->redirect->get();
36
37
        return view('chuckcms::backend.redirects.index', compact('redirects'));
0 ignored issues
show
Bug Best Practice introduced by
The expression return view('chuckcms::b..., compact('redirects')) returns the type Illuminate\View\View which is incompatible with the documented return type Illuminate\Http\Response.
Loading history...
38
    }
39
40
    public function create(Request $request)
41
    {
42
        //$request['slug'] = str_slug($request->slug, '-');
43
44
        $this->validate($request, [//@todo create custom Request class for redirect validation
45
            'slug' => 'max:185|required|unique:redirects',
46
            'to'   => 'required|max:185',
47
            'type' => 'required|numeric|in:301,302',
48
        ]);
49
50
        $redirect = Redirect::firstOrNew(
51
            ['slug' => $request['slug']],
52
            ['to'      => $request['to'],
53
                'type' => $request['type'], ]
54
        );
55
56
        if ($redirect->save()) {
57
            return redirect()->route('dashboard.redirects');
58
        }
59
    }
60
61
    public function update(Request $request)
62
    {
63
        //$request['slug'] = str_slug($request->slug, '-');
64
65
        $this->validate($request, [//@todo create custom Request class for redirect validation
66
            'id'   => 'required',
67
            'slug' => 'required|max:185',
68
            'to'   => 'required|max:185',
69
            'type' => 'required|numeric|in:301,302',
70
        ]);
71
72
        $redirect = Redirect::where('id', $request['id'])->update([
0 ignored issues
show
Unused Code introduced by
The assignment to $redirect is dead and can be removed.
Loading history...
73
            'slug' => $request['slug'],
74
            'to'   => $request['to'],
75
            'type' => $request['type'],
76
        ]);
77
78
        return redirect()->route('dashboard.redirects');
79
    }
80
81
    public function delete(Request $request)
82
    {
83
        $this->validate($request, ['id' => 'required']);
84
85
        $redirect = Redirect::where('id', $request['id'])->first();
86
87
        if ($redirect->delete()) {
88
            return redirect()->route('dashboard.redirects');
89
        }
90
    }
91
}
92