Destroy   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 16
Duplicated Lines 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 8
dl 0
loc 16
rs 10
c 1
b 1
f 0
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 12 3
1
<?php
2
3
namespace App\Http\Controllers\Company\Person;
4
5
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
6
use Illuminate\Routing\Controller;
7
use LaravelEnso\Companies\Exceptions\Company as Exception;
8
use LaravelEnso\Companies\Models\Company;
9
use LaravelEnso\People\Models\Person;
10
11
class Destroy extends Controller
12
{
13
    use AuthorizesRequests;
14
15
    public function __invoke(Company $company, Person $person)
16
    {
17
        $this->authorize('manage-people', $company);
18
19
        $isMandatary = $company->mandatary()?->id === $person->id
20
            && $company->people()->exists();
21
22
        if ($isMandatary) {
23
            throw Exception::dissociateMandatary();
24
        }
25
26
        $person->companies()->detach($company->id);
27
    }
28
}
29