diff --git a/mailpoet/lib/Automation/Integrations/MailPoet/Analytics/Controller/AutomationEmailController.php b/mailpoet/lib/Automation/Integrations/MailPoet/Analytics/Controller/AutomationTimeSpanController.php similarity index 85% rename from mailpoet/lib/Automation/Integrations/MailPoet/Analytics/Controller/AutomationEmailController.php rename to mailpoet/lib/Automation/Integrations/MailPoet/Analytics/Controller/AutomationTimeSpanController.php index fff1cd642f..1ecb09c48d 100644 --- a/mailpoet/lib/Automation/Integrations/MailPoet/Analytics/Controller/AutomationEmailController.php +++ b/mailpoet/lib/Automation/Integrations/MailPoet/Analytics/Controller/AutomationTimeSpanController.php @@ -8,8 +8,7 @@ use MailPoet\Automation\Integrations\MailPoet\Actions\SendEmailAction; use MailPoet\Entities\NewsletterEntity; use MailPoet\Newsletter\NewslettersRepository; -class AutomationEmailController { - +class AutomationTimeSpanController { /** @var AutomationStorage */ private $automationStorage; @@ -25,13 +24,7 @@ class AutomationEmailController { $this->newslettersRepository = $newslettersRepository; } - /** - * @param Automation $automation - * @param \DateTimeImmutable $after - * @param \DateTimeImmutable $before - * @return NewsletterEntity[] - */ - public function getAutomationEmailsInTimeSpan(Automation $automation, \DateTimeImmutable $after, \DateTimeImmutable $before): array { + public function getAutomationsInTimespan(Automation $automation, \DateTimeImmutable $after, \DateTimeImmutable $before): array { $automationVersions = $this->automationStorage->getAutomationVersionDates($automation->getId()); usort( $automationVersions, @@ -55,8 +48,18 @@ class AutomationEmailController { $versionIds[] = (int)$automationVersion['id']; } - $automations = $this->automationStorage->getAutomationWithDifferentVersions($versionIds); - return $this->getEmailsFromAutomations($automations); + return count($versionIds) > 0 ? $this->automationStorage->getAutomationWithDifferentVersions($versionIds) : []; + } + + /** + * @param Automation $automation + * @param \DateTimeImmutable $after + * @param \DateTimeImmutable $before + * @return NewsletterEntity[] + */ + public function getAutomationEmailsInTimeSpan(Automation $automation, \DateTimeImmutable $after, \DateTimeImmutable $before): array { + $automations = $this->getAutomationsInTimespan($automation, $after, $before); + return count($automations) > 0 ? $this->getEmailsFromAutomations($automations) : []; } /** diff --git a/mailpoet/lib/Automation/Integrations/MailPoet/Analytics/Controller/OverviewStatisticsController.php b/mailpoet/lib/Automation/Integrations/MailPoet/Analytics/Controller/OverviewStatisticsController.php index 39015fecb9..3f2bec618d 100644 --- a/mailpoet/lib/Automation/Integrations/MailPoet/Analytics/Controller/OverviewStatisticsController.php +++ b/mailpoet/lib/Automation/Integrations/MailPoet/Analytics/Controller/OverviewStatisticsController.php @@ -21,24 +21,24 @@ class OverviewStatisticsController { /** @var NewsletterUrl */ private $newsletterUrl; - /** @var AutomationEmailController */ - private $automationEmailController; + /** @var AutomationTimeSpanController */ + private $automationTimeSpanController; public function __construct( NewslettersRepository $newslettersRepository, NewsletterStatisticsRepository $newsletterStatisticsRepository, NewsletterUrl $newsletterUrl, - AutomationEmailController $automationEmailController + AutomationTimeSpanController $automationTimeSpanController ) { $this->newslettersRepository = $newslettersRepository; $this->newsletterStatisticsRepository = $newsletterStatisticsRepository; $this->newsletterUrl = $newsletterUrl; - $this->automationEmailController = $automationEmailController; + $this->automationTimeSpanController = $automationTimeSpanController; } public function getStatisticsForAutomation(Automation $automation, QueryWithCompare $query): array { - $currentEmails = $this->automationEmailController->getAutomationEmailsInTimeSpan($automation, $query->getAfter(), $query->getBefore()); - $previousEmails = $this->automationEmailController->getAutomationEmailsInTimeSpan($automation, $query->getCompareWithAfter(), $query->getCompareWithBefore()); + $currentEmails = $this->automationTimeSpanController->getAutomationEmailsInTimeSpan($automation, $query->getAfter(), $query->getBefore()); + $previousEmails = $this->automationTimeSpanController->getAutomationEmailsInTimeSpan($automation, $query->getCompareWithAfter(), $query->getCompareWithBefore()); $data = [ 'sent' => ['current' => 0, 'previous' => 0], 'opened' => ['current' => 0, 'previous' => 0], diff --git a/mailpoet/lib/DI/ContainerConfigurator.php b/mailpoet/lib/DI/ContainerConfigurator.php index c90c412518..8876826e4c 100644 --- a/mailpoet/lib/DI/ContainerConfigurator.php +++ b/mailpoet/lib/DI/ContainerConfigurator.php @@ -199,7 +199,7 @@ class ContainerConfigurator implements IContainerConfigurator { $container->autowire(\MailPoet\Automation\Integrations\MailPoet\Analytics\Analytics::class)->setPublic(true); $container->autowire(\MailPoet\Automation\Integrations\MailPoet\Analytics\Endpoints\AutomationFlowEndpoint::class)->setPublic(true); $container->autowire(\MailPoet\Automation\Integrations\MailPoet\Analytics\Endpoints\OverviewEndpoint::class)->setPublic(true); - $container->autowire(\MailPoet\Automation\Integrations\MailPoet\Analytics\Controller\AutomationEmailController::class)->setPublic(true); + $container->autowire(\MailPoet\Automation\Integrations\MailPoet\Analytics\Controller\AutomationTimeSpanController::class)->setPublic(true); $container->autowire(\MailPoet\Automation\Integrations\MailPoet\Analytics\Controller\OverviewStatisticsController::class)->setPublic(true); $container->autowire(\MailPoet\Automation\Integrations\MailPoet\Analytics\Controller\FreeOrderController::class)->setPublic(true); $container->autowire(\MailPoet\Automation\Integrations\MailPoet\Analytics\Factories\OrderControllerFactory::class)->setPublic(true); diff --git a/mailpoet/tests/integration/Automation/Integrations/MailPoet/Analytics/Controller/AutomationEmailControllerTest.php b/mailpoet/tests/integration/Automation/Integrations/MailPoet/Analytics/Controller/AutomationTimeSpanControllerTest.php similarity index 96% rename from mailpoet/tests/integration/Automation/Integrations/MailPoet/Analytics/Controller/AutomationEmailControllerTest.php rename to mailpoet/tests/integration/Automation/Integrations/MailPoet/Analytics/Controller/AutomationTimeSpanControllerTest.php index 1988ea4fc9..a3b65ba33c 100644 --- a/mailpoet/tests/integration/Automation/Integrations/MailPoet/Analytics/Controller/AutomationEmailControllerTest.php +++ b/mailpoet/tests/integration/Automation/Integrations/MailPoet/Analytics/Controller/AutomationTimeSpanControllerTest.php @@ -7,13 +7,13 @@ use MailPoet\Automation\Engine\Data\NextStep; use MailPoet\Automation\Engine\Data\Step; use MailPoet\Automation\Engine\Storage\AutomationStorage; use MailPoet\Automation\Integrations\MailPoet\Actions\SendEmailAction; -use MailPoet\Automation\Integrations\MailPoet\Analytics\Controller\AutomationEmailController; +use MailPoet\Automation\Integrations\MailPoet\Analytics\Controller\AutomationTimeSpanController; use MailPoet\Entities\NewsletterEntity; use MailPoet\Newsletter\NewslettersRepository; -class AutomationEmailControllerTest extends \MailPoetTest { +class AutomationTimeSpanControllerTest extends \MailPoetTest { - /** @var AutomationEmailController */ + /** @var AutomationTimeSpanController */ private $testee; /** @var NewslettersRepository */ @@ -23,7 +23,7 @@ class AutomationEmailControllerTest extends \MailPoetTest { private $automationStorage; public function _before() { - $this->testee = $this->diContainer->get(AutomationEmailController::class); + $this->testee = $this->diContainer->get(AutomationTimeSpanController::class); $this->newsletterRepository = $this->diContainer->get(NewslettersRepository::class); $this->automationStorage = $this->diContainer->get(AutomationStorage::class); }