Files
KanbanGit/app/Http/Resources/TicketTreeNodeResource.php
T
Eric Peters 017cff5437
linter / quality (pull_request) Successful in 1m15s
tests / ci (8.4) (pull_request) Successful in 1m29s
Refactor Inertia responses to use resources
2026-04-15 18:09:08 +02:00

42 lines
1.3 KiB
PHP

<?php
namespace App\Http\Resources;
use App\Models\Ticket;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Arr;
class TicketTreeNodeResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @return array<string, mixed>
*/
public function toArray(Request $request): array
{
if ($this->resource instanceof Ticket) {
return [
'children' => TicketTreeNodeResource::collection(
$this->resource->childTickets()
->with('ticketType')
->get(),
)->resolve(),
'id' => $this->id,
'ticket_key' => $this->ticket_key,
'ticket_type_name' => $this->ticketType?->name,
'title' => $this->title,
];
}
return [
'children' => TicketTreeNodeResource::collection(collect(Arr::get($this->resource, 'children', [])))->resolve(),
'id' => Arr::get($this->resource, 'id'),
'ticket_key' => Arr::get($this->resource, 'ticket_key'),
'ticket_type_name' => Arr::get($this->resource, 'ticket_type_name'),
'title' => Arr::get($this->resource, 'title'),
];
}
}