SettingsController::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 2
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Thinktomorrow\Chief\App\Http\Controllers\Back\System;
4
5
use Illuminate\Http\Request;
6
use Thinktomorrow\Chief\Admin\Settings\SettingFields;
7
use Thinktomorrow\Chief\App\Http\Controllers\Controller;
8
use Thinktomorrow\Chief\Forms\Fields\Validation\FieldValidator;
9
10
class SettingsController extends Controller
11
{
12
    private SettingFields $settingFields;
13
    private FieldValidator $fieldValidator;
14
15
    public function __construct(SettingFields $settingFields, FieldValidator $fieldValidator)
16
    {
17
        $this->settingFields = $settingFields;
18
        $this->fieldValidator = $fieldValidator;
19
    }
20
21
    /**
22
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View
23
     */
24
    public function edit()
25
    {
26
        $this->authorize('update-setting');
27
28
        return view('chief::admin.settings', [
29
            'fields' => $this->settingFields->populatedFields(),
30
        ]);
31
    }
32
33
    public function update(Request $request)
34
    {
35
        $this->authorize('update-setting');
36
37
        $fields = $this->settingFields->populatedFields();
38
39
        $this->fieldValidator->handle($fields, $request->all());
40
41
        $this->settingFields->saveFields($fields, $request->all(), $request->allFiles());
42
43
        return redirect()->route('chief.back.settings.edit')->with('messages.success', 'De settings zijn aangepast!');
44
    }
45
}
46