Completed
Push — master ( 3e8f18...c69213 )
by Abdelrahman
02:02
created

AccountAttributesRequest::rules()   B

Complexity

Conditions 8
Paths 1

Size

Total Lines 27

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 27
rs 8.4444
c 0
b 0
f 0
cc 8
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Cortex\Auth\Http\Requests\Adminarea;
6
7
use Rinvex\Support\Traits\Escaper;
8
use Illuminate\Foundation\Http\FormRequest;
9
10
class AccountAttributesRequest extends FormRequest
11
{
12
    use Escaper;
13
14
    /**
15
     * Determine if the user is authorized to make this request.
16
     *
17
     * @return bool
18
     */
19
    public function authorize(): bool
20
    {
21
        return true;
22
    }
23
24
    /**
25
     * Get the validation rules that apply to the request.
26
     *
27
     * @return array
28
     */
29
    public function rules(): array
30
    {
31
        $user = $this->user($this->route('guard'));
32
33
        // Attach attribute rules
34
        $user->getEntityAttributes()->each(function ($attribute, $attributeName) use (&$rules) {
35
            switch ($attribute->type) {
36
                case 'datetime':
37
                    $type = 'date';
38
                    break;
39
                case 'text':
40
                case 'check':
41
                case 'select':
42
                case 'varchar':
43
                    $type = 'string';
44
                    break;
45
                default:
46
                    $type = $attribute->type;
47
                    break;
48
            }
49
50
            $rule = ($attribute->is_required ? 'required|' : 'nullable|').$type;
51
            $rules[$attributeName.($attribute->is_collection ? '.*' : '')] = $rule;
52
        });
53
54
        return $rules ?? [];
55
    }
56
}
57