Passed
Push — main ( 0545d9...29d231 )
by Proyecto
03:14
created

InMemoryGroupRepository   A

Complexity

Total Complexity 11

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 11
eloc 12
c 1
b 0
f 0
dl 0
loc 55
ccs 0
cts 43
cp 0
rs 10

11 Methods

Rating   Name   Duplication   Size   Complexity  
A addRoleToGroup() 0 3 1
A addUserToGroup() 0 3 1
A create() 0 3 1
A removeUserFromGroup() 0 3 1
A delete() 0 3 1
A clear() 0 3 1
A update() 0 3 1
A read() 0 3 1
A getUsersFromGroup() 0 3 1
A removeRoleFromGroup() 0 3 1
A getRolesFromGroup() 0 3 1
1
<?php
2
3
namespace ProyectoTAU\TAU\Module\Administration\Group\Infrastructure;
4
5
use ProyectoTAU\TAU\Common\InMemoryRepository;
6
use ProyectoTAU\TAU\Module\Administration\User\Domain\User;
7
use ProyectoTAU\TAU\Module\Administration\Group\Domain\Group;
8
use ProyectoTAU\TAU\Module\Administration\Role\Domain\Role;
9
use ProyectoTAU\TAU\Module\Administration\Group\Domain\GroupRepository;
10
11
class InMemoryGroupRepository implements GroupRepository
12
{
13
    public function clear(): void
14
    {
15
        InMemoryRepository::getInstance()->clearGroup();
16
    }
17
18
    public function create(Group $group): void
19
    {
20
        InMemoryRepository::getInstance()->createGroup(clone $group);
21
    }
22
23
    public function read($id): Group
24
    {
25
        return InMemoryRepository::getInstance()->readGroup($id);
26
    }
27
28
    public function update($id, $name, $desc): void
29
    {
30
        InMemoryRepository::getInstance()->updateGroup($id, $name, $desc);
31
    }
32
33
    public function delete($id): void
34
    {
35
        InMemoryRepository::getInstance()->deleteGroup($id);
36
    }
37
38
    public function addUserToGroup(User $user, Group $group): void
39
    {
40
        InMemoryRepository::getInstance()->addUserToGroup($user, $group);
41
    }
42
43
    public function removeUserFromGroup(User $user, Group $group): void
44
    {
45
        InMemoryRepository::getInstance()->removeUserToGroup($user, $group);
46
    }
47
48
    public function getUsersFromGroup(Group $group): array
49
    {
50
        return InMemoryRepository::getInstance()->getUsersFromGroup($group);
51
    }
52
53
    public function addRoleToGroup(Role $role, Group $group): void
54
    {
55
        InMemoryRepository::getInstance()->addRoleToGroup($role, $group);
56
    }
57
58
    public function removeRoleFromGroup(Role $role, Group $group): void
59
    {
60
        InMemoryRepository::getInstance()->removeRoleToGroup($role, $group);
61
    }
62
63
    public function getRolesFromGroup(Group $group): array
64
    {
65
        return InMemoryRepository::getInstance()->getRolesFromGroup($group);
66
    }
67
}
68