LoggedUserController::show()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 5
ccs 3
cts 3
cp 1
crap 1
rs 10
1
<?php
2
3
namespace Devpri\Tinre\Http\Controllers\Web;
4
5
use Devpri\Tinre\Http\Controllers\Controller;
6
use Devpri\Tinre\Http\Resources\Web\User as UserResource;
7
use Illuminate\Http\Request;
8
use Illuminate\Support\Facades\Hash;
9
use Illuminate\Validation\ValidationException;
10
11
class LoggedUserController extends Controller
12
{
13 1
    public function show(Request $request)
14
    {
15 1
        $user = $request->user();
16
17 1
        return new UserResource($user);
18
    }
19
20 2
    public function update(Request $request)
21
    {
22 2
        $user = $request->user();
23
24 2
        if ($user->cant('updateOwn', $user)) {
25
            abort(401);
26
        }
27
28 2
        $validatedData = $request->validate([
29 2
            'name' => ['required', 'string', 'max:255'],
30
            'current_password' => ['nullable', 'required_with:new_password'],
31
            'new_password' => ['nullable', 'required_with:current_password', 'min:6'],
32
        ]);
33
34 2
        if ($validatedData['new_password'] && ! Hash::check($validatedData['current_password'], $user->password)) {
35 1
            throw ValidationException::withMessages([
36 1
                'current_password' => [trans('The current password is invalid.')],
37
            ]);
38
        }
39
40 1
        if ($validatedData['new_password']) {
41 1
            $user->password = bcrypt($validatedData['new_password']);
42
        }
43
44 1
        $user->name = $validatedData['name'];
45
46 1
        $user->save();
47
48 1
        return (new UserResource($user))->additional(['message' => 'The user has been updated.']);
49
    }
50
}
51