diff --git a/mailpoet/lib/Automation/Engine/Endpoints/Workflows/WorkflowsGetEndpoint.php b/mailpoet/lib/Automation/Engine/Endpoints/Workflows/WorkflowsGetEndpoint.php index 269bae5698..4269efca1d 100644 --- a/mailpoet/lib/Automation/Engine/Endpoints/Workflows/WorkflowsGetEndpoint.php +++ b/mailpoet/lib/Automation/Engine/Endpoints/Workflows/WorkflowsGetEndpoint.php @@ -7,6 +7,7 @@ use MailPoet\API\REST\Request; use MailPoet\API\REST\Response; use MailPoet\Automation\Engine\API\Endpoint; use MailPoet\Automation\Engine\Data\Workflow; +use MailPoet\Automation\Engine\Data\WorkflowStatistics; use MailPoet\Automation\Engine\Storage\WorkflowStatisticsStorage; use MailPoet\Automation\Engine\Storage\WorkflowStorage; use MailPoet\Validator\Builder; @@ -29,8 +30,9 @@ class WorkflowsGetEndpoint extends Endpoint { public function handle(Request $request): Response { $status = $request->getParam('status') ? (array)$request->getParam('status') : null; $workflows = $this->workflowStorage->getWorkflows($status); - return new Response(array_map(function (Workflow $workflow) { - return $this->buildWorkflow($workflow); + $statistics = $this->statisticsStorage->getWorkflowStatisticsForWorkflows(...$workflows); + return new Response(array_map(function (Workflow $workflow) use ($statistics) { + return $this->buildWorkflow($workflow, $statistics[$workflow->getId()]); }, $workflows)); } @@ -40,14 +42,14 @@ class WorkflowsGetEndpoint extends Endpoint { ]; } - private function buildWorkflow(Workflow $workflow): array { + private function buildWorkflow(Workflow $workflow, WorkflowStatistics $statistics): array { return [ 'id' => $workflow->getId(), 'name' => $workflow->getName(), 'status' => $workflow->getStatus(), 'created_at' => $workflow->getCreatedAt()->format(DateTimeImmutable::W3C), 'updated_at' => $workflow->getUpdatedAt()->format(DateTimeImmutable::W3C), - 'stats' => $this->statisticsStorage->getWorkflowStats($workflow->getId())->toArray(), + 'stats' => $statistics->toArray(), 'activated_at' => $workflow->getActivatedAt() ? $workflow->getActivatedAt()->format(DateTimeImmutable::W3C) : null, 'author' => [ 'id' => $workflow->getAuthor()->ID,