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

UserService   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 94
Duplicated Lines 0 %

Importance

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

7 Methods

Rating   Name   Duplication   Size   Complexity  
A delete() 0 10 1
A getGroupsFromUser() 0 10 1
A read() 0 10 1
A removeGroupFromUser() 0 11 1
A update() 0 10 1
A addGroupToUser() 0 11 1
A create() 0 10 1
1
<?php
2
3
namespace ProyectoTAU\TAU\Module\Administration\User\Application;
4
5
use ProyectoTAU\TAU\Module\Administration\User\Domain\User;
6
7
final class UserService
8
{
9
    public static function create($id, $name, $surname, $login)
10
    {
11
        app()->add('ProyectoTAU\TAU\Module\Administration\User\Application\create\CreateUserCommandHandler',
12
            new \ProyectoTAU\TAU\Module\Administration\User\Application\create\CreateUserCommandHandler(
13
                app()->get('ProyectoTAU\TAU\Module\Administration\User\Domain\UserRepository')
14
            )
15
        );
16
17
        app('CommandBus')->handle(
18
            new \ProyectoTAU\TAU\Module\Administration\User\Application\create\CreateUserCommand($id, $name, $surname, $login)
19
        );
20
    }
21
22
    public static function delete($id)
23
    {
24
        app()->add('ProyectoTAU\TAU\Module\Administration\User\Application\delete\DeleteUserCommandHandler',
25
            new \ProyectoTAU\TAU\Module\Administration\User\Application\delete\DeleteUserCommandHandler(
26
                app()->get('ProyectoTAU\TAU\Module\Administration\User\Domain\UserRepository')
27
            )
28
        );
29
30
        app('CommandBus')->handle(
31
            new \ProyectoTAU\TAU\Module\Administration\User\Application\delete\DeleteUserCommand($id)
32
        );
33
    }
34
35
    public static function update($id, $name, $surname, $login)
36
    {
37
        app()->add('ProyectoTAU\TAU\Module\Administration\User\Application\update\UpdateUserCommandHandler',
38
            new \ProyectoTAU\TAU\Module\Administration\User\Application\update\UpdateUserCommandHandler(
39
                app()->get('ProyectoTAU\TAU\Module\Administration\User\Domain\UserRepository')
40
            )
41
        );
42
43
        app('CommandBus')->handle(
44
            new \ProyectoTAU\TAU\Module\Administration\User\Application\update\UpdateUserCommand($id, $name, $surname, $login)
45
        );
46
    }
47
48
    public static function addGroupToUser($groupId, $userId)
49
    {
50
        app()->add('ProyectoTAU\TAU\Module\Administration\User\Application\addGroupToUser\AddGroupToUserCommandHandler',
51
            new \ProyectoTAU\TAU\Module\Administration\User\Application\addGroupToUser\AddGroupToUserCommandHandler(
52
                app()->get('ProyectoTAU\TAU\Module\Administration\Group\Domain\GroupRepository'),
53
                app()->get('ProyectoTAU\TAU\Module\Administration\User\Domain\UserRepository')
54
            )
55
        );
56
57
        app('CommandBus')->handle(
58
            new \ProyectoTAU\TAU\Module\Administration\User\Application\addGroupToUser\AddGroupToUserCommand($groupId, $userId)
59
        );
60
    }
61
62
    public static function removeGroupFromUser($groupId, $userId)
63
    {
64
        app()->add('ProyectoTAU\TAU\Module\Administration\User\Application\removeGroupFromUser\RemoveGroupFromUserCommandHandler',
65
            new \ProyectoTAU\TAU\Module\Administration\User\Application\removeGroupFromUser\RemoveGroupFromUserCommandHandler(
66
                app()->get('ProyectoTAU\TAU\Module\Administration\Group\Domain\GroupRepository'),
67
                app()->get('ProyectoTAU\TAU\Module\Administration\User\Domain\UserRepository')
68
            )
69
        );
70
71
        app('CommandBus')->handle(
72
            new \ProyectoTAU\TAU\Module\Administration\User\Application\removeGroupFromUser\removeGroupFromUserCommand($groupId, $userId)
73
        );
74
    }
75
76
    //TODO: Move to Query (rename Command to Query)
77
    public static function read($id): User
78
    {
79
        app()->add('ProyectoTAU\TAU\Module\Administration\User\Application\read\ReadUserCommandHandler',
80
            new \ProyectoTAU\TAU\Module\Administration\User\Application\read\ReadUserCommandHandler(
81
                app()->get('ProyectoTAU\TAU\Module\Administration\User\Domain\UserRepository')
82
            )
83
        );
84
85
        return app('CommandBus')->handle(
86
            new \ProyectoTAU\TAU\Module\Administration\User\Application\read\ReadUserCommand($id)
87
        );
88
    }
89
90
    //TODO: Move to Query
91
    public static function getGroupsFromUser($userId): array
92
    {
93
        app()->add('ProyectoTAU\TAU\Module\Administration\User\Application\getGroupsFromUser\GetGroupsFromUserCommandHandler',
94
            new \ProyectoTAU\TAU\Module\Administration\User\Application\getGroupsFromUser\GetGroupsFromUserCommandHandler(
95
                app()->get('ProyectoTAU\TAU\Module\Administration\User\Domain\UserRepository')
96
            )
97
        );
98
99
        return app('CommandBus')->handle(
100
            new \ProyectoTAU\TAU\Module\Administration\User\Application\getGroupsFromUser\GetGroupsFromUserCommand($userId)
101
        );
102
    }
103
}
104