Inject Url Generator and Translator Interface into notification mailer (#2169)

This commit is contained in:
Alexander Skvortsov 2020-05-22 18:10:31 -04:00 committed by GitHub
parent 24161507d8
commit c73ce3e768

View File

@ -9,9 +9,11 @@
namespace Flarum\Notification;
use Flarum\Http\UrlGenerator;
use Flarum\User\User;
use Illuminate\Contracts\Mail\Mailer;
use Illuminate\Mail\Message;
use Symfony\Component\Translation\TranslatorInterface;
class NotificationMailer
{
@ -21,11 +23,25 @@ class NotificationMailer
protected $mailer;
/**
* @param Mailer $mailer
* @var TranslatorInterface
*/
public function __construct(Mailer $mailer)
protected $translator;
/**
* @var UrlGenerator
*/
protected $url;
/**
* @param Mailer $mailer
* @param TranslatorInterface $translator
* @param UrlGenerator $url
*/
public function __construct(Mailer $mailer, TranslatorInterface $translator, UrlGenerator $url)
{
$this->mailer = $mailer;
$this->translator = $translator;
$this->url = $url;
}
/**
@ -34,9 +50,11 @@ class NotificationMailer
*/
public function send(MailableInterface $blueprint, User $user)
{
$translator = $this->translator;
$url = $this->url;
$this->mailer->send(
$blueprint->getEmailView(),
compact('blueprint', 'user'),
compact('blueprint', 'user', 'translator', 'url'),
function (Message $message) use ($blueprint, $user) {
$message->to($user->email, $user->username)
->subject($blueprint->getEmailSubject());