Added logic to resolve tags during short URL creation through ShortUrlRelationResolver

This commit is contained in:
Alejandro Celaya
2021-01-31 10:53:18 +01:00
parent 1081211439
commit 82091c7951
15 changed files with 92 additions and 20 deletions

View File

@@ -23,6 +23,8 @@ final class ShortUrlEdit
private ?Chronos $validUntil = null;
private bool $maxVisitsPropWasProvided = false;
private ?int $maxVisits = null;
private bool $tagsPropWasProvided = false;
private array $tags = [];
private ?bool $validateUrl = null;
private function __construct()
@@ -53,12 +55,14 @@ final class ShortUrlEdit
$this->validSincePropWasProvided = array_key_exists(ShortUrlInputFilter::VALID_SINCE, $data);
$this->validUntilPropWasProvided = array_key_exists(ShortUrlInputFilter::VALID_UNTIL, $data);
$this->maxVisitsPropWasProvided = array_key_exists(ShortUrlInputFilter::MAX_VISITS, $data);
$this->tagsPropWasProvided = array_key_exists(ShortUrlInputFilter::TAGS, $data);
$this->longUrl = $inputFilter->getValue(ShortUrlInputFilter::LONG_URL);
$this->validSince = parseDateField($inputFilter->getValue(ShortUrlInputFilter::VALID_SINCE));
$this->validUntil = parseDateField($inputFilter->getValue(ShortUrlInputFilter::VALID_UNTIL));
$this->maxVisits = getOptionalIntFromInputFilter($inputFilter, ShortUrlInputFilter::MAX_VISITS);
$this->validateUrl = getOptionalBoolFromInputFilter($inputFilter, ShortUrlInputFilter::VALIDATE_URL);
$this->tags = $inputFilter->getValue(ShortUrlInputFilter::TAGS);
}
public function longUrl(): ?string
@@ -101,6 +105,19 @@ final class ShortUrlEdit
return $this->maxVisitsPropWasProvided;
}
/**
* @return string[]
*/
public function tags(): array
{
return $this->tags;
}
public function hasTags(): bool
{
return $this->tagsPropWasProvided;
}
public function doValidateUrl(): ?bool
{
return $this->validateUrl;