Passed
Push — master ( b8147c...403ced )
by Curtis
11:47 queued 05:39
created

PersonFormIndi   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 17
c 1
b 0
f 1
dl 0
loc 31
rs 10
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A edit() 0 15 2
A create() 0 3 1
A __construct() 0 3 1
1
<?php
2
3
namespace App\Forms\Builders;
4
5
use App\Person;
6
use LaravelEnso\Forms\Services\Form;
7
8
class PersonFormIndi
9
{
10
    protected const TemplatePath = __DIR__.'/../Templates/personindi.json';
11
12
    protected Form $form;
13
14
    public function __construct()
15
    {
16
        $this->form = new Form(static::TemplatePath);
17
    }
18
19
    public function create()
20
    {
21
        return $this->form->create();
22
    }
23
24
    public function edit(Person $person)
25
    {
26
        if ($person->hasUser()) {
27
            $this->form->meta(
28
                'email',
29
                'tooltip',
30
                'Email can only be edited via the user form'
31
            )->readonly('email');
32
        }
33
        $actions = ['back', 'update'];
34
        return $this->form
35
            ->value('company', optional($person->company())->id)
36
            ->append('userId', optional($person->user)->id)
37
            ->actions($actions)
38
            ->edit($person);
39
    }
40
}
41