Completed
Push — develop ( cce307...d4338e )
by Abdelrahman
02:13
created

AccountSettingsController   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 72
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 6
c 1
b 0
f 0
lcom 1
cbo 3
dl 0
loc 72
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A index() 0 6 1
A edit() 0 14 1
B update() 0 28 4
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Cortex\Auth\Http\Controllers\Adminarea;
6
7
use Illuminate\Http\Request;
8
use Cortex\Auth\Http\Requests\Adminarea\AccountSettingsRequest;
9
use Cortex\Foundation\Http\Controllers\AuthenticatedController;
10
11
class AccountSettingsController extends AuthenticatedController
12
{
13
    /**
14
     * Redirect to account settings..
15
     *
16
     * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
17
     */
18
    public function index()
19
    {
20
        return intend([
21
            'url' => route('adminarea.account.settings'),
22
        ]);
23
    }
24
25
    /**
26
     * Edit account settings.
27
     *
28
     * @param \Illuminate\Http\Request $request
29
     *
30
     * @return \Illuminate\View\View
31
     */
32
    public function edit(Request $request)
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...
33
    {
34
        $countries = collect(countries())->map(function ($country, $code) {
35
            return [
36
                'id' => $code,
37
                'text' => $country['name'],
38
                'emoji' => $country['emoji'],
39
            ];
40
        })->values();
41
        $languages = collect(languages())->pluck('name', 'iso_639_1');
42
        $genders = ['male' => trans('cortex/auth::common.male'), 'female' => trans('cortex/auth::common.female')];
43
44
        return view('cortex/auth::adminarea.pages.account-settings', compact('countries', 'languages', 'genders'));
45
    }
46
47
    /**
48
     * Update account settings.
49
     *
50
     * @param \Cortex\Auth\Http\Requests\Adminarea\AccountSettingsRequest $request
51
     *
52
     * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
53
     */
54
    public function update(AccountSettingsRequest $request)
55
    {
56
        $data = $request->validated();
57
        $currentUser = $request->user($this->getGuard());
58
59
        ! $request->hasFile('profile_picture')
60
        || $currentUser->addMediaFromRequest('profile_picture')
61
                       ->sanitizingFileName(function ($fileName) {
62
                           return md5($fileName).'.'.pathinfo($fileName, PATHINFO_EXTENSION);
63
                       })
64
                       ->toMediaCollection('profile_picture', config('cortex.auth.media.disk'));
65
66
        ! $request->hasFile('cover_photo')
67
        || $currentUser->addMediaFromRequest('cover_photo')
68
                       ->sanitizingFileName(function ($fileName) {
69
                           return md5($fileName).'.'.pathinfo($fileName, PATHINFO_EXTENSION);
70
                       })
71
                       ->toMediaCollection('cover_photo', config('cortex.auth.media.disk'));
72
73
        // Update profile
74
        $currentUser->fill($data)->save();
75
76
        return intend([
77
            'back' => true,
78
            'with' => ['success' => trans('cortex/auth::messages.account.updated_account')]
79
                      + (isset($data['two_factor']) ? ['warning' => trans('cortex/auth::messages.verification.twofactor.phone.auto_disabled')] : []),
0 ignored issues
show
Coding Style introduced by
This line exceeds maximum limit of 120 characters; contains 149 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...
80
        ]);
81
    }
82
}
83