Use DI for Newsletter\ViewInBrowser

[MAILPOET-2430]
This commit is contained in:
Jan Jakeš
2020-02-05 16:35:41 +01:00
committed by Jack Kitterhing
parent 3cd5af448e
commit 077591ae3c
3 changed files with 13 additions and 14 deletions

View File

@ -240,6 +240,7 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository::class); $container->autowire(\MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository::class);
$container->autowire(\MailPoet\Newsletter\Scheduler\WelcomeScheduler::class); $container->autowire(\MailPoet\Newsletter\Scheduler\WelcomeScheduler::class);
$container->autowire(\MailPoet\Newsletter\Scheduler\PostNotificationScheduler::class); $container->autowire(\MailPoet\Newsletter\Scheduler\PostNotificationScheduler::class);
$container->autowire(\MailPoet\Newsletter\ViewInBrowser::class)->setPublic(true);
// Util // Util
$container->autowire(\MailPoet\Util\Cookies::class); $container->autowire(\MailPoet\Util\Cookies::class);
$container->autowire(\MailPoet\Util\Url::class)->setPublic(true); $container->autowire(\MailPoet\Util\Url::class)->setPublic(true);

View File

@ -8,6 +8,7 @@ use MailPoet\Models\Subscriber;
use MailPoet\Newsletter\Links\Links; use MailPoet\Newsletter\Links\Links;
use MailPoet\Newsletter\Renderer\Renderer; use MailPoet\Newsletter\Renderer\Renderer;
use MailPoet\Newsletter\Shortcodes\Shortcodes; use MailPoet\Newsletter\Shortcodes\Shortcodes;
use MailPoet\Settings\SettingsController;
use MailPoet\WP\Emoji; use MailPoet\WP\Emoji;
class ViewInBrowser { class ViewInBrowser {
@ -17,9 +18,9 @@ class ViewInBrowser {
/** @var bool */ /** @var bool */
private $isTrackingEnabled; private $isTrackingEnabled;
public function __construct(Emoji $emoji, bool $isTrackingEnabled) { public function __construct(Emoji $emoji, SettingsController $settings) {
$this->emoji = $emoji; $this->emoji = $emoji;
$this->isTrackingEnabled = $isTrackingEnabled; $this->isTrackingEnabled = $settings->get('tracking.enabled');
} }
public function view( public function view(

View File

@ -8,9 +8,7 @@ use MailPoet\Models\SendingQueue;
use MailPoet\Models\Subscriber; use MailPoet\Models\Subscriber;
use MailPoet\Newsletter\Url as NewsletterUrl; use MailPoet\Newsletter\Url as NewsletterUrl;
use MailPoet\Newsletter\ViewInBrowser as NewsletterViewInBrowser; use MailPoet\Newsletter\ViewInBrowser as NewsletterViewInBrowser;
use MailPoet\Settings\SettingsController;
use MailPoet\Subscribers\LinkTokens; use MailPoet\Subscribers\LinkTokens;
use MailPoet\WP\Emoji;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
class ViewInBrowser { class ViewInBrowser {
@ -25,20 +23,20 @@ class ViewInBrowser {
/** @var AccessControl */ /** @var AccessControl */
private $accessControl; private $accessControl;
/** @var SettingsController */
private $settings;
/** @var LinkTokens */ /** @var LinkTokens */
private $linkTokens; private $linkTokens;
/** @var Emoji */ /** @var NewsletterViewInBrowser */
private $emoji; private $newsletterViewInBrowser;
public function __construct(AccessControl $accessControl, SettingsController $settings, LinkTokens $linkTokens, Emoji $emoji) { public function __construct(
AccessControl $accessControl,
LinkTokens $linkTokens,
NewsletterViewInBrowser $newsletterViewInBrowser
) {
$this->accessControl = $accessControl; $this->accessControl = $accessControl;
$this->settings = $settings;
$this->linkTokens = $linkTokens; $this->linkTokens = $linkTokens;
$this->emoji = $emoji; $this->newsletterViewInBrowser = $newsletterViewInBrowser;
} }
public function view(array $data) { public function view(array $data) {
@ -73,8 +71,7 @@ class ViewInBrowser {
return $this->_abort(); return $this->_abort();
} }
$viewInBrowser = new NewsletterViewInBrowser($this->emoji, (bool)$this->settings->get('tracking.enabled')); $viewData = $this->newsletterViewInBrowser->view($isPreview, $newsletter, $subscriber, $queue);
$viewData = $viewInBrowser->view($isPreview, $newsletter, $subscriber, $queue);
return $this->_displayNewsletter($viewData); return $this->_displayNewsletter($viewData);
} }