Passed
Push — master ( 3cf6cb...68bea6 )
by Mike
02:42
created

UserFacade   A

Complexity

Total Complexity 11

Size/Duplication

Total Lines 109
Duplicated Lines 0 %

Test Coverage

Coverage 64%

Importance

Changes 0
Metric Value
wmc 11
eloc 12
dl 0
loc 109
ccs 16
cts 25
cp 0.64
rs 10
c 0
b 0
f 0

11 Methods

Rating   Name   Duplication   Size   Complexity  
A getUserFromId() 0 3 1
A createUser() 0 3 1
A getLoggedUser() 0 3 1
A updateUser() 0 3 1
A auth() 0 3 1
A logout() 0 3 1
A login() 0 3 1
A updateLogin() 0 3 1
A deleteUser() 0 3 1
A getUserFromEmail() 0 3 1
A updateCredential() 0 3 1
1
<?php
2
declare(strict_types=1);
3
4
5
namespace Xervice\User;
6
7
8
use DataProvider\UserAuthDataProvider;
9
use DataProvider\UserCredentialDataProvider;
10
use DataProvider\UserDataProvider;
11
use DataProvider\UserLoginDataProvider;
12
use Xervice\Core\Facade\AbstractFacade;
13
14
/**
15
 * @method \Xervice\User\UserFactory getFactory()
16
 * @method \Xervice\User\UserConfig getConfig()
17
 * @method \Xervice\User\UserClient getClient()
18
 */
19
class UserFacade extends AbstractFacade
20
{
21
    /**
22
     * @param \DataProvider\UserAuthDataProvider $authDataProvider
23
     *
24
     * @return \DataProvider\UserDataProvider
25
     * @throws \Xervice\User\Business\Exception\UserException
26
     */
27
    public function login(UserAuthDataProvider $authDataProvider)
28
    {
29
        return $this->getFactory()->createLoginHandler()->login($authDataProvider);
30
    }
31
32
    public function logout(): void
33
    {
34
        $this->getFactory()->createLoginHandler()->logout();
35
    }
36
37
    /**
38
     * @return \DataProvider\UserDataProvider|null
39
     */
40
    public function getLoggedUser(): ?UserDataProvider
41
    {
42
        return $this->getFactory()->createLoginHandler()->getUser();
43
    }
44
45
    /**
46
     * @param \DataProvider\UserAuthDataProvider $authDataProvider
47
     *
48
     * @return bool
49
     * @throws \Xervice\User\Business\Exception\UserException
50
     */
51 1
    public function auth(UserAuthDataProvider $authDataProvider): bool
52
    {
53 1
        return $this->getFactory()->createAuthProvider()->auth($authDataProvider);
54
    }
55
56
    /**
57
     * @param \DataProvider\UserDataProvider $userDataProvider
58
     *
59
     * @return \DataProvider\UserDataProvider
60
     * @throws \Propel\Runtime\Exception\PropelException
61
     * @throws \Xervice\User\Business\Exception\UserException
62
     */
63 5
    public function createUser(UserDataProvider $userDataProvider): UserDataProvider
64
    {
65 5
        return $this->getFactory()->createUserWriter()->createUser($userDataProvider);
66
    }
67
68
    /**
69
     * @param \DataProvider\UserDataProvider $userDataProvider
70
     *
71
     * @return \DataProvider\UserDataProvider
72
     * @throws \Propel\Runtime\Exception\PropelException
73
     * @throws \Xervice\User\Business\Exception\UserException
74
     */
75 1
    public function updateUser(UserDataProvider $userDataProvider): UserDataProvider
76
    {
77 1
        return $this->getFactory()->createUserWriter()->updateUser($userDataProvider);
78
    }
79
80
    /**
81
     * @param \DataProvider\UserLoginDataProvider $loginDataProvider
82
     *
83
     * @throws \Propel\Runtime\Exception\PropelException
84
     */
85 1
    public function updateLogin(UserLoginDataProvider $loginDataProvider): void
86
    {
87 1
        $this->getFactory()->createLoginWriter()->updateLogin($loginDataProvider);
88 1
    }
89
90
    /**
91
     * @param \DataProvider\UserCredentialDataProvider $credentialDataProvider
92
     *
93
     * @throws \Propel\Runtime\Exception\PropelException
94
     */
95 1
    public function updateCredential(UserCredentialDataProvider $credentialDataProvider): void
96
    {
97 1
        $this->getFactory()->createCredentialWriter()->updateCredential($credentialDataProvider);
98 1
    }
99
100
    /**
101
     * @param int $userId
102
     *
103
     * @return \DataProvider\UserDataProvider
104
     */
105
    public function getUserFromId(int $userId): UserDataProvider
106
    {
107
        return $this->getFactory()->getQueryContainer()->getUserFromId($userId);
108
    }
109
110
    /**
111
     * @param string $email
112
     *
113
     * @return \DataProvider\UserDataProvider
114
     */
115 5
    public function getUserFromEmail(string $email): UserDataProvider
116
    {
117 5
        return $this->getFactory()->getQueryContainer()->getUserFromEmail($email);
118
    }
119
120
    /**
121
     * @param \DataProvider\UserDataProvider $userDataProvider
122
     *
123
     * @throws \Propel\Runtime\Exception\PropelException
124
     */
125 5
    public function deleteUser(UserDataProvider $userDataProvider): void
126
    {
127 5
        $this->getFactory()->createUserWriter()->deleteUser($userDataProvider);
128
    }
129
}