Add site redirects (#552)

* feat(redirects): add redirects to sites

* chore(style): fixed coding style issues

* style: fix php-stan docblocks

* style: pint cleanup

* tests: fixed redirect test suite

* feat: vhosts include additional configs

* fix: use exact location matching

* - add enums
- use queues
- use vhost rather than separate conf files
- vhost formatter
- cleanup

* generate docs

---------

Co-authored-by: Saeed Vaziry <mr.saeedvaziry@gmail.com>
This commit is contained in:
Jamie Wood
2025-03-31 16:30:57 +01:00
committed by GitHub
parent 7882d2022c
commit f483f7fdca
53 changed files with 6944 additions and 4495 deletions

View File

@ -2,6 +2,7 @@
namespace App\Models;
use App\Enums\RedirectStatus;
use App\Enums\SiteStatus;
use App\Enums\SslStatus;
use App\Exceptions\FailedToDestroyGitHook;
@ -52,6 +53,8 @@
* @property ?SourceControl $sourceControl
* @property Collection<int, LoadBalancerServer> $loadBalancerServers
* @property Project $project
* @property Collection<int, Redirect> $redirects
* @property Collection<int, Redirect> $activeRedirects
*/
class Site extends AbstractModel
{
@ -419,4 +422,20 @@ public function getSshUsers(): array
return $users;
}
/**
* @return HasMany<Redirect, covariant $this>
*/
public function redirects(): HasMany
{
return $this->hasMany(Redirect::class);
}
/**
* @return HasMany<Redirect, covariant $this>
*/
public function activeRedirects(): HasMany
{
return $this->redirects()->whereIn('status', [RedirectStatus::CREATING, RedirectStatus::READY]);
}
}