FindRole::find()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 26

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 15
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 26
ccs 15
cts 15
cp 1
rs 9.504
c 0
b 0
f 0
cc 2
nc 2
nop 1
crap 2
1
<?php
2
3
namespace Omatech\Mage\Core\Repositories\Roles;
4
5
use Omatech\Mage\Core\Domains\Roles\Contracts\FindRoleInterface;
6
use Omatech\Mage\Core\Repositories\Permissions\FindPermission;
7
use Omatech\Mage\Core\Repositories\RoleBaseRepository;
8
9
class FindRole extends RoleBaseRepository implements FindRoleInterface
10
{
11
    /**
12
     * @param array $params
13
     * @return mixed|void
14
     */
15 4
    public function find(array $params)
16
    {
17 4
        $role = $this->query()->find($params['id']);
18
19 4
        if (null === $role) {
20 1
            return;
21
        }
22
23
        $permissions = array_map(static function ($permission) {
24 1
            return resolve('mage.permissions')::find(new FindPermission(), [
25 1
                'id' => $permission['id'],
26
            ]);
27 3
        }, $role->permissions->toArray());
28
29 3
        $role = resolve('mage.roles')::fromArray([
30 3
            'id'         => $role->id,
31 3
            'name'       => $role->name,
32 3
            'guard_name' => $role->guard_name,
33 3
            'created_at' => $role->created_at,
34 3
            'updated_at' => $role->updated_at,
35
        ]);
36
37 3
        $role->assignPermissions($permissions);
38
39 3
        return $role;
40
    }
41
}
42