Completed
Pull Request — master (#12)
by
unknown
03:04
created

OnPasswordResetTokenCreated   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 6

Importance

Changes 3
Bugs 0 Features 1
Metric Value
wmc 2
c 3
b 0
f 1
lcom 1
cbo 6
dl 0
loc 37
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 9 1
A onPasswordResetTokenCreated() 0 16 1
1
<?php
2
3
namespace SumoCoders\FrameworkMultiUserBundle\Event;
4
5
use Swift_Mailer;
6
use Swift_Message;
7
use Symfony\Bundle\TwigBundle\TwigEngine;
8
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
9
use Symfony\Component\Translation\TranslatorInterface;
10
11
class OnPasswordResetTokenCreated
12
{
13
    private $mailer;
14
15
    private $translator;
16
17
    private $emailFrom;
18
19
    private $twig;
20
21
    public function __construct(EventDispatcherInterface $dispatcher, Swift_Mailer $mailer, TranslatorInterface $translator, TwigEngine $twig, $emailFrom)
22
    {
23
        $this->mailer = $mailer;
24
        $this->translator = $translator;
25
        $this->emailFrom = $emailFrom;
26
        $this->twig = $twig;
27
        
28
        $dispatcher->addListener(PasswordResetTokenCreated::NAME, [$this, 'onPasswordResetTokenCreated']);
29
    }
30
31
    public function onPasswordResetTokenCreated(PasswordResetTokenCreated $event)
32
    {
33
        $message = Swift_Message::newInstance()
34
            ->setSubject('Password reset requested')
35
            ->setFrom($this->emailFrom)
36
            ->setTo($event->getUser()->getEmail())
37
            ->setBody(
38
                $this->twig->render(
39
                    'SumoCodersFrameworkMultiUserBundle:Email:passwordReset.html.twig',
40
                    ['user' => $event->getUser()]
41
                ),
42
                'text/html'
43
            );
44
45
        return $this->mailer->send($message);
46
    }
47
}
48