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
@@ -3,11 +3,12 @@
namespace App\Http\Controllers;
use App\Actions\Permissions\PermissionService;
use App\Actions\Projects\BuildProjectBoardPageProps;
use App\Actions\Tickets\CreateTicketWorklogEntry;
use App\Enums\Permission;
use App\Enums\TicketWorklogEntryType;
use App\Http\Requests\MoveProjectTicketRequest;
use App\Http\Resources\BoardColumnResource;
use App\Http\Resources\ProjectResource;
use App\Models\Project;
use App\Models\Ticket;
use App\Models\TicketStatus;
@@ -20,7 +21,6 @@ use Inertia\Response;
class ProjectBoardController extends Controller
{
public function __construct(
private readonly BuildProjectBoardPageProps $buildProjectBoardPageProps,
private readonly CreateTicketWorklogEntry $createTicketWorklogEntry,
private readonly PermissionService $permissionService,
) {}
@@ -34,12 +34,28 @@ class ProjectBoardController extends Controller
403,
);
return Inertia::render('projects/Board', $this->buildProjectBoardPageProps->handle(
$project,
$this->permissionService->allows($user, Permission::ProjectWrite, $project),
$this->permissionService->allows($user, Permission::ProjectWrite, $project),
session('status'),
));
$canManageTickets = $this->permissionService->allows($user, Permission::ProjectWrite, $project);
return Inertia::render('projects/Board', [
'boardColumns' => BoardColumnResource::collection(
$project->boardColumns()
->with([
'ticketStatuses',
'tickets' => fn ($query) => $query
->with([
'ticketPriority',
'ticketStatus.allowedTargetStatuses.boardColumn',
'ticketStatus.boardColumn',
'ticketType',
]),
])
->get(),
)->resolve(),
'canCreateTickets' => $canManageTickets,
'canEditTickets' => $canManageTickets,
'project' => ProjectResource::make($project)->resolve(),
'status' => session('status'),
]);
}
public function move(