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