Test Failed
Branch master (fdda4e)
by ANTHONIUS
03:39
created

UserRepository::loadUserByIdentifier()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 19
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 13
c 0
b 0
f 0
nc 2
nop 1
dl 0
loc 19
rs 9.8333
1
<?php
2
3
/*
4
 * This file is part of the EOffice project.
5
 *
6
 * (c) Anthonius Munthi <https://itstoni.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
declare(strict_types=1);
13
14
namespace EOffice\User\Repository;
15
16
use Doctrine\ORM\EntityRepository;
17
use Symfony\Bridge\Doctrine\Security\User\UserLoaderInterface;
18
use Symfony\Component\Security\Core\User\UserInterface;
19
20
class UserRepository extends EntityRepository implements UserLoaderInterface
21
{
22
    /**
23
     * @param string $identifier
24
     *
25
     * @return UserInterface|void|null
26
     */
27
    public function loadUserByIdentifier(string $identifier)
28
    {
29
        $em  = $this->getentityManager();
30
        $dql = <<<EOC
31
SELECT u
32
FROM EOffice\Contracts\User\Model\UserInterface u
33
WHERE u.username = :query
34
OR u.email = :query
35
EOC;
36
37
        $user = $em->createQuery($dql)
38
            ->setParameter('query', $identifier)
39
            ->getOneOrNullResult();
40
41
        if (null !== $user) {
42
            \assert($user instanceof UserInterface);
43
        }
44
45
        return $user;
46
    }
47
48
    /**
49
     * {@inheritDoc}
50
     */
51
    public function loadUserByUsername(string $username)
52
    {
53
        $em  = $this->getentityManager();
54
        $dql = <<<EOC
55
SELECT u
56
FROM EOffice\Contracts\User\Model\UserInterface u
57
WHERE u.username = :query
58
OR u.email = :query
59
EOC;
60
61
        $user = $em->createQuery($dql)
62
            ->setParameter('query', $username)
63
            ->getOneOrNullResult();
64
65
        if (null !== $user) {
66
            \assert($user instanceof UserInterface);
67
        }
68
69
        return $user;
70
    }
71
}
72