DeleteUserService   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 32
ccs 0
cts 18
cp 0
rs 10
c 0
b 0
f 0
wmc 3
lcom 1
cbo 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 9 1
A run() 0 14 2
1
<?php
2
/*
3
 * This file is part of the Laravel Platfourm package.
4
 *
5
 * (c) Avtandil Kikabidze aka LONGMAN <[email protected]>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
11
namespace Longman\Platfourm\User\Services;
12
13
use Longman\Platfourm\Auth\Exceptions\ForbiddenException;
14
use Longman\Platfourm\Contracts\Auth\AuthUserService;
15
use Longman\Platfourm\Service\EntityService;
16
use Longman\Platfourm\User\Repositories\Eloquent\UserRepository;
17
18
class DeleteUserService extends EntityService
19
{
20
21
    protected $repository;
22
23
    protected $authUserService;
24
25
    public function __construct(
26
        AuthUserService $authUserService,
27
        UserRepository $repository
28
    ) {
29
        $this->authUserService = $authUserService;
30
        $this->repository      = $repository;
31
32
        $authUserService->should('user.delete');
33
    }
34
35
    public function run($id)
36
    {
37
        $this->checkRepository();
38
39
        $item = $this->repository->find($id);
40
41
        if (!$this->authUserService->canDeleteUser($item)) {
42
            throw new ForbiddenException('Do not have permission to update this user');
43
        }
44
45
        $item = $this->repository->delete($id);
46
47
        return $item;
48
    }
49
}
50