diff --git a/src/Entity/ActivityEntity.php b/src/Entity/ActivityEntity.php index 2bff420..36846a6 100644 --- a/src/Entity/ActivityEntity.php +++ b/src/Entity/ActivityEntity.php @@ -4,6 +4,7 @@ use App\Helper\StringGenerationHelper; use DateTime; use App\Enum\StatusEnum; +use App\Exceptions\InvalidEnumKeyException; /** * Entity for activities @@ -11,6 +12,14 @@ class ActivityEntity { + /** @var Array List of valid status for an activity */ + public const VALID_STATUS = [ + StatusEnum::OPEN, + StatusEnum::IN_PROGRESS, + StatusEnum::WAITING, + StatusEnum::CLOSED, + ]; + /** @var string The unique identifier of the entity */ protected $id = ''; @@ -185,7 +194,7 @@ public function setRealEndDate(?DateTime $realEndDate): self { $this->realEndDate = $realEndDate; - + return $this; } @@ -232,6 +241,9 @@ */ public function setStatus(string $status): self { + if (!in_array($status, $this::VALID_STATUS)) { + throw new InvalidEnumKeyException(); + } $this->status = $status; return $this; diff --git a/src/Exception/InvalidEnumKeyException.php b/src/Exception/InvalidEnumKeyException.php new file mode 100644 index 0000000..32f4cb6 --- /dev/null +++ b/src/Exception/InvalidEnumKeyException.php @@ -0,0 +1,11 @@ +