Completed
Push — develop ( 242664...eb47a8 )
by Abdelrahman
16:40
created

GuardiansController::update()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Cortex\Auth\Http\Controllers\Adminarea;
6
7
use Cortex\Foundation\DataTables\ImportLogsDataTable;
8
use Cortex\Foundation\Http\Requests\ImportFormRequest;
9
use Cortex\Foundation\Importers\DefaultImporter;
10
use Illuminate\Http\Request;
11
use Cortex\Auth\Models\Guardian;
12
use Illuminate\Foundation\Http\FormRequest;
13
use Cortex\Foundation\DataTables\LogsDataTable;
14
use Cortex\Auth\DataTables\Adminarea\GuardiansDataTable;
15
use Cortex\Auth\Http\Requests\Adminarea\GuardianFormRequest;
16
use Cortex\Foundation\Http\Controllers\AuthorizedController;
17
18
class GuardiansController extends AuthorizedController
19
{
20
    /**
21
     * {@inheritdoc}
22
     */
23
    protected $resource = Guardian::class;
24
25
    /**
26
     * List all guardians.
27
     *
28
     * @param \Cortex\Auth\DataTables\Adminarea\GuardiansDataTable $guardiansDataTable
29
     *
30
     * @return \Illuminate\Http\JsonResponse|\Illuminate\View\View
31
     */
32
    public function index(GuardiansDataTable $guardiansDataTable)
33
    {
34
        return $guardiansDataTable->with([
35
            'id' => 'adminarea-guardians-index-table',
36
            'phrase' => trans('cortex/auth::common.guardians'),
37
        ])->render('cortex/foundation::adminarea.pages.datatable');
38
    }
39
40
    /**
41
     * List guardian logs.
42
     *
43
     * @param \Cortex\Auth\Models\Guardian                $guardian
44
     * @param \Cortex\Foundation\DataTables\LogsDataTable $logsDataTable
45
     *
46
     * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
0 ignored issues
show
Documentation introduced by
Should the return type not be \Illuminate\Http\JsonRes...e|\Illuminate\View\View?

This check compares the return type specified in the @return annotation of a function or method doc comment with the types returned by the function and raises an issue if they mismatch.

Loading history...
47
     */
48
    public function logs(Guardian $guardian, LogsDataTable $logsDataTable)
49
    {
50
        return $logsDataTable->with([
51
            'resource' => $guardian,
52
            'tabs' => 'adminarea.guardians.tabs',
53
            'phrase' => trans('cortex/auth::common.guardians'),
54
            'id' => "adminarea-guardians-{$guardian->getKey()}-logs-table",
55
        ])->render('cortex/foundation::adminarea.pages.datatable-logs');
56
    }
57
58
    /**
59
     * Import guardians.
60
     *
61
     * @return \Illuminate\View\View
62
     */
63
    public function import()
64
    {
65
        return view('cortex/foundation::adminarea.pages.import', [
66
            'id' => 'adminarea-guardians-import',
67
            'tabs' => 'adminarea.guardians.tabs',
68
            'url' => route('adminarea.guardians.hoard'),
69
            'phrase' => trans('cortex/auth::common.guardians'),
70
        ]);
71
    }
72
73
    /**
74
     * Hoard guardians.
75
     *
76
     * @param \Cortex\Foundation\Http\Requests\ImportFormRequest $request
77
     * @param \Cortex\Foundation\Importers\DefaultImporter       $importer
78
     *
79
     * @return void
80
     */
81
    public function hoard(ImportFormRequest $request, DefaultImporter $importer)
0 ignored issues
show
Unused Code introduced by
The parameter $request is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
82
    {
83
        // Handle the import
84
        $importer->config['resource'] = $this->resource;
85
        $importer->config['name'] = 'username';
86
        $importer->handleImport();
87
    }
88
89
    /**
90
     * List guardian import logs.
91
     *
92
     * @param \Cortex\Foundation\DataTables\ImportLogsDataTable $importLogsDatatable
93
     *
94
     * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
95
     */
96
    public function importLogs(ImportLogsDataTable $importLogsDatatable)
97
    {
98
        return $importLogsDatatable->with([
99
            'resource' => 'guardian',
100
            'tabs' => 'adminarea.guardians.tabs',
101
            'id' => 'adminarea-guardians-import-logs-table',
102
            'phrase' => trans('cortex/guardians::common.guardians'),
103
        ])->render('cortex/foundation::adminarea.pages.datatable-import-logs');
104
    }
105
106
    /**
107
     * Create new guardian.
108
     *
109
     * @param \Illuminate\Http\Request     $request
110
     * @param \Cortex\Auth\Models\Guardian $guardian
111
     *
112
     * @return \Illuminate\View\View
113
     */
114
    public function create(Request $request, Guardian $guardian)
115
    {
116
        return $this->form($request, $guardian);
117
    }
118
119
    /**
120
     * Edit given guardian.
121
     *
122
     * @param \Illuminate\Http\Request     $request
123
     * @param \Cortex\Auth\Models\Guardian $guardian
124
     *
125
     * @return \Illuminate\View\View
126
     */
127
    public function edit(Request $request, Guardian $guardian)
128
    {
129
        return $this->form($request, $guardian);
130
    }
131
132
    /**
133
     * Show guardian create/edit form.
134
     *
135
     * @param \Illuminate\Http\Request     $request
136
     * @param \Cortex\Auth\Models\Guardian $guardian
137
     *
138
     * @return \Illuminate\View\View
139
     */
140
    protected function form(Request $request, Guardian $guardian)
0 ignored issues
show
Unused Code introduced by
The parameter $request is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
141
    {
142
        return view('cortex/auth::adminarea.pages.guardian', compact('guardian'));
143
    }
144
145
    /**
146
     * Store new guardian.
147
     *
148
     * @param \Cortex\Auth\Http\Requests\Adminarea\GuardianFormRequest $request
149
     * @param \Cortex\Auth\Models\Guardian                             $guardian
150
     *
151
     * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
152
     */
153
    public function store(GuardianFormRequest $request, Guardian $guardian)
154
    {
155
        return $this->process($request, $guardian);
156
    }
157
158
    /**
159
     * Update given guardian.
160
     *
161
     * @param \Cortex\Auth\Http\Requests\Adminarea\GuardianFormRequest $request
162
     * @param \Cortex\Auth\Models\Guardian                             $guardian
163
     *
164
     * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
165
     */
166
    public function update(GuardianFormRequest $request, Guardian $guardian)
167
    {
168
        return $this->process($request, $guardian);
169
    }
170
171
    /**
172
     * Process stored/updated guardian.
173
     *
174
     * @param \Illuminate\Foundation\Http\FormRequest $request
175
     * @param \Cortex\Auth\Models\Guardian            $guardian
176
     *
177
     * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
178
     */
179
    protected function process(FormRequest $request, Guardian $guardian)
180
    {
181
        // Prepare required input fields
182
        $data = $request->validated();
183
184
        // Save guardian
185
        $guardian->fill($data)->save();
186
187
        return intend([
188
            'url' => route('adminarea.guardians.index'),
189
            'with' => ['success' => trans('cortex/foundation::messages.resource_saved', ['resource' => 'guardian', 'id' => $guardian->username])],
0 ignored issues
show
Coding Style introduced by
This line exceeds maximum limit of 120 characters; contains 146 characters

Overly long lines are hard to read on any screen. Most code styles therefor impose a maximum limit on the number of characters in a line.

Loading history...
190
        ]);
191
    }
192
193
    /**
194
     * Destroy given guardian.
195
     *
196
     * @param \Cortex\Auth\Models\Guardian $guardian
197
     *
198
     * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
199
     */
200
    public function destroy(Guardian $guardian)
201
    {
202
        $guardian->delete();
203
204
        return intend([
205
            'url' => route('adminarea.guardians.index'),
206
            'with' => ['warning' => trans('cortex/foundation::messages.resource_deleted', ['resource' => 'guardian', 'id' => $guardian->username])],
0 ignored issues
show
Coding Style introduced by
This line exceeds maximum limit of 120 characters; contains 148 characters

Overly long lines are hard to read on any screen. Most code styles therefor impose a maximum limit on the number of characters in a line.

Loading history...
207
        ]);
208
    }
209
}
210