diff --git a/src/Config/JobConfig.php b/src/Config/JobConfig.php index 20500793..7249cbe3 100644 --- a/src/Config/JobConfig.php +++ b/src/Config/JobConfig.php @@ -3,6 +3,7 @@ namespace Queue\Config; use InvalidArgumentException; +use Queue\Model\Enum\Priority; use RuntimeException; /** @@ -132,6 +133,10 @@ public function fromArray(array $data, ?string $type = null) { $field = $this->field($field, $type); } + if ($field === 'priority' && $value instanceof Priority) { + $value = $value->value; + } + $this->$field = $value; } @@ -219,22 +224,28 @@ public function field(string $name, string $type): string { } /** - * @param int|null $priority + * @param \Queue\Model\Enum\Priority|int|null $priority * * @return $this */ - public function setPriority(?int $priority) { + public function setPriority(Priority|int|null $priority) { + if ($priority instanceof Priority) { + $priority = $priority->value; + } $this->priority = $priority; return $this; } /** - * @param int $priority + * @param \Queue\Model\Enum\Priority|int $priority * * @return $this */ - public function setPriorityOrFail(int $priority) { + public function setPriorityOrFail(Priority|int $priority) { + if ($priority instanceof Priority) { + $priority = $priority->value; + } $this->priority = $priority; return $this; @@ -243,7 +254,7 @@ public function setPriorityOrFail(int $priority) { /** * @return int|null */ - public function getPriority(): ?int { + public function getPriority(): int|null { return $this->priority; } diff --git a/src/Model/Enum/Priority.php b/src/Model/Enum/Priority.php new file mode 100644 index 00000000..a610ff13 --- /dev/null +++ b/src/Model/Enum/Priority.php @@ -0,0 +1,20 @@ +assertTrue((bool)$this->QueuedJobs->createJob('Foo', $data)); $data = ['key' => 'k2']; - $this->assertTrue((bool)$this->QueuedJobs->createJob('Foo', $data, ['priority' => 1])); + $this->assertTrue((bool)$this->QueuedJobs->createJob('Foo', $data, ['priority' => Priority::Critical])); $data = ['key' => 'k3']; $this->assertTrue((bool)$this->QueuedJobs->createJob('Foo', $data, ['priority' => 6]));