Add status parameter to getWorkflows method

[MAILPOET-4417]
This commit is contained in:
David Remer
2022-08-10 13:20:01 +03:00
committed by Veljko V
parent 9a74dec86a
commit dde3b159ea
2 changed files with 12 additions and 4 deletions

View File

@ -69,14 +69,22 @@ class WorkflowStorage {
} }
/** @return Workflow[] */ /** @return Workflow[] */
public function getWorkflows(): array { public function getWorkflows(array $status = null): array {
$workflowTable = esc_sql($this->workflowTable); $workflowTable = esc_sql($this->workflowTable);
$versionTable = esc_sql($this->versionsTable); $versionTable = esc_sql($this->versionsTable);
$query = " $query = $status ?
SELECT workflow.*, version.id AS version_id, version.steps, version.trigger_keys (string)$this->wpdb->prepare("
SELECT workflow.*, version.id AS version_id, version.steps, version.trigger_keys
FROM $workflowTable AS workflow INNER JOIN $versionTable as version ON (version.workflow_id=workflow.id)
WHERE version.id = (SELECT Max(id) FROM $versionTable WHERE workflow_id= version.workflow_id) AND workflow.status IN (%s)
ORDER BY workflow.id DESC",
implode(",", $status)
) :
"SELECT workflow.*, version.id AS version_id, version.steps, version.trigger_keys
FROM $workflowTable AS workflow INNER JOIN $versionTable as version ON (version.workflow_id=workflow.id) FROM $workflowTable AS workflow INNER JOIN $versionTable as version ON (version.workflow_id=workflow.id)
WHERE version.id = (SELECT Max(id) FROM $versionTable WHERE workflow_id= version.workflow_id) WHERE version.id = (SELECT Max(id) FROM $versionTable WHERE workflow_id= version.workflow_id)
ORDER BY workflow.id DESC;"; ORDER BY workflow.id DESC;";
$data = $this->wpdb->get_results($query, ARRAY_A); $data = $this->wpdb->get_results($query, ARRAY_A);
return array_map(function (array $workflowData) { return array_map(function (array $workflowData) {
return Workflow::fromArray($workflowData); return Workflow::fromArray($workflowData);

View File

@ -50,7 +50,7 @@ parameters:
path: ../../lib/Automation/Engine/Storage/WorkflowRunStorage.php path: ../../lib/Automation/Engine/Storage/WorkflowRunStorage.php
- -
message: "#^Cannot cast string|void to string\\.$#" message: "#^Cannot cast string|void to string\\.$#"
count: 4 count: 5
path: ../../lib/Automation/Engine/Storage/WorkflowStorage.php path: ../../lib/Automation/Engine/Storage/WorkflowStorage.php
reportUnmatchedIgnoredErrors: true reportUnmatchedIgnoredErrors: true
dynamicConstantNames: dynamicConstantNames: