- 2.x - sites settings

- tags
- source-control soft deletes
This commit is contained in:
Saeed Vaziry
2024-10-06 00:04:57 +02:00
parent d1f2add699
commit 3c50e2c947
44 changed files with 972 additions and 119 deletions

View File

@ -40,8 +40,8 @@ public function create(Server $server, array $input): Site
// check has access to repository
try {
if ($site->sourceControl()) {
$site->sourceControl()->getRepo($site->repository);
if ($site->sourceControl) {
$site->sourceControl?->getRepo($site->repository);
}
} catch (SourceControlIsNotConnected) {
throw ValidationException::withMessages([

View File

@ -17,8 +17,8 @@ class Deploy
*/
public function run(Site $site): Deployment
{
if ($site->sourceControl()) {
$site->sourceControl()->getRepo($site->repository);
if ($site->sourceControl) {
$site->sourceControl->getRepo($site->repository);
}
if (! $site->deploymentScript?->content) {
@ -30,7 +30,7 @@ public function run(Site $site): Deployment
'deployment_script_id' => $site->deploymentScript->id,
'status' => DeploymentStatus::DEPLOYING,
]);
$lastCommit = $site->sourceControl()?->provider()?->getLastCommit($site->repository, $site->branch);
$lastCommit = $site->sourceControl?->provider()?->getLastCommit($site->repository, $site->branch);
if ($lastCommit) {
$deployment->commit_id = $lastCommit['commit_id'];
$deployment->commit_data = $lastCommit['commit_data'];

View File

@ -5,14 +5,11 @@
use App\Models\Site;
use App\SSH\Services\Webserver\Webserver;
use App\ValidationRules\DomainRule;
use Illuminate\Support\Facades\Validator;
class UpdateAliases
{
public function update(Site $site, array $input): void
{
$this->validate($input);
$site->aliases = $input['aliases'] ?? [];
/** @var Webserver $webserver */
@ -22,12 +19,12 @@ public function update(Site $site, array $input): void
$site->save();
}
private function validate(array $input): void
public static function rules(): array
{
Validator::make($input, [
return [
'aliases.*' => [
new DomainRule,
],
])->validate();
];
}
}

View File

@ -0,0 +1,26 @@
<?php
namespace App\Actions\Site;
use App\Models\Site;
use Illuminate\Validation\Rule;
class UpdatePHPVersion
{
public static function rules(Site $site): array
{
return [
'version' => [
'required',
Rule::exists('services', 'version')
->where('server_id', $site->server_id)
->where('type', 'php'),
],
];
}
public function update(Site $site, array $input): void
{
$site->changePHPVersion($input['version']);
}
}

View File

@ -6,7 +6,6 @@
use App\Exceptions\RepositoryPermissionDenied;
use App\Exceptions\SourceControlIsNotConnected;
use App\Models\Site;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
use Illuminate\Validation\ValidationException;
@ -14,12 +13,10 @@ class UpdateSourceControl
{
public function update(Site $site, array $input): void
{
$this->validate($input);
$site->source_control_id = $input['source_control'];
try {
if ($site->sourceControl()) {
$site->sourceControl()->getRepo($site->repository);
if ($site->sourceControl) {
$site->sourceControl?->getRepo($site->repository);
}
} catch (SourceControlIsNotConnected) {
throw ValidationException::withMessages([
@ -37,13 +34,13 @@ public function update(Site $site, array $input): void
$site->save();
}
private function validate(array $input): void
public static function rules(): array
{
Validator::make($input, [
return [
'source_control' => [
'required',
Rule::exists('source_controls', 'id'),
],
])->validate();
];
}
}