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\Scheduler\WelcomeScheduler::class);
$container->autowire(\MailPoet\Newsletter\Scheduler\PostNotificationScheduler::class);
$container->autowire(\MailPoet\Newsletter\ViewInBrowser::class)->setPublic(true);
// Util
$container->autowire(\MailPoet\Util\Cookies::class);
$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\Renderer\Renderer;
use MailPoet\Newsletter\Shortcodes\Shortcodes;
use MailPoet\Settings\SettingsController;
use MailPoet\WP\Emoji;
class ViewInBrowser {
@ -17,9 +18,9 @@ class ViewInBrowser {
/** @var bool */
private $isTrackingEnabled;
public function __construct(Emoji $emoji, bool $isTrackingEnabled) {
public function __construct(Emoji $emoji, SettingsController $settings) {
$this->emoji = $emoji;
$this->isTrackingEnabled = $isTrackingEnabled;
$this->isTrackingEnabled = $settings->get('tracking.enabled');
}
public function view(

View File

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