Test Failed
Push — main ( 2036f5...f2d0d3 )
by Proyecto
07:50
created

GroupUseCases   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 6
eloc 9
c 1
b 0
f 0
dl 0
loc 38
rs 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A addRole() 0 3 1
A addUser() 0 3 1
A removeUser() 0 3 1
A getUsers() 0 3 1
A getRoles() 0 3 1
A removeRole() 0 3 1
1
<?php
2
3
namespace ProyectoTAU\TAU\Module\Administration\Group\Domain;
4
5
use ProyectoTAU\TAU\Module\Administration\Role\Domain\Role;
6
7
trait GroupUseCases
8
{
9
    private $members = [];
10
    private $plays = [];
11
12
    public function addUser($user)
13
    {
14
        $this->members[$user->getId()] = $user; // TODO: use ID in other relations !!!
15
        // TODO: Raise AddUserToGroupDomainEvent($user, $this)
16
        //$user->addGroup($this); //TODO: this causes an infinite loop
17
    }
18
19
    public function removeUser($user)
20
    {
21
        unset($this->members[$user->getId()]);
22
        // TODO: Raise RemoveUserToGroupDomainEvent($user, $this)
23
    }
24
25
    public function getUsers(): array
26
    {
27
        return $this->members;
28
    }
29
30
    public function addRole($role)
31
    {
32
        $this->plays[$role->getId()] = $role;
33
        // TODO: Raise AddRoleToGroupDomainEvent($role, $this)
34
    }
35
36
    public function removeRole(Role $role)
37
    {
38
        unset($this->plays[$role->getId()]);
39
        // TODO: Raise RemoveRoleFromGroupDomainEvent($role, $this)
40
    }
41
42
    public function getRoles()
43
    {
44
        return $this->plays;
45
    }
46
}
47