ldc-com-app-bo/app/Http/Resources/AppUserResource.php

46 lines
1.5 KiB
PHP
Raw Permalink Normal View History

<?php
namespace App\Http\Resources;
use App\Enums\AppUserRolesEnum;
use App\Models\Directory;
use Illuminate\Http\Resources\Json\JsonResource;
class AppUserResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
* @phpcs:disable Squiz.Commenting.FunctionComment.TypeHintMissing
*/
public function toArray($request)
{
/**
* @var \App\Models\AppUser
* @phpstan-ignore varTag.nativeType
*/
$appUser = $this;
return [
'id' => $appUser->id,
'email' => $appUser->email,
'surname' => $appUser->lastname,
'firstname' => $appUser->firstname,
'password' => $appUser->password,
'activated' => $appUser->status,
'role' => ($appUser->role->equals(AppUserRolesEnum::total)) ? "TOTAL" : "USER",
'authorizedFolders' => json_encode(
$appUser->directories->each(
// @phpstan-ignore argument.type
function (Directory $directory) use ($request) {
return (new DirectoryResource($directory))->toArray($request);
}
)
),
'created_at' => $appUser->created_at,
'updated_at' => $appUser->updated_at,
];
}
}