ProfileController::destroy()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 1

Importance

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