Refactor mailpoet_subscribers_listings_filters_segments to direct calls
[MAILPOET-3077]
This commit is contained in:
committed by
Veljko V
parent
1a56b2534e
commit
a42b3d6e3f
@ -7,6 +7,7 @@ use MailPoet\API\JSON\Error as APIError;
|
|||||||
use MailPoet\API\JSON\Response as APIResponse;
|
use MailPoet\API\JSON\Response as APIResponse;
|
||||||
use MailPoet\API\JSON\ResponseBuilders\SubscribersResponseBuilder;
|
use MailPoet\API\JSON\ResponseBuilders\SubscribersResponseBuilder;
|
||||||
use MailPoet\Config\AccessControl;
|
use MailPoet\Config\AccessControl;
|
||||||
|
use MailPoet\DynamicSegments\FreePluginConnectors\AddToSubscribersFilters;
|
||||||
use MailPoet\Entities\StatisticsUnsubscribeEntity;
|
use MailPoet\Entities\StatisticsUnsubscribeEntity;
|
||||||
use MailPoet\Entities\SubscriberEntity;
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
use MailPoet\Form\Util\FieldNameObfuscator;
|
use MailPoet\Form\Util\FieldNameObfuscator;
|
||||||
@ -89,6 +90,9 @@ class Subscribers extends APIEndpoint {
|
|||||||
/** @var SubscriberListingRepository */
|
/** @var SubscriberListingRepository */
|
||||||
private $subscriberListingRepository;
|
private $subscriberListingRepository;
|
||||||
|
|
||||||
|
/** @var AddToSubscribersFilters */
|
||||||
|
private $dynamicSegmentsFiltersLoader;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
Listing\BulkActionController $bulkActionController,
|
Listing\BulkActionController $bulkActionController,
|
||||||
SubscribersListings $subscribersListings,
|
SubscribersListings $subscribersListings,
|
||||||
@ -105,7 +109,8 @@ class Subscribers extends APIEndpoint {
|
|||||||
SubscribersRepository $subscribersRepository,
|
SubscribersRepository $subscribersRepository,
|
||||||
SubscribersResponseBuilder $subscribersResponseBuilder,
|
SubscribersResponseBuilder $subscribersResponseBuilder,
|
||||||
SubscriberListingRepository $subscriberListingRepository,
|
SubscriberListingRepository $subscriberListingRepository,
|
||||||
FieldNameObfuscator $fieldNameObfuscator
|
FieldNameObfuscator $fieldNameObfuscator,
|
||||||
|
AddToSubscribersFilters $dynamicSegmentsFiltersLoader
|
||||||
) {
|
) {
|
||||||
$this->bulkActionController = $bulkActionController;
|
$this->bulkActionController = $bulkActionController;
|
||||||
$this->subscribersListings = $subscribersListings;
|
$this->subscribersListings = $subscribersListings;
|
||||||
@ -123,6 +128,7 @@ class Subscribers extends APIEndpoint {
|
|||||||
$this->subscribersRepository = $subscribersRepository;
|
$this->subscribersRepository = $subscribersRepository;
|
||||||
$this->subscribersResponseBuilder = $subscribersResponseBuilder;
|
$this->subscribersResponseBuilder = $subscribersResponseBuilder;
|
||||||
$this->subscriberListingRepository = $subscriberListingRepository;
|
$this->subscriberListingRepository = $subscriberListingRepository;
|
||||||
|
$this->dynamicSegmentsFiltersLoader = $dynamicSegmentsFiltersLoader;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get($data = []) {
|
public function get($data = []) {
|
||||||
@ -143,12 +149,7 @@ class Subscribers extends APIEndpoint {
|
|||||||
$count = $this->subscriberListingRepository->getCount($definition);
|
$count = $this->subscriberListingRepository->getCount($definition);
|
||||||
$filters = $this->subscriberListingRepository->getFilters($definition);
|
$filters = $this->subscriberListingRepository->getFilters($definition);
|
||||||
$groups = $this->subscriberListingRepository->getGroups($definition);
|
$groups = $this->subscriberListingRepository->getGroups($definition);
|
||||||
|
$filters['segment'] = $this->dynamicSegmentsFiltersLoader->add($filters['segment'] ?? []);
|
||||||
$filters['segment'] = $this->wp->applyFilters(
|
|
||||||
'mailpoet_subscribers_listings_filters_segments',
|
|
||||||
$filters['segment']
|
|
||||||
);
|
|
||||||
|
|
||||||
return $this->successResponse($this->subscribersResponseBuilder->buildForListing($items), [
|
return $this->successResponse($this->subscribersResponseBuilder->buildForListing($items), [
|
||||||
'count' => $count,
|
'count' => $count,
|
||||||
'filters' => $filters,
|
'filters' => $filters,
|
||||||
@ -169,10 +170,7 @@ class Subscribers extends APIEndpoint {
|
|||||||
$result[] = $subscriberResult;
|
$result[] = $subscriberResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
$listingData['filters']['segment'] = $this->wp->applyFilters(
|
$listingData['filters']['segment'] = $this->dynamicSegmentsFiltersLoader->add($listingData['filters']['segment'] ?? []);
|
||||||
'mailpoet_subscribers_listings_filters_segments',
|
|
||||||
$listingData['filters']['segment'] ?? []
|
|
||||||
);
|
|
||||||
|
|
||||||
return $this->successResponse(
|
return $this->successResponse(
|
||||||
$result, [
|
$result, [
|
||||||
|
@ -133,6 +133,7 @@ class ContainerConfigurator implements IContainerConfigurator {
|
|||||||
$container->autowire(\MailPoet\DynamicSegments\DynamicSegmentHooks::class);
|
$container->autowire(\MailPoet\DynamicSegments\DynamicSegmentHooks::class);
|
||||||
$container->autowire(\MailPoet\DynamicSegments\FreePluginConnectors\AddToNewslettersSegments::class);
|
$container->autowire(\MailPoet\DynamicSegments\FreePluginConnectors\AddToNewslettersSegments::class);
|
||||||
$container->autowire(\MailPoet\DynamicSegments\FreePluginConnectors\SendingNewslettersSubscribersFinder::class)->setPublic(true);
|
$container->autowire(\MailPoet\DynamicSegments\FreePluginConnectors\SendingNewslettersSubscribersFinder::class)->setPublic(true);
|
||||||
|
$container->autowire(\MailPoet\DynamicSegments\FreePluginConnectors\AddToSubscribersFilters::class);
|
||||||
$container->autowire(\MailPoet\DynamicSegments\Mappers\DBMapper::class);
|
$container->autowire(\MailPoet\DynamicSegments\Mappers\DBMapper::class);
|
||||||
$container->autowire(\MailPoet\DynamicSegments\Persistence\Loading\Loader::class);
|
$container->autowire(\MailPoet\DynamicSegments\Persistence\Loading\Loader::class);
|
||||||
$container->autowire(\MailPoet\DynamicSegments\Persistence\Loading\SubscribersCount::class);
|
$container->autowire(\MailPoet\DynamicSegments\Persistence\Loading\SubscribersCount::class);
|
||||||
|
@ -2,12 +2,9 @@
|
|||||||
|
|
||||||
namespace MailPoet\DynamicSegments;
|
namespace MailPoet\DynamicSegments;
|
||||||
|
|
||||||
use MailPoet\DynamicSegments\FreePluginConnectors\AddToSubscribersFilters;
|
|
||||||
use MailPoet\DynamicSegments\FreePluginConnectors\SubscribersBulkActionHandler;
|
use MailPoet\DynamicSegments\FreePluginConnectors\SubscribersBulkActionHandler;
|
||||||
use MailPoet\DynamicSegments\Mappers\DBMapper;
|
use MailPoet\DynamicSegments\Mappers\DBMapper;
|
||||||
use MailPoet\DynamicSegments\Persistence\Loading\Loader;
|
|
||||||
use MailPoet\DynamicSegments\Persistence\Loading\SingleSegmentLoader;
|
use MailPoet\DynamicSegments\Persistence\Loading\SingleSegmentLoader;
|
||||||
use MailPoet\DynamicSegments\Persistence\Loading\SubscribersCount;
|
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class DynamicSegmentHooks {
|
class DynamicSegmentHooks {
|
||||||
@ -19,11 +16,6 @@ class DynamicSegmentHooks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function init() {
|
public function init() {
|
||||||
$this->wp->addAction(
|
|
||||||
'mailpoet_subscribers_listings_filters_segments',
|
|
||||||
[$this, 'addDynamicFiltersToSubscribersListingsFilters']
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->wp->addAction(
|
$this->wp->addAction(
|
||||||
'mailpoet_subscribers_in_segment_apply_bulk_action_handlers',
|
'mailpoet_subscribers_in_segment_apply_bulk_action_handlers',
|
||||||
[$this, 'applySubscriberBulkAction']
|
[$this, 'applySubscriberBulkAction']
|
||||||
@ -35,11 +27,6 @@ class DynamicSegmentHooks {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addDynamicFiltersToSubscribersListingsFilters($segmentFilters) {
|
|
||||||
$newslettersAddSegments = new AddToSubscribersFilters(new Loader(new DBMapper()), new SubscribersCount());
|
|
||||||
return $newslettersAddSegments->add($segmentFilters);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function applySubscriberBulkAction(array $handlers) {
|
public function applySubscriberBulkAction(array $handlers) {
|
||||||
$handlers[] = new SubscribersBulkActionHandler();
|
$handlers[] = new SubscribersBulkActionHandler();
|
||||||
return $handlers;
|
return $handlers;
|
||||||
|
@ -7,6 +7,7 @@ use MailPoet\API\JSON\Response as APIResponse;
|
|||||||
use MailPoet\API\JSON\ResponseBuilders\SubscribersResponseBuilder;
|
use MailPoet\API\JSON\ResponseBuilders\SubscribersResponseBuilder;
|
||||||
use MailPoet\API\JSON\v1\Subscribers;
|
use MailPoet\API\JSON\v1\Subscribers;
|
||||||
use MailPoet\DI\ContainerWrapper;
|
use MailPoet\DI\ContainerWrapper;
|
||||||
|
use MailPoet\DynamicSegments\FreePluginConnectors\AddToSubscribersFilters;
|
||||||
use MailPoet\Entities\CustomFieldEntity;
|
use MailPoet\Entities\CustomFieldEntity;
|
||||||
use MailPoet\Entities\FormEntity;
|
use MailPoet\Entities\FormEntity;
|
||||||
use MailPoet\Entities\NewsletterEntity;
|
use MailPoet\Entities\NewsletterEntity;
|
||||||
@ -101,7 +102,8 @@ class SubscribersTest extends \MailPoetTest {
|
|||||||
$container->get(SubscribersRepository::class),
|
$container->get(SubscribersRepository::class),
|
||||||
$container->get(SubscribersResponseBuilder::class),
|
$container->get(SubscribersResponseBuilder::class),
|
||||||
$container->get(SubscriberListingRepository::class),
|
$container->get(SubscriberListingRepository::class),
|
||||||
$obfuscator
|
$obfuscator,
|
||||||
|
$container->get(AddToSubscribersFilters::class)
|
||||||
);
|
);
|
||||||
$this->obfuscatedEmail = $obfuscator->obfuscate('email');
|
$this->obfuscatedEmail = $obfuscator->obfuscate('email');
|
||||||
$this->obfuscatedSegments = $obfuscator->obfuscate('segments');
|
$this->obfuscatedSegments = $obfuscator->obfuscate('segments');
|
||||||
|
Reference in New Issue
Block a user