Refactor Inertia responses to use resources
linter / quality (pull_request) Successful in 1m15s
tests / ci (8.4) (pull_request) Successful in 1m29s

This commit is contained in:
Eric Peters
2026-04-15 18:09:08 +02:00
parent 5a7972df7c
commit 017cff5437
38 changed files with 1125 additions and 382 deletions
@@ -8,6 +8,9 @@ use App\Actions\Permissions\PermissionService;
use App\Enums\Permission;
use App\Http\Requests\StoreRepositoryConnectionRequest;
use App\Http\Requests\UpdateRepositoryConnectionRequest;
use App\Http\Resources\AvailableGitRepositorySourceResource;
use App\Http\Resources\ProjectResource;
use App\Http\Resources\RepositoryConnectionResource;
use App\Models\Project;
use App\Models\RepositoryConnection;
use App\Models\User;
@@ -36,27 +39,21 @@ class ProjectRepositorySettingsController extends Controller
403,
);
$repositoryConnections = $project->repositoryConnections()
->get()
->each(function (RepositoryConnection $repositoryConnection) use ($user): void {
$repositoryConnection->setAttribute(
'has_personal_access',
$this->hasPersonalAccess($user, $repositoryConnection),
);
});
return Inertia::render('projects/settings/Repositories', [
'availableRepositorySources' => $this->availableRepositorySources($user),
'project' => $project,
'repositoryConnections' => $project->repositoryConnections()
->get()
->map(fn (RepositoryConnection $repositoryConnection): array => [
'base_url' => $repositoryConnection->base_url,
'created_at' => $repositoryConnection->created_at?->toISOString(),
'has_personal_access' => $this->hasPersonalAccess($user, $repositoryConnection),
'id' => $repositoryConnection->id,
'owner_name' => $repositoryConnection->owner_name,
'project_id' => $repositoryConnection->project_id,
'provider' => $repositoryConnection->provider->value,
'provider_label' => $repositoryConnection->provider->label(),
'provider_repository_id' => $repositoryConnection->provider_repository_id,
'repository_full_name' => $repositoryConnection->repository_full_name,
'repository_name' => $repositoryConnection->repository_name,
'repository_url' => $repositoryConnection->repository_url,
'updated_at' => $repositoryConnection->updated_at?->toISOString(),
])
->values(),
'availableRepositorySources' => AvailableGitRepositorySourceResource::collection(
$this->availableRepositorySources($user),
)->resolve(),
'project' => ProjectResource::make($project)->resolve(),
'repositoryConnections' => RepositoryConnectionResource::collection($repositoryConnections)->resolve(),
'status' => session('status'),
]);
}