Files
piratepoet/mailpoet/lib/API/MP/v1/Segments.php
Jan Lysý 1a9845c916 Move getting segments to the new class
[MAILPOET-4292]
2022-07-14 11:29:09 +02:00

45 lines
1.3 KiB
PHP

<?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,
];
}
}