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