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

GroupService::addUserToGroup()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 6
c 1
b 0
f 0
dl 0
loc 11
rs 10
cc 1
nc 1
nop 2
1
<?php
2
3
namespace ProyectoTAU\TAU\Module\Administration\Group\Application;
4
5
use ProyectoTAU\TAU\Module\Administration\User\Domain\User;
6
7
final class GroupService
8
{
9
    public static function create($id, $name, $desc)
10
    {
11
        app()->add('ProyectoTAU\TAU\Module\Administration\Group\Application\create\CreateGroupCommandHandler',
12
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\create\CreateGroupCommandHandler(
13
                app()->get('ProyectoTAU\TAU\Module\Administration\Group\Domain\GroupRepository')
14
            )
15
        );
16
17
        app('CommandBus')->handle(
18
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\create\CreateGroupCommand($id, $name, $desc)
19
        );
20
    }
21
22
    public static function delete($id)
23
    {
24
        app()->add('ProyectoTAU\TAU\Module\Administration\Group\Application\delete\DeleteGroupCommandHandler',
25
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\delete\DeleteGroupCommandHandler(
26
                app()->get('ProyectoTAU\TAU\Module\Administration\Group\Domain\UserRepository')
27
            )
28
        );
29
30
        app('CommandBus')->handle(
31
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\delete\DeleteGroupCommand($id)
32
        );
33
    }
34
35
    public static function update($id, $name, $desc)
36
    {
37
        app()->add('ProyectoTAU\TAU\Module\Administration\Group\Application\update\UpdateGroupCommandHandler',
38
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\update\UpdateGroupCommandHandler(
39
                app()->get('ProyectoTAU\TAU\Module\Administration\Group\Domain\GroupRepository')
40
            )
41
        );
42
43
        app('CommandBus')->handle(
44
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\update\UpdateGroupCommand($id, $name, $desc)
45
        );
46
    }
47
48
    public static function addUserToGroup($userId, $groupId)
49
    {
50
        app()->add('ProyectoTAU\TAU\Module\Administration\Group\Application\addUserToGroup\AddUserToGroupCommandHandler',
51
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\addUserToGroup\AddUserToGroupCommandHandler(
52
                app()->get('ProyectoTAU\TAU\Module\Administration\User\Domain\UserRepository'),
53
                app()->get('ProyectoTAU\TAU\Module\Administration\Group\Domain\GroupRepository')
54
            )
55
        );
56
57
        app('CommandBus')->handle(
58
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\addUserToGroup\AddUserToGroupCommand($userId, $groupId)
59
        );
60
    }
61
62
    public static function removeUserFromGroup($userId, $groupId)
63
    {
64
        app()->add('ProyectoTAU\TAU\Module\Administration\Group\Application\removeUserFromGroup\RemoveUserFromGroupCommandHandler',
65
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\removeUserFromGroup\RemoveUserFromGroupCommandHandler(
66
                app()->get('ProyectoTAU\TAU\Module\Administration\User\Domain\UserRepository'),
67
                app()->get('ProyectoTAU\TAU\Module\Administration\Group\Domain\GroupRepository')
68
            )
69
        );
70
71
        app('CommandBus')->handle(
72
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\removeUserFromGroup\RemoveUserFromGroupCommand($userId, $groupId)
73
        );
74
    }
75
76
    public static function addRoleToGroup($roleId, $groupId)
77
    {
78
        app()->add('ProyectoTAU\TAU\Module\Administration\Group\Application\addRoleToGroup\AddRoleToGroupCommandHandler',
79
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\addRoleToGroup\AddRoleToGroupCommandHandler(
80
                app()->get('ProyectoTAU\TAU\Module\Administration\Role\Domain\RoleRepository'),
81
                app()->get('ProyectoTAU\TAU\Module\Administration\Group\Domain\GroupRepository')
82
            )
83
        );
84
85
        app('CommandBus')->handle(
86
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\addRoleToGroup\AddRoleToGroupCommand($roleId, $groupId)
87
        );
88
    }
89
90
    //TODO: Move to Query
91
    public static function read($id): User
92
    {
93
        app()->add('ProyectoTAU\TAU\Module\Administration\Group\Application\read\ReadGroupCommandHandler',
94
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\read\ReadGroupCommandHandler(
95
                app()->get('ProyectoTAU\TAU\Module\Administration\Group\Domain\GroupRepository')
96
            )
97
        );
98
99
        return app('CommandBus')->handle(
100
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\read\ReadGroupCommand($id)
101
        );
102
    }
103
104
    //TODO: Move to Query
105
    public static function getUsersFromGroup($groupId): array
106
    {
107
        app()->add('ProyectoTAU\TAU\Module\Administration\Group\Application\getUsersFromGroup\GetUsersFromGroupCommandHandler',
108
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\getUsersFromGroup\GetUsersFromGroupCommandHandler(
109
                app()->get('ProyectoTAU\TAU\Module\Administration\Group\Domain\GroupRepository')
110
            )
111
        );
112
113
        return app('CommandBus')->handle(
114
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\getUsersFromGroup\GetUsersFromGroupCommand($groupId)
115
        );
116
    }
117
118
    //TODO: Move to Query
119
    public static function getRolesFromGroup($groupId)
120
    {
121
        app()->add('ProyectoTAU\TAU\Module\Administration\Group\Application\getRolesFromGroup\GetRolesFromGroupCommandHandler',
122
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\getRolesFromGroup\GetRolesFromGroupCommandHandler(
123
                app()->get('ProyectoTAU\TAU\Module\Administration\Group\Domain\GroupRepository')
124
            )
125
        );
126
127
        return app('CommandBus')->handle(
128
            new \ProyectoTAU\TAU\Module\Administration\Group\Application\getRolesFromGroup\GetRolesFromGroupCommand($groupId)
129
        );
130
    }
131
}
132