Refactor Inertia responses to use resources
This commit is contained in:
@@ -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'),
|
||||
]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user