File "UserShowPermissionsResource.php"

Full Path: /var/www/html/back/app/Http/Resources/CashFlow/Project/UserShowPermissionsResource.php
File size: 1.19 KB
MIME-type: text/x-php
Charset: utf-8

<?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 UserShowPermissionsResource 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,
            'start_page' => $this->start_page,
            'is_blocked' => $this->is_blocked,
            'image' => !empty($this->getFirstMediaUrl('avatars')) ? $this->getFirstMediaUrl('avatars') : null,
            'models' => $this->roles->map(function ($role) {
                $roleEnum = RoleEnum::tryFrom($role->role);
                if ($role->permissions) {
                    $enumPermissions = RolePermissionsEnum::fromCommaSeparated($role->permissions);
                }

                return [
                    'name' => $role->model->name ?? null,
                    'role' => $role->role ?? null,
                    'permissions' => $role->permissions ?? null,
                ];
            }),
        ];
    }
}