Allowed to resolve title during short URL edition if it has to

This commit is contained in:
Alejandro Celaya
2021-02-04 23:02:26 +01:00
parent ed18f10b94
commit 71e91a541f
4 changed files with 47 additions and 16 deletions

View File

@@ -61,8 +61,8 @@ class ShortUrlService implements ShortUrlServiceInterface
ShortUrlEdit $shortUrlEdit,
?ApiKey $apiKey = null
): ShortUrl {
if ($shortUrlEdit->hasLongUrl()) {
$this->urlValidator->validateUrl($shortUrlEdit->longUrl(), $shortUrlEdit->doValidateUrl());
if ($shortUrlEdit->longUrlWasProvided()) {
$shortUrlEdit = $this->processTitleAndValidateUrl($shortUrlEdit);
}
$shortUrl = $this->urlResolver->resolveShortUrl($identifier, $apiKey);
@@ -72,4 +72,15 @@ class ShortUrlService implements ShortUrlServiceInterface
return $shortUrl;
}
private function processTitleAndValidateUrl(ShortUrlEdit $shortUrlEdit): ShortUrlEdit
{
if ($shortUrlEdit->titleWasProvided()) {
$this->urlValidator->validateUrl($shortUrlEdit->longUrl(), $shortUrlEdit->doValidateUrl());
return $shortUrlEdit;
}
$title = $this->urlValidator->validateUrlWithTitle($shortUrlEdit->longUrl(), $shortUrlEdit->doValidateUrl());
return $title === null ? $shortUrlEdit : $shortUrlEdit->withResolvedTitle($title);
}
}