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

OnPasswordResetTokenCreated   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 66
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Importance

Changes 5
Bugs 0 Features 2
Metric Value
wmc 2
c 5
b 0
f 2
lcom 1
cbo 5
dl 0
loc 66
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 11 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\Translation\TranslatorInterface;
9
10
class OnPasswordResetTokenCreated
11
{
12
    /**
13
     * @var Swift_Mailer
14
     */
15
    private $mailer;
16
17
    /**
18
     * @var TranslatorInterface
19
     */
20
    private $translator;
21
22
    /**
23
     * @var string
24
     */
25
    private $emailFrom;
26
27
    /**
28
     * @var TwigEngine
29
     */
30
    private $twig;
31
32
    /**
33
     * OnPasswordResetTokenCreated constructor.
34
     *
35
     * @param Swift_Mailer $mailer
36
     * @param TranslatorInterface $translator
37
     * @param TwigEngine $twig
38
     * @param $emailFrom
39
     */
40
    public function __construct(
41
        Swift_Mailer $mailer,
42
        TranslatorInterface $translator,
43
        TwigEngine $twig,
44
        $emailFrom
45
    ) {
46
        $this->mailer = $mailer;
47
        $this->translator = $translator;
48
        $this->emailFrom = $emailFrom;
49
        $this->twig = $twig;
50
    }
51
52
    /**
53
     * @param PasswordResetTokenCreated $event
54
     *
55
     * @return int
56
     *
57
     * @throws \Twig_Error
58
     */
59
    public function onPasswordResetTokenCreated(PasswordResetTokenCreated $event)
60
    {
61
        $message = Swift_Message::newInstance()
62
            ->setSubject('Password reset requested')
63
            ->setFrom($this->emailFrom)
64
            ->setTo($event->getUser()->getEmail())
65
            ->setBody(
66
                $this->twig->render(
67
                    'SumoCodersFrameworkMultiUserBundle:Email:passwordReset.html.twig',
68
                    ['user' => $event->getUser()]
69
                ),
70
                'text/html'
71
            );
72
73
        return $this->mailer->send($message);
74
    }
75
}
76