Issues (40)

app/Http/Controllers/TemplateController.php (1 issue)

Labels
Severity
1
<?php
2
3
namespace App\Http\Controllers;
4
5
use App\Models\Template;
6
use Illuminate\Http\Request;
7
use App\Http\Requests\TemplateRequest;
8
9
/**
10
 * Class TemplateController.
11
 */
12
class TemplateController extends Controller
13
{
14
    /**
15
     * @param Request $request
16
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
17
     */
18
    public function index(Request $request)
19
    {
20
        $templates = Template::filter($request->all())
21
            ->paginateFilter(15, ['id', 'name']);
22
23
        return view('templates.index', compact('templates'));
24
    }
25
26
    /**
27
     * @param Template $template
28
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
29
     * @throws \Illuminate\Auth\Access\AuthorizationException
30
     */
31
    public function show(Template $template)
32
    {
33
        $this->authorize('view', $template);
34
35
        return view('templates.show', compact('template'));
36
    }
37
38
    /**
39
     * @param Template $template
40
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
41
     */
42
    public function new(Template $template)
43
    {
44
        return view('templates.new', compact('template'));
45
    }
46
47
    /**
48
     * @param Template $template
49
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
50
     * @throws \Illuminate\Auth\Access\AuthorizationException
51
     */
52
    public function edit(Template $template)
53
    {
54
        $this->authorize('update', $template);
55
56
        return view('templates.edit', compact('template'));
57
    }
58
59
    /**
60
     * @param Template $template
61
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
62
     */
63
    public function preview(Template $template)
64
    {
65
        return view('templates.preview', compact('template'));
66
    }
67
68
    /**
69
     * @param TemplateRequest $request
70
     * @return \Illuminate\Http\RedirectResponse
71
     */
72
    public function create(TemplateRequest $request)
73
    {
74
        $template = auth()->user()->template()->create([
75
            'name' => $request->input('name'),
76
            'content' => $request->input('content'),
77
        ]);
78
79
        notify()->flash($template->name, 'success', [
80
            'timer' => 2000,
81
            'text' => trans('general.success.create'),
82
        ]);
83
84
        return redirect()->route('templates.show', $template);
85
    }
86
87
    /**
88
     * @param TemplateRequest $request
89
     * @param Template $template
90
     * @return \Illuminate\Http\RedirectResponse
91
     * @throws \Illuminate\Auth\Access\AuthorizationException
92
     */
93
    public function update(TemplateRequest $request, Template $template)
94
    {
95
        $this->authorize('update', $template);
96
97
        $template->update([
98
            'name' => $request->input('name'),
99
            'content' => $request->input('content'),
100
        ]);
101
102
        notify()->flash($template->name, 'success', [
103
            'timer' => 2000,
104
            'text' => trans('general.success.update'),
105
        ]);
106
107
        return redirect()->route('templates.show', $template);
0 ignored issues
show
$template of type App\Models\Template is incompatible with the type array expected by parameter $parameters of Illuminate\Routing\Redirector::route(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

107
        return redirect()->route('templates.show', /** @scrutinizer ignore-type */ $template);
Loading history...
108
    }
109
110
    /**
111
     * @param Template $template
112
     * @return \Illuminate\Http\RedirectResponse
113
     * @throws \Illuminate\Auth\Access\AuthorizationException
114
     * @throws \Exception
115
     */
116
    public function delete(Template $template)
117
    {
118
        $this->authorize('delete', $template);
119
120
        $template->delete();
121
122
        notify()->flash($template->name, 'success', [
123
            'timer' => 2000,
124
            'text' => trans('general.success.delete'),
125
        ]);
126
127
        return redirect()->route('templates.index');
128
    }
129
}
130