Passed
Push — master ( 5aafeb...af0530 )
by Karel
12:33 queued 05:20
created

src/Controllers/RedirectController.php (2 issues)

1
<?php
2
3
namespace Chuckbe\Chuckcms\Controllers;
4
5
use Chuckbe\Chuckcms\Models\Redirect;
6
7
use Illuminate\Http\Request;
8
use Illuminate\Foundation\Bus\DispatchesJobs;
9
use Illuminate\Routing\Controller as BaseController;
10
use Illuminate\Foundation\Validation\ValidatesRequests;
11
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
12
13
class RedirectController extends BaseController
14
{
15
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
16
17
    /**
18
     * Create a new controller instance.
19
     *
20
     * @return void
21
     */
22
    public function __construct(Redirect $redirect)
23
    {
24
        $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...
25
    }
26
27
    /**
28
     * Show the dashboard -> menus index.
29
     *
30
     * @return \Illuminate\Http\Response
31
     */
32
    public function index()
33
    {
34
        $redirects = $this->redirect->get();
35
        
36
        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...
37
    }
38
39
    public function create(Request $request)
40
    {
41
        //$request['slug'] = str_slug($request->slug, '-');
42
43
        $this->validate($request, [//@todo create custom Request class for redirect validation
44
            'slug' => 'max:185|required|unique:redirects',
45
            'to' => 'required|max:185',
46
            'type' => 'required|numeric|in:301,302'
47
        ]);
48
49
        $redirect = Redirect::firstOrNew(
50
            ['slug' => $request['slug']], 
51
            ['to' => $request['to'], 
52
            'type' => $request['type']]);
53
54
        if ($redirect->save()) {
55
            return redirect()->route('dashboard.redirects');
56
        }
57
    }
58
59
    public function update(Request $request)
60
    {
61
        //$request['slug'] = str_slug($request->slug, '-');
62
63
        $this->validate($request, [//@todo create custom Request class for redirect validation
64
            'id' => 'required',
65
            'slug' => 'required|max:185',
66
            'to' => 'required|max:185',
67
            'type' => 'required|numeric|in:301,302'
68
        ]);
69
70
        $redirect = Redirect::where('id', $request['id'])->update([
71
            'slug' => $request['slug'], 
72
            'to' => $request['to'], 
73
            'type' => $request['type']
74
        ]);
75
76
        return redirect()->route('dashboard.redirects');
77
    }
78
79
    public function delete(Request $request)
80
    {
81
        $this->validate($request, ['id' => 'required']);
82
83
        $redirect = Redirect::where('id', $request['id'])->first();
84
85
        if ($redirect->delete()) {
86
            return redirect()->route('dashboard.redirects');
87
        }
88
    }
89
}
90