From eb0e7e317fab3b31096837bdd2495e6f0cfa40a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lys=C3=BD?= Date: Wed, 2 Jun 2021 19:07:53 +0200 Subject: [PATCH] Allow returning more filters in response for dynamic segments [MAILPOET-3469] --- .../DynamicSegmentsResponseBuilder.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/API/JSON/ResponseBuilders/DynamicSegmentsResponseBuilder.php b/lib/API/JSON/ResponseBuilders/DynamicSegmentsResponseBuilder.php index 0e1cb9b9d8..1cce965d33 100644 --- a/lib/API/JSON/ResponseBuilders/DynamicSegmentsResponseBuilder.php +++ b/lib/API/JSON/ResponseBuilders/DynamicSegmentsResponseBuilder.php @@ -2,7 +2,6 @@ namespace MailPoet\API\JSON\ResponseBuilders; -use MailPoet\Entities\DynamicSegmentFilterEntity; use MailPoet\Entities\SegmentEntity; use MailPoet\Entities\SubscriberEntity; use MailPoet\Segments\SegmentDependencyValidator; @@ -39,12 +38,15 @@ class DynamicSegmentsResponseBuilder { public function build(SegmentEntity $segmentEntity) { $data = $this->segmentsResponseBuilder->build($segmentEntity); $data = $this->addMissingPluginProperties($segmentEntity, $data); - // So far we allow dynamic segments to have only one filter - $filter = $segmentEntity->getDynamicFilters()->first(); - if (!$filter instanceof DynamicSegmentFilterEntity) { - return $data; + $dynamicFilters = $segmentEntity->getDynamicFilters(); + $filters = []; + foreach ($dynamicFilters as $dynamicFilter) { + $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 {