ResettingRepository   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
eloc 15
c 2
b 1
f 0
dl 0
loc 31
rs 10
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setToken() 0 5 1
A __construct() 0 4 1
A save() 0 5 1
A setPassword() 0 7 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace App\Repository;
6
7
use App\Entity\User;
8
use App\Transformer\UserTransformer;
9
use Doctrine\Persistence\ManagerRegistry;
10
11
final class ResettingRepository extends UserRepository
12
{
13
    private $transformer;
14
15
    public function __construct(ManagerRegistry $registry, UserTransformer $transformer)
16
    {
17
        parent::__construct($registry);
18
        $this->transformer = $transformer;
19
    }
20
21
    public function setPassword(User $user, string $plainPassword): void
22
    {
23
        $user->setPassword($plainPassword);
24
        $user->setConfirmationToken(null);
25
        $user->setPasswordRequestedAt(null);
26
        $user = $this->transformer->transform($user);
27
        $this->save($user);
28
    }
29
30
    public function setToken(User $user, string $token): void
31
    {
32
        $user->setConfirmationToken($token);
33
        $user->setPasswordRequestedAt(new \DateTime());
34
        $this->save($user);
35
    }
36
37
    private function save(User $user): void
38
    {
39
        $em = $this->getEntityManager();
40
        $em->persist($user);
41
        $em->flush();
42
    }
43
}
44