Expose the fact that a short URL has redirect rules attached to it

This commit is contained in:
Alejandro Celaya
2024-10-10 09:33:55 +02:00
parent 228bf093d3
commit 3149adebdb
4 changed files with 26 additions and 2 deletions

View File

@@ -110,4 +110,9 @@ return static function (ClassMetadata $metadata, array $emConfig): void {
->columnName('forward_query')
->option('default', true)
->build();
$builder->createOneToMany('redirectRules', RedirectRule\Entity\ShortUrlRedirectRule::class)
->mappedBy('shortUrl')
->fetchExtraLazy()
->build();
};

View File

@@ -12,6 +12,7 @@ use Doctrine\Common\Collections\Selectable;
use Shlinkio\Shlink\Common\Entity\AbstractEntity;
use Shlinkio\Shlink\Core\Domain\Entity\Domain;
use Shlinkio\Shlink\Core\Exception\ShortCodeCannotBeRegeneratedException;
use Shlinkio\Shlink\Core\RedirectRule\Entity\ShortUrlRedirectRule;
use Shlinkio\Shlink\Core\ShortUrl\Model\ShortUrlCreation;
use Shlinkio\Shlink\Core\ShortUrl\Model\ShortUrlEdition;
use Shlinkio\Shlink\Core\ShortUrl\Model\ShortUrlMode;
@@ -39,6 +40,7 @@ class ShortUrl extends AbstractEntity
* @param Collection<int, Tag> $tags
* @param Collection<int, Visit> & Selectable<int, Visit> $visits
* @param Collection<int, ShortUrlVisitsCount> & Selectable<int, ShortUrlVisitsCount> $visitsCounts
* @param Collection<int, ShortUrlRedirectRule> $redirectRules
*/
private function __construct(
private string $longUrl,
@@ -60,6 +62,7 @@ class ShortUrl extends AbstractEntity
private bool $forwardQuery = true,
private ?string $importSource = null,
private ?string $importOriginalShortCode = null,
private Collection $redirectRules = new ArrayCollection(),
) {
}
@@ -283,6 +286,7 @@ class ShortUrl extends AbstractEntity
Criteria::create()->where(Criteria::expr()->eq('potentialBot', false)),
)),
),
'hasRedirectRules' => count($this->redirectRules) > 0,
];
}
}