forge/app/Http/Resources/Api/V0/UserResource.php

53 lines
1.3 KiB
PHP
Raw Normal View History

<?php
2025-01-30 00:23:55 -05:00
declare(strict_types=1);
namespace App\Http\Resources\Api\V0;
use App\Http\Controllers\Api\V0\ApiController;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
2025-01-30 00:23:55 -05:00
use Override;
/** @mixin User */
class UserResource extends JsonResource
{
2024-09-12 13:19:52 -04:00
/**
* Transform the resource into an array.
2025-01-30 20:49:56 -05:00
*
* @return array<string, mixed>
2024-09-12 13:19:52 -04:00
*/
2025-01-30 00:23:55 -05:00
#[Override]
public function toArray(Request $request): array
{
2024-10-12 13:19:54 -06:00
$this->load('role');
return [
'type' => 'user',
'id' => $this->id,
'attributes' => [
'name' => $this->name,
'user_role_id' => $this->user_role_id,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
],
'relationships' => [
'user_role' => [
'data' => [
'type' => 'user_role',
'id' => $this->user_role_id,
],
],
],
'includes' => $this->when(
ApiController::shouldInclude('user_role'),
new UserRoleResource($this->role),
),
'links' => [
'self' => $this->profileUrl(),
],
];
}
}