DeleteUserService::run()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 14
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
cc 2
eloc 7
nc 2
nop 1
dl 0
loc 14
ccs 0
cts 10
cp 0
crap 6
rs 9.4285
c 0
b 0
f 0
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