Return available emails in free endpoint controller

[PREMIUM-232]
This commit is contained in:
David Remer
2023-07-17 09:41:44 +03:00
committed by Aschepikov
parent 1ede595dbb
commit be669a5f61

View File

@ -25,19 +25,25 @@ class FreeOrderController implements OrderController {
/** @var WordPress */
private $wp;
/** @var AutomationTimeSpanController */
private $automationTimeSpanController;
public function __construct(
NewslettersRepository $newsletterRepository,
SubscribersRepository $subscribersRepository,
WooCommerce $woocommerce,
WordPress $wp
WordPress $wp,
AutomationTimeSpanController $automationTimeSpanController
) {
$this->newslettersRepository = $newsletterRepository;
$this->subscribersRepository = $subscribersRepository;
$this->woocommerce = $woocommerce;
$this->wp = $wp;
$this->automationTimeSpanController = $automationTimeSpanController;
}
public function getOrdersForAutomation(Automation $automation, Query $query): array {
$allEmails = $this->automationTimeSpanController->getAutomationEmailsInTimeSpan($automation, $query->getAfter(), $query->getBefore());
$items = [
$this->addItem($automation, $query),
$this->addItem($automation, $query),
@ -47,6 +53,15 @@ class FreeOrderController implements OrderController {
return [
'results' => count($items),
'items' => $items,
'emails' => array_map(
function(NewsletterEntity $email): array {
return [
'id' => (string)$email->getId(),
'name' => $email->getSubject(),
];
},
$allEmails
),
];
}