Move automation completion to step scheduler

[MAILPOET-5569]
This commit is contained in:
Jan Jakes
2023-08-17 15:31:10 +02:00
committed by Aschepikov
parent b7ef250511
commit e3da509f70
2 changed files with 14 additions and 15 deletions

View File

@@ -2,6 +2,7 @@
namespace MailPoet\Automation\Engine\Control;
use MailPoet\Automation\Engine\Data\AutomationRun;
use MailPoet\Automation\Engine\Data\StepRunArgs;
use MailPoet\Automation\Engine\Hooks;
use MailPoet\Automation\Engine\Storage\AutomationRunStorage;
@@ -23,8 +24,15 @@ class StepScheduler {
public function scheduleNextStep(StepRunArgs $args, int $timestamp = null): int {
$runId = $args->getAutomationRun()->getId();
$nextStep = $args->getStep()->getNextSteps()[0] ?? null;
$nextStepId = $nextStep ? $nextStep->getId() : null;
// complete the automation run if there are no more steps
if (count($args->getStep()->getNextSteps()) === 0) {
$this->automationRunStorage->updateNextStep($runId, null);
$this->automationRunStorage->updateStatus($runId, AutomationRun::STATUS_COMPLETE);
return 0;
}
$nextStepId = $args->getStep()->getNextSteps()[0]->getId();
$data = $this->getActionData($runId, $nextStepId);
$id = $this->scheduleStepAction($data, $timestamp);
$this->automationRunStorage->updateNextStep($runId, $nextStepId);
@@ -49,7 +57,7 @@ class StepScheduler {
: $this->actionScheduler->schedule($timestamp, Hooks::AUTOMATION_STEP, $data);
}
private function getActionData(int $runId, ?string $stepId): array {
private function getActionData(int $runId, string $stepId): array {
return [
[
'automation_run_id' => $runId,