Allow returning more filters in response for dynamic segments
[MAILPOET-3469]
This commit is contained in:
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace MailPoet\API\JSON\ResponseBuilders;
|
namespace MailPoet\API\JSON\ResponseBuilders;
|
||||||
|
|
||||||
use MailPoet\Entities\DynamicSegmentFilterEntity;
|
|
||||||
use MailPoet\Entities\SegmentEntity;
|
use MailPoet\Entities\SegmentEntity;
|
||||||
use MailPoet\Entities\SubscriberEntity;
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
use MailPoet\Segments\SegmentDependencyValidator;
|
use MailPoet\Segments\SegmentDependencyValidator;
|
||||||
@ -39,12 +38,15 @@ class DynamicSegmentsResponseBuilder {
|
|||||||
public function build(SegmentEntity $segmentEntity) {
|
public function build(SegmentEntity $segmentEntity) {
|
||||||
$data = $this->segmentsResponseBuilder->build($segmentEntity);
|
$data = $this->segmentsResponseBuilder->build($segmentEntity);
|
||||||
$data = $this->addMissingPluginProperties($segmentEntity, $data);
|
$data = $this->addMissingPluginProperties($segmentEntity, $data);
|
||||||
// So far we allow dynamic segments to have only one filter
|
$dynamicFilters = $segmentEntity->getDynamicFilters();
|
||||||
$filter = $segmentEntity->getDynamicFilters()->first();
|
$filters = [];
|
||||||
if (!$filter instanceof DynamicSegmentFilterEntity) {
|
foreach ($dynamicFilters as $dynamicFilter) {
|
||||||
return $data;
|
$filter = $dynamicFilter->getFilterData()->getData();
|
||||||
|
$filter['id'] = $dynamicFilter->getId();
|
||||||
|
$filters[] = $filter;
|
||||||
}
|
}
|
||||||
return array_merge($data, $filter->getFilterData()->getData() ?? []);
|
$data['filters'] = $filters;
|
||||||
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function buildForListing(array $segments): array {
|
public function buildForListing(array $segments): array {
|
||||||
|
Reference in New Issue
Block a user