Passed
Push — develop ( 3e2f4c...41258c )
by Ngoding
05:09
created

UpdateRequest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Test Coverage

Coverage 83.33%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 15
dl 0
loc 36
ccs 10
cts 12
cp 0.8333
rs 10
c 1
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A rules() 0 12 1
A validated() 0 13 3
1
<?php
2
3
namespace App\Http\Requests\Profile;
4
5
use App\Infrastructure\Foundation\Http\FormRequest;
6
use App\Models\User;
7
use Illuminate\Support\Arr;
8
use Illuminate\Support\Facades\Auth;
9
use Illuminate\Validation\Rule;
10
use Illuminate\Validation\Rules;
11
12
class UpdateRequest extends FormRequest
13
{
14
    /**
15
     * {@inheritDoc}
16
     */
17 1
    public function rules()
18
    {
19
        /** @var \App\Models\User $user */
20 1
        $user = Auth::user();
21
22
        return [
23 1
            'username' => ['required', 'string', 'max:255', Rule::unique(User::class)->ignoreModel($user)],
24
            'name' => ['required', 'string', 'max:255'],
25 1
            'email' => ['required', 'string', 'email', 'max:255', Rule::unique(User::class)->ignoreModel($user)],
26 1
            'password' => ['sometimes', 'nullable', 'confirmed', Rules\Password::defaults()],
27
            'bio' => ['sometimes', 'nullable', 'string'],
28
            'is_subscribe_to_newsletter' => ['sometimes', 'boolean'],
29
        ];
30
    }
31
32
    /**
33
     * {@inheritDoc}
34
     */
35 1
    public function validated($key = null, $default = null)
36
    {
37 1
        $validated = parent::validated();
38
39 1
        if ($this->isNotFilled('password')) {
40
            Arr::forget($validated, 'password');
41
        }
42
43 1
        if (!is_null($key)) {
44
            return data_get($validated, $key, $default);
45
        }
46
47 1
        return $validated;
48
    }
49
}
50