Check workflow status validity

[MAILPOET-4454]
This commit is contained in:
Jan Jakes
2022-07-04 12:56:06 +02:00
committed by Jan Jakeš
parent b85b2b188b
commit 9e56609ee0

View File

@@ -3,6 +3,7 @@
namespace MailPoet\Automation\Engine\Builder; namespace MailPoet\Automation\Engine\Builder;
use MailPoet\Automation\Engine\Exceptions; use MailPoet\Automation\Engine\Exceptions;
use MailPoet\Automation\Engine\Exceptions\UnexpectedValueException;
use MailPoet\Automation\Engine\Storage\WorkflowStorage; use MailPoet\Automation\Engine\Storage\WorkflowStorage;
use MailPoet\Automation\Engine\Workflows\Workflow; use MailPoet\Automation\Engine\Workflows\Workflow;
@@ -27,6 +28,7 @@ class UpdateWorkflowController {
} }
if (array_key_exists('status', $data)) { if (array_key_exists('status', $data)) {
$this->checkWorkflowStatus($data['status']);
$workflow->setStatus($data['status']); $workflow->setStatus($data['status']);
$this->storage->updateWorkflow($workflow); $this->storage->updateWorkflow($workflow);
} }
@@ -37,4 +39,10 @@ class UpdateWorkflowController {
} }
return $workflow; return $workflow;
} }
private function checkWorkflowStatus(string $status): void {
if (!in_array($status, [Workflow::STATUS_ACTIVE, Workflow::STATUS_INACTIVE, Workflow::STATUS_DRAFT], true)) {
throw UnexpectedValueException::create()->withMessage(__(sprintf('Invalid status: %s', $status), 'mailpoet'));
}
}
} }