Passed
Push — develop ( d1b291...4991ef )
by BENARD
05:43
created

UserProvider   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 4
eloc 9
c 2
b 0
f 0
dl 0
loc 40
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getUser() 0 3 1
A getTeam() 0 4 1
A __construct() 0 4 1
A getPlayer() 0 3 1
1
<?php
2
3
namespace VideoGamesRecords\CoreBundle\Security;
4
5
use Doctrine\ORM\Exception\ORMException;
6
use Symfony\Component\Security\Core\Security;
7
use Symfony\Component\Security\Core\User\UserInterface;
8
use VideoGamesRecords\CoreBundle\DataTransformer\UserToPlayerTransformer;
9
use VideoGamesRecords\CoreBundle\Entity\Player;
10
use VideoGamesRecords\CoreBundle\Entity\Team;
11
12
class UserProvider
13
{
14
    private Security $security;
15
    private UserToPlayerTransformer $userToPlayerTransformer;
16
17
    /**
18
     * @param Security      $security
19
     * @param UserToPlayerTransformer $userToPlayerTransformer
20
     */
21
    public function __construct(Security $security, UserToPlayerTransformer $userToPlayerTransformer)
22
    {
23
        $this->security = $security;
24
        $this->userToPlayerTransformer = $userToPlayerTransformer;
25
    }
26
27
    /**
28
     * @return UserInterface|null
29
     */
30
    public function getUser(): ?UserInterface
31
    {
32
        return $this->security->getUser();
33
    }
34
35
    /**
36
     * @return Player
37
     * @throws ORMException
38
     */
39
    public function getPlayer(): Player
40
    {
41
        return $this->userToPlayerTransformer->transform($this->security->getUser());
42
    }
43
44
    /**
45
     * @return Team|null
46
     * @throws ORMException
47
     */
48
    public function getTeam(): ?Team
49
    {
50
        $player = $this->userToPlayerTransformer->transform($this->security->getUser());
51
        return $player->getTeam();
52
    }
53
}
54