Revert valid operator methods back to instance methods
MAILPOET-4989
This commit is contained in:
committed by
Aschepikov
parent
8de46db560
commit
4d5b4885fe
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace MailPoet\Segments\DynamicSegments;
|
namespace MailPoet\Segments\DynamicSegments;
|
||||||
|
|
||||||
|
use MailPoet\DI\ContainerWrapper;
|
||||||
use MailPoet\Entities\DynamicSegmentFilterData;
|
use MailPoet\Entities\DynamicSegmentFilterData;
|
||||||
use MailPoet\Segments\DynamicSegments\Exceptions\InvalidFilterException;
|
use MailPoet\Segments\DynamicSegments\Exceptions\InvalidFilterException;
|
||||||
use MailPoet\Segments\DynamicSegments\Filters\AutomationsEvents;
|
use MailPoet\Segments\DynamicSegments\Filters\AutomationsEvents;
|
||||||
@@ -35,13 +36,21 @@ class FilterDataMapper {
|
|||||||
/** @var WPFunctions */
|
/** @var WPFunctions */
|
||||||
private $wp;
|
private $wp;
|
||||||
|
|
||||||
|
/** @var DateFilterHelper */
|
||||||
|
private $dateFilterHelper;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
WPFunctions $wp = null
|
WPFunctions $wp = null,
|
||||||
|
DateFilterHelper $dateFilterHelper = null
|
||||||
) {
|
) {
|
||||||
if (!$wp) {
|
if (!$wp) {
|
||||||
$wp = WPFunctions::get();
|
$wp = WPFunctions::get();
|
||||||
}
|
}
|
||||||
|
if (!$dateFilterHelper) {
|
||||||
|
$dateFilterHelper = ContainerWrapper::getInstance()->get(DateFilterHelper::class);
|
||||||
|
}
|
||||||
$this->wp = $wp;
|
$this->wp = $wp;
|
||||||
|
$this->dateFilterHelper = $dateFilterHelper;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -228,7 +237,7 @@ class FilterDataMapper {
|
|||||||
if (empty($data['operator'])) {
|
if (empty($data['operator'])) {
|
||||||
throw new InvalidFilterException('Missing operator', InvalidFilterException::MISSING_OPERATOR);
|
throw new InvalidFilterException('Missing operator', InvalidFilterException::MISSING_OPERATOR);
|
||||||
}
|
}
|
||||||
if (!in_array($data['operator'], DateFilterHelper::getValidOperators())) {
|
if (!in_array($data['operator'], $this->dateFilterHelper->getValidOperators())) {
|
||||||
throw new InvalidFilterException('Invalid operator', InvalidFilterException::MISSING_OPERATOR);
|
throw new InvalidFilterException('Invalid operator', InvalidFilterException::MISSING_OPERATOR);
|
||||||
}
|
}
|
||||||
return new DynamicSegmentFilterData(DynamicSegmentFilterData::TYPE_USER_ROLE, $data['action'], [
|
return new DynamicSegmentFilterData(DynamicSegmentFilterData::TYPE_USER_ROLE, $data['action'], [
|
||||||
|
@@ -16,14 +16,14 @@ class DateFilterHelper {
|
|||||||
const IN_THE_LAST = 'inTheLast';
|
const IN_THE_LAST = 'inTheLast';
|
||||||
const NOT_IN_THE_LAST = 'notInTheLast';
|
const NOT_IN_THE_LAST = 'notInTheLast';
|
||||||
|
|
||||||
public static function getValidOperators(): array {
|
public function getValidOperators(): array {
|
||||||
return array_merge(
|
return array_merge(
|
||||||
self::getAbsoluteDateOperators(),
|
$this->getAbsoluteDateOperators(),
|
||||||
self::getRelativeDateOperators()
|
$this->getRelativeDateOperators()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getAbsoluteDateOperators(): array {
|
public function getAbsoluteDateOperators(): array {
|
||||||
return [
|
return [
|
||||||
self::BEFORE,
|
self::BEFORE,
|
||||||
self::AFTER,
|
self::AFTER,
|
||||||
@@ -34,7 +34,7 @@ class DateFilterHelper {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getRelativeDateOperators(): array {
|
public function getRelativeDateOperators(): array {
|
||||||
return [
|
return [
|
||||||
self::IN_THE_LAST,
|
self::IN_THE_LAST,
|
||||||
self::NOT_IN_THE_LAST,
|
self::NOT_IN_THE_LAST,
|
||||||
@@ -68,7 +68,7 @@ class DateFilterHelper {
|
|||||||
public function getOperatorFromFilter(DynamicSegmentFilterEntity $filter): string {
|
public function getOperatorFromFilter(DynamicSegmentFilterEntity $filter): string {
|
||||||
$filterData = $filter->getFilterData();
|
$filterData = $filter->getFilterData();
|
||||||
$operator = $filterData->getParam('operator');
|
$operator = $filterData->getParam('operator');
|
||||||
if (!is_string($operator) || !in_array($operator, self::getValidOperators())) {
|
if (!is_string($operator) || !in_array($operator, $this->getValidOperators())) {
|
||||||
throw new InvalidFilterException('Incorrect value for operator', InvalidFilterException::MISSING_VALUE);
|
throw new InvalidFilterException('Incorrect value for operator', InvalidFilterException::MISSING_VALUE);
|
||||||
}
|
}
|
||||||
return $operator;
|
return $operator;
|
||||||
|
@@ -5,6 +5,7 @@ namespace MailPoet\Segments\DynamicSegments;
|
|||||||
use MailPoet\Entities\CustomFieldEntity;
|
use MailPoet\Entities\CustomFieldEntity;
|
||||||
use MailPoet\Entities\DynamicSegmentFilterData;
|
use MailPoet\Entities\DynamicSegmentFilterData;
|
||||||
use MailPoet\Segments\DynamicSegments\Exceptions\InvalidFilterException;
|
use MailPoet\Segments\DynamicSegments\Exceptions\InvalidFilterException;
|
||||||
|
use MailPoet\Segments\DynamicSegments\Filters\DateFilterHelper;
|
||||||
use MailPoet\Segments\DynamicSegments\Filters\EmailAction;
|
use MailPoet\Segments\DynamicSegments\Filters\EmailAction;
|
||||||
use MailPoet\Segments\DynamicSegments\Filters\EmailActionClickAny;
|
use MailPoet\Segments\DynamicSegments\Filters\EmailActionClickAny;
|
||||||
use MailPoet\Segments\DynamicSegments\Filters\EmailOpensAbsoluteCountAction;
|
use MailPoet\Segments\DynamicSegments\Filters\EmailOpensAbsoluteCountAction;
|
||||||
@@ -32,7 +33,12 @@ class FilterDataMapperTest extends \MailPoetUnitTest {
|
|||||||
$wp = $this->makeEmpty(WPFunctions::class, [
|
$wp = $this->makeEmpty(WPFunctions::class, [
|
||||||
'hasFilter' => false,
|
'hasFilter' => false,
|
||||||
]);
|
]);
|
||||||
$this->mapper = new FilterDataMapper($wp);
|
|
||||||
|
$filterHelper = $this->getMockBuilder(DateFilterHelper::class)
|
||||||
|
->setMethodsExcept(['getAbsoluteDateOperators', 'getRelativeDateOperators', 'getValidOperators'])
|
||||||
|
->getMock();
|
||||||
|
|
||||||
|
$this->mapper = new FilterDataMapper($wp, $filterHelper);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItChecksFiltersArePresent(): void {
|
public function testItChecksFiltersArePresent(): void {
|
||||||
|
Reference in New Issue
Block a user