Use scheduled task subscriber listing repository in API endpoint

[MAILPOET-4006]
This commit is contained in:
Rostislav Wolny
2022-03-22 13:23:12 +01:00
committed by Veljko V
parent 4f471d26bc
commit 86164fd32e
5 changed files with 66 additions and 24 deletions

View File

@@ -0,0 +1,30 @@
<?php declare(strict_types=1);
namespace MailPoet\API\JSON\ResponseBuilders;
use MailPoet\Entities\ScheduledTaskSubscriberEntity;
class ScheduledTaskSubscriberResponseBuilder {
public function build(ScheduledTaskSubscriberEntity $scheduledSubscriber) {
$subscriber = $scheduledSubscriber->getSubscriber();
$task = $scheduledSubscriber->getTask();
return [
'processed' => $scheduledSubscriber->getProcessed(),
'failed' => $scheduledSubscriber->getFailed(),
'error' => $scheduledSubscriber->getError(),
'taskId' => $task ? $task->getId() : null,
'email' => $subscriber ? $subscriber->getEmail() : null,
'subscriberId' => $subscriber ? $subscriber->getId() : null,
'firstName' => $subscriber ? $subscriber->getFirstName() : null,
'lastName' => $subscriber ? $subscriber->getLastName() : null,
];
}
public function buildForListing(array $scheduledSubscribers) {
$data = [];
foreach ($scheduledSubscribers as $scheduledSubscriber) {
$data[] = $this->build($scheduledSubscriber);
}
return $data;
}
}