File "UserResource.php"
Full path: /var/www/html/back/app/Http/UserResource.php
File
size: 1.32 KB B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
namespace App\Http\Resources\User;
use App\Enums\RoleEnum;
use App\Enums\RolePermissionsEnum;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class UserResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'first_name' => $this->first_name,
'last_name' => $this->last_name,
'email' => $this->email,
'image' => !empty($this->getFirstMediaUrl('avatars')) ? $this->getFirstMediaUrl('avatars') : null,
'models' => $this->roles->map(function ($role) {
$roleEnum = RoleEnum::tryFrom($role->role);
$enumPermissions = null;
if ($role->permissions) {
$permissionsValue = is_array($role->permissions)
? implode(',', $role->permissions)
: $role->permissions;
$enumPermissions = RolePermissionsEnum::fromCommaSeparated($permissionsValue);
}
return [
'name' => $role->model->name ?? null,
'role' => $roleEnum ? RoleEnum::options()[$roleEnum->value] : null,
'permissions' => $enumPermissions ?? null,
];
}),
];
}
}