Improved public API in ApiKey entity, reducing anemic model

This commit is contained in:
Alejandro Celaya
2018-10-28 15:24:41 +01:00
parent e046eddda9
commit 877b098b09
6 changed files with 23 additions and 46 deletions

View File

@@ -36,21 +36,11 @@ class ApiKey extends AbstractEntity
*/
private $enabled;
public function __construct()
public function __construct(?Chronos $expirationDate = null)
{
$this->enabled = true;
$this->key = $this->generateV4Uuid();
}
public function getKey(): string
{
return $this->key;
}
public function setKey(string $key): self
{
$this->key = $key;
return $this;
$this->expirationDate = $expirationDate;
$this->enabled = true;
}
public function getExpirationDate(): ?Chronos
@@ -58,12 +48,6 @@ class ApiKey extends AbstractEntity
return $this->expirationDate;
}
public function setExpirationDate(Chronos $expirationDate): self
{
$this->expirationDate = $expirationDate;
return $this;
}
public function isExpired(): bool
{
if ($this->expirationDate === null) {
@@ -78,15 +62,10 @@ class ApiKey extends AbstractEntity
return $this->enabled;
}
public function setEnabled(bool $enabled): self
{
$this->enabled = $enabled;
return $this;
}
public function disable(): self
{
return $this->setEnabled(false);
$this->enabled = false;
return $this;
}
/**
@@ -99,6 +78,6 @@ class ApiKey extends AbstractEntity
public function __toString(): string
{
return $this->getKey();
return $this->key;
}
}