Passed
Push — master ( 786b21...4a8f5f )
by Stone
06:47 queued 42s
created

UserRepository::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace App\Repository;
4
5
use App\Entity\User;
6
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
7
use Symfony\Bridge\Doctrine\RegistryInterface;
8
9
/**
10
 * @method User|null find($id, $lockMode = null, $lockVersion = null)
11
 * @method User|null findOneBy(array $criteria, array $orderBy = null)
12
 * @method User[]    findAll()
13
 * @method User[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
14
 */
15
class UserRepository extends ServiceEntityRepository
16
{
17
    public function __construct(RegistryInterface $registry)
18
    {
19
        parent::__construct($registry, User::class);
20
    }
21
22
    // /**
23
    //  * @return User[] Returns an array of User objects
24
    //  */
25
    /*
26
    public function findByExampleField($value)
27
    {
28
        return $this->createQueryBuilder('u')
29
            ->andWhere('u.exampleField = :val')
30
            ->setParameter('val', $value)
31
            ->orderBy('u.id', 'ASC')
32
            ->setMaxResults(10)
33
            ->getQuery()
34
            ->getResult()
35
        ;
36
    }
37
    */
38
39
    /**
40
     * Get the unique user from it's hash
41
     * @param $hash
42
     * @return User|null
43
     * @throws \Doctrine\ORM\NonUniqueResultException
44
     */
45
    public function findUserByHash($hash): ?User
46
    {
47
        return $this->createQueryBuilder('u')
48
            ->andWhere('u.verifiedHash = :hash')
49
            ->setParameter('hash', $hash)
50
            ->getQuery()
51
            ->getOneOrNullResult();
52
    }
53
54
    /**
55
     * @param string $userMailName
56
     * @return User|null
57
     * @throws \Doctrine\ORM\NonUniqueResultException
58
     */
59
    public function findUserByMailOrUsername(string $userMailName): ?User
60
    {
61
        return $this->createQueryBuilder('u')
62
            ->andWhere('u.email = :userMailName OR u.userName = :userMailName')
63
            ->setParameter('userMailName', $userMailName)
64
            ->getQuery()
65
            ->getOneOrNullResult();
66
    }
67
68
69
}
70