Add repository for DynamicSegmentFilters
[MAILPOET-3427]
This commit is contained in:
@@ -285,6 +285,7 @@ class ContainerConfigurator implements IContainerConfigurator {
|
|||||||
$container->autowire(\MailPoet\Segments\DynamicSegments\DynamicSegmentsListingRepository::class)->setPublic(true);
|
$container->autowire(\MailPoet\Segments\DynamicSegments\DynamicSegmentsListingRepository::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\Segments\DynamicSegments\FilterFactory::class)->setPublic(true);
|
$container->autowire(\MailPoet\Segments\DynamicSegments\FilterFactory::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\Segments\DynamicSegments\FilterHandler::class)->setPublic(true);
|
$container->autowire(\MailPoet\Segments\DynamicSegments\FilterHandler::class)->setPublic(true);
|
||||||
|
$container->autowire(\MailPoet\Segments\DynamicSegments\DynamicSegmentFilterRepository::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\Segments\DynamicSegments\Filters\EmailAction::class)->setPublic(true);
|
$container->autowire(\MailPoet\Segments\DynamicSegments\Filters\EmailAction::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\Segments\DynamicSegments\Filters\EmailOpensAbsoluteCountAction::class)->setPublic(true);
|
$container->autowire(\MailPoet\Segments\DynamicSegments\Filters\EmailOpensAbsoluteCountAction::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\Segments\DynamicSegments\Filters\MailPoetCustomFields::class)->setPublic(true);
|
$container->autowire(\MailPoet\Segments\DynamicSegments\Filters\MailPoetCustomFields::class)->setPublic(true);
|
||||||
|
@@ -0,0 +1,37 @@
|
|||||||
|
<?php declare(strict_types = 1);
|
||||||
|
|
||||||
|
namespace MailPoet\Segments\DynamicSegments;
|
||||||
|
|
||||||
|
use MailPoet\Doctrine\Repository;
|
||||||
|
use MailPoet\Entities\DynamicSegmentFilterEntity;
|
||||||
|
use MailPoetVendor\Doctrine\ORM\EntityManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @extends Repository<DynamicSegmentFilterEntity>
|
||||||
|
*/
|
||||||
|
class DynamicSegmentFilterRepository extends Repository {
|
||||||
|
public function __construct(
|
||||||
|
EntityManager $entityManager
|
||||||
|
) {
|
||||||
|
parent::__construct($entityManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getEntityClassName() {
|
||||||
|
return DynamicSegmentFilterEntity::class;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function findOnyBySegmentTypeAndAction(string $segmentType, string $action): ?DynamicSegmentFilterEntity {
|
||||||
|
$segmentTypeLength = strlen($segmentType);
|
||||||
|
$actionLength = strlen($action);
|
||||||
|
return $this->entityManager->createQueryBuilder()
|
||||||
|
->select('dsf')
|
||||||
|
->from(DynamicSegmentFilterEntity::class, 'dsf')
|
||||||
|
->where('dsf.filterData.filterData LIKE :segmentType')
|
||||||
|
->andWhere('dsf.filterData.filterData LIKE :action')
|
||||||
|
->setParameter('segmentType', "%s:11:\"segmentType\";s:{$segmentTypeLength}:\"{$segmentType}\"%")
|
||||||
|
->setParameter('action', "%s:6:\"action\";s:{$actionLength}:\"{$action}\"%")
|
||||||
|
->setMaxResults(1)
|
||||||
|
->getQuery()
|
||||||
|
->getOneOrNullResult();
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user