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

OnPasswordResetTokenCreated   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 66
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 6

Importance

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