Move getting segments to the new class
[MAILPOET-4292]
This commit is contained in:
@@ -24,6 +24,9 @@ class API {
|
|||||||
/** @var CustomFields */
|
/** @var CustomFields */
|
||||||
private $customFields;
|
private $customFields;
|
||||||
|
|
||||||
|
/** @var Segments */
|
||||||
|
private $segments;
|
||||||
|
|
||||||
/** @var Subscribers */
|
/** @var Subscribers */
|
||||||
private $subscribers;
|
private $subscribers;
|
||||||
|
|
||||||
@@ -33,11 +36,13 @@ class API {
|
|||||||
public function __construct(
|
public function __construct(
|
||||||
RequiredCustomFieldValidator $requiredCustomFieldValidator,
|
RequiredCustomFieldValidator $requiredCustomFieldValidator,
|
||||||
CustomFields $customFields,
|
CustomFields $customFields,
|
||||||
|
Segments $segments,
|
||||||
Subscribers $subscribers,
|
Subscribers $subscribers,
|
||||||
Changelog $changelog
|
Changelog $changelog
|
||||||
) {
|
) {
|
||||||
$this->requiredCustomFieldValidator = $requiredCustomFieldValidator;
|
$this->requiredCustomFieldValidator = $requiredCustomFieldValidator;
|
||||||
$this->customFields = $customFields;
|
$this->customFields = $customFields;
|
||||||
|
$this->segments = $segments;
|
||||||
$this->subscribers = $subscribers;
|
$this->subscribers = $subscribers;
|
||||||
$this->changelog = $changelog;
|
$this->changelog = $changelog;
|
||||||
}
|
}
|
||||||
@@ -116,9 +121,8 @@ class API {
|
|||||||
return $subscriber->withCustomFields()->withSubscriptions()->asArray();
|
return $subscriber->withCustomFields()->withSubscriptions()->asArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getLists() {
|
public function getLists(): array {
|
||||||
return Segment::where('type', Segment::TYPE_DEFAULT)
|
return $this->segments->getAll();
|
||||||
->findArray();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addSubscriber(array $subscriber, $listIds = [], $options = []) {
|
public function addSubscriber(array $subscriber, $listIds = [], $options = []) {
|
||||||
|
44
mailpoet/lib/API/MP/v1/Segments.php
Normal file
44
mailpoet/lib/API/MP/v1/Segments.php
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<?php declare(strict_types = 1);
|
||||||
|
|
||||||
|
namespace MailPoet\API\MP\v1;
|
||||||
|
|
||||||
|
use MailPoet\Entities\SegmentEntity;
|
||||||
|
use MailPoet\Segments\SegmentsRepository;
|
||||||
|
|
||||||
|
class Segments {
|
||||||
|
private const DATE_FORMAT = 'Y-m-d H:i:s';
|
||||||
|
|
||||||
|
/** @var SegmentsRepository */
|
||||||
|
private $segmentsRepository;
|
||||||
|
|
||||||
|
public function __construct (
|
||||||
|
SegmentsRepository $segmentsRepository
|
||||||
|
) {
|
||||||
|
$this->segmentsRepository = $segmentsRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getAll(): array {
|
||||||
|
$segments = $this->segmentsRepository->findBy(['type' => SegmentEntity::TYPE_DEFAULT], ['id' => 'asc']);
|
||||||
|
$result = [];
|
||||||
|
foreach ($segments as $segment) {
|
||||||
|
$result[] = $this->buildItem($segment);
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param SegmentEntity $segment
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
private function buildItem(SegmentEntity $segment): array {
|
||||||
|
return [
|
||||||
|
'id' => (string)$segment->getId(), // (string) for BC
|
||||||
|
'name' => $segment->getName(),
|
||||||
|
'type' => $segment->getType(),
|
||||||
|
'description' => $segment->getDescription(),
|
||||||
|
'created_at' => ($createdAt = $segment->getCreatedAt()) ? $createdAt->format(self::DATE_FORMAT) : null,
|
||||||
|
'updated_at' => $segment->getUpdatedAt()->format(self::DATE_FORMAT),
|
||||||
|
'deleted_at' => ($deletedAt = $segment->getDeletedAt()) ? $deletedAt->format(self::DATE_FORMAT) : null,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
@@ -61,6 +61,7 @@ class ContainerConfigurator implements IContainerConfigurator {
|
|||||||
$container->autowire(\MailPoet\API\MP\v1\CustomFields::class)->setPublic(true);
|
$container->autowire(\MailPoet\API\MP\v1\CustomFields::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\API\MP\v1\API::class)->setPublic(true);
|
$container->autowire(\MailPoet\API\MP\v1\API::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\API\MP\v1\Subscribers::class)->setPublic(true);
|
$container->autowire(\MailPoet\API\MP\v1\Subscribers::class)->setPublic(true);
|
||||||
|
$container->autowire(\MailPoet\API\MP\v1\Segments::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\API\JSON\v1\Analytics::class)->setPublic(true);
|
$container->autowire(\MailPoet\API\JSON\v1\Analytics::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\API\JSON\v1\AutomatedLatestContent::class)->setPublic(true);
|
$container->autowire(\MailPoet\API\JSON\v1\AutomatedLatestContent::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\API\JSON\v1\AutomaticEmails::class)->setPublic(true);
|
$container->autowire(\MailPoet\API\JSON\v1\AutomaticEmails::class)->setPublic(true);
|
||||||
|
Reference in New Issue
Block a user