Refactor dynamic segments get endpoint to doctrine

[MAILPOET-3177]
This commit is contained in:
Rostislav Wolny
2021-03-02 16:27:08 +01:00
committed by Veljko V
parent d42752fa99
commit bd63ae508f
4 changed files with 83 additions and 45 deletions

View File

@@ -2,6 +2,7 @@
namespace MailPoet\API\JSON\ResponseBuilders;
use MailPoet\Entities\DynamicSegmentFilterEntity;
use MailPoet\Entities\SegmentEntity;
use MailPoet\Entities\SubscriberEntity;
use MailPoet\Segments\SegmentSubscribersRepository;
@@ -29,6 +30,16 @@ class DynamicSegmentsResponseBuilder {
$this->wp = $wp;
}
public function build(SegmentEntity $segmentEntity) {
$data = $this->segmentsResponseBuilder->build($segmentEntity);
// So far we allow dynamic segments to have only one filter
$filter = $segmentEntity->getDynamicFilters()->first();
if (!$filter instanceof DynamicSegmentFilterEntity) {
return $data;
}
return array_merge($data, $filter->getFilterData() ?? []);
}
public function buildForListing(array $segments): array {
$data = [];
foreach ($segments as $segment) {