ProfileController   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 16
c 1
b 0
f 0
dl 0
loc 47
ccs 20
cts 20
cp 1
rs 10
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A update() 0 11 2
A destroy() 0 16 1
A edit() 0 4 1
1
<?php
2
3
namespace App\Http\Controllers;
4
5
use App\Http\Requests\ProfileUpdateRequest;
6
use Illuminate\Http\RedirectResponse;
7
use Illuminate\Http\Request;
8
use Illuminate\Support\Facades\Auth;
9
use Illuminate\Support\Facades\Redirect;
10
use Illuminate\View\View;
11
12
class ProfileController extends Controller
13
{
14
    /**
15
     * Display the user's profile form.
16
     */
17 1
    public function edit(Request $request): View
18
    {
19 1
        return view('profile.edit', [
20 1
            'user' => $request->user(),
21 1
        ]);
22
    }
23
24
    /**
25
     * Update the user's profile information.
26
     */
27 2
    public function update(ProfileUpdateRequest $request): RedirectResponse
28
    {
29 2
        $request->user()->fill($request->validated());
30
31 2
        if ($request->user()->isDirty('email')) {
32 1
            $request->user()->email_verified_at = null;
33
        }
34
35 2
        $request->user()->save();
36
37 2
        return Redirect::route('profile.edit')->with('status', 'profile-updated');
38
    }
39
40
    /**
41
     * Delete the user's account.
42
     */
43 2
    public function destroy(Request $request): RedirectResponse
44
    {
45 2
        $request->validateWithBag('userDeletion', [
46 2
            'password' => ['required', 'current-password'],
47 2
        ]);
48
49 1
        $user = $request->user();
50
51 1
        Auth::logout();
52
53 1
        $user->delete();
54
55 1
        $request->session()->invalidate();
56 1
        $request->session()->regenerateToken();
57
58 1
        return Redirect::to('/');
59
    }
60
}
61