Simplify NotFoundRedirectConfigInterface with property hooks and asymetric visibility

This commit is contained in:
Alejandro Celaya
2025-11-08 22:47:24 +01:00
parent ad15ae1922
commit c42fb67efc
15 changed files with 54 additions and 152 deletions

View File

@@ -69,11 +69,11 @@ class DomainRedirectsRequest
public function toNotFoundRedirects(NotFoundRedirectConfigInterface|null $defaults = null): NotFoundRedirects
{
return NotFoundRedirects::withRedirects(
$this->baseUrlRedirectWasProvided ? $this->baseUrlRedirect : $defaults?->baseUrlRedirect(),
$this->regular404RedirectWasProvided ? $this->regular404Redirect : $defaults?->regular404Redirect(),
$this->baseUrlRedirectWasProvided ? $this->baseUrlRedirect : $defaults?->baseUrlRedirect,
$this->regular404RedirectWasProvided ? $this->regular404Redirect : $defaults?->regular404Redirect,
$this->invalidShortUrlRedirectWasProvided
? $this->invalidShortUrlRedirect
: $defaults?->invalidShortUrlRedirect(),
: $defaults?->invalidShortUrlRedirect,
);
}
}

View File

@@ -68,13 +68,13 @@ class DomainRedirectsActionTest extends TestCase
NotFoundRedirects::withRedirects(
array_key_exists(DomainRedirectsInputFilter::BASE_URL_REDIRECT, $redirects)
? $redirects[DomainRedirectsInputFilter::BASE_URL_REDIRECT]
: $domain->baseUrlRedirect(),
: $domain->baseUrlRedirect,
array_key_exists(DomainRedirectsInputFilter::REGULAR_404_REDIRECT, $redirects)
? $redirects[DomainRedirectsInputFilter::REGULAR_404_REDIRECT]
: $domain->regular404Redirect(),
: $domain->regular404Redirect,
array_key_exists(DomainRedirectsInputFilter::INVALID_SHORT_URL_REDIRECT, $redirects)
? $redirects[DomainRedirectsInputFilter::INVALID_SHORT_URL_REDIRECT]
: $domain->invalidShortUrlRedirect(),
: $domain->invalidShortUrlRedirect,
),
$apiKey,
);

View File

@@ -51,7 +51,7 @@ class DomainRedirectsRequestTest extends TestCase
yield 'some values' => [['domain' => 'foo', 'regular404Redirect' => 'bar'], null, 'foo', null, 'bar', null];
yield 'fallbacks' => [
['domain' => 'domain', 'baseUrlRedirect' => 'bar'],
new NotFoundRedirectOptions(invalidShortUrl: 'fallback2', regular404: 'fallback'),
new NotFoundRedirectOptions(invalidShortUrlRedirect: 'fallback2', regular404Redirect: 'fallback'),
'domain',
'bar',
'fallback',
@@ -59,7 +59,7 @@ class DomainRedirectsRequestTest extends TestCase
];
yield 'fallback ignored' => [
['domain' => 'domain', 'regular404Redirect' => 'bar', 'invalidShortUrlRedirect' => null],
new NotFoundRedirectOptions(invalidShortUrl: 'fallback2', regular404: 'fallback'),
new NotFoundRedirectOptions(invalidShortUrlRedirect: 'fallback2', regular404Redirect: 'fallback'),
'domain',
null,
'bar',