Load list of segments on settings page using doctrine

[MAILPOET-3164]
This commit is contained in:
Rostislav Wolny
2021-01-15 16:42:03 +01:00
committed by Veljko V
parent ade48fc359
commit ee6eea5f99

View File

@ -5,7 +5,8 @@ namespace MailPoet\AdminPages\Pages;
use MailPoet\AdminPages\PageRenderer; use MailPoet\AdminPages\PageRenderer;
use MailPoet\Config\Installer; use MailPoet\Config\Installer;
use MailPoet\Config\ServicesChecker; use MailPoet\Config\ServicesChecker;
use MailPoet\Models\Segment; use MailPoet\Entities\SegmentEntity;
use MailPoet\Segments\SegmentSubscribersRepository;
use MailPoet\Settings\Hosts; use MailPoet\Settings\Hosts;
use MailPoet\Settings\Pages; use MailPoet\Settings\Pages;
use MailPoet\Settings\SettingsController; use MailPoet\Settings\SettingsController;
@ -37,6 +38,9 @@ class Settings {
/** @var Installation */ /** @var Installation */
private $installation; private $installation;
/** @var SegmentSubscribersRepository */
private $segmentSubscribersRepository;
public function __construct( public function __construct(
PageRenderer $pageRenderer, PageRenderer $pageRenderer,
SettingsController $settings, SettingsController $settings,
@ -44,7 +48,8 @@ class Settings {
WPFunctions $wp, WPFunctions $wp,
ServicesChecker $servicesChecker, ServicesChecker $servicesChecker,
Installation $installation, Installation $installation,
Captcha $captcha Captcha $captcha,
SegmentSubscribersRepository $segmentSubscribersRepository
) { ) {
$this->pageRenderer = $pageRenderer; $this->pageRenderer = $pageRenderer;
$this->settings = $settings; $this->settings = $settings;
@ -53,6 +58,7 @@ class Settings {
$this->servicesChecker = $servicesChecker; $this->servicesChecker = $servicesChecker;
$this->installation = $installation; $this->installation = $installation;
$this->captcha = $captcha; $this->captcha = $captcha;
$this->segmentSubscribersRepository = $segmentSubscribersRepository;
} }
public function render() { public function render() {
@ -66,7 +72,7 @@ class Settings {
$data = [ $data = [
'settings' => $settings, 'settings' => $settings,
'segments' => Segment::getSegmentsWithSubscriberCount(), 'segments' => $this->segmentSubscribersRepository->getSimpleSegmentListWithSubscribersCounts(SegmentEntity::TYPE_DEFAULT),
'premium_key_valid' => !empty($premiumKeyValid), 'premium_key_valid' => !empty($premiumKeyValid),
'mss_key_valid' => !empty($mpApiKeyValid), 'mss_key_valid' => !empty($mpApiKeyValid),
'pages' => Pages::getAll(), 'pages' => Pages::getAll(),