Creating the full role transformers and a user transformer

parent 681aa578
<?php
namespace Modules\User\Transformers;
use Illuminate\Http\Resources\Json\Resource;
use Modules\User\Permissions\PermissionManager;
class FullRoleTransformer extends Resource
{
public function toArray($request)
{
$permissionsManager = app(PermissionManager::class);
$permissions = $this->buildPermissionList($permissionsManager->all());
$data = [
'id' => $this->id,
'name' => $this->name,
'slug' => $this->slug,
'created_at' => $this->created_at,
'permissions' => $permissions,
'users' => UserTransformer::collection($this->whenLoaded('users')),
'urls' => [
'delete_url' => route('api.user.role.destroy', $this->id),
],
];
return $data;
}
private function buildPermissionList(array $permissionsConfig) : array
{
$list = [];
if ($permissionsConfig === null) {
return $list;
}
foreach ($permissionsConfig as $mainKey => $subPermissions) {
foreach ($subPermissions as $key => $permissionGroup) {
foreach ($permissionGroup as $lastKey => $description) {
$list[strtolower($key) . '.' . $lastKey] = current_permission_value($this, $key, $lastKey);
}
}
}
return $list;
}
}
<?php
namespace Modules\User\Transformers;
use Illuminate\Http\Resources\Json\Resource;
class UserTransformer extends Resource
{
public function toArray($request)
{
return [
'id' => $this->id,
'first_name' => $this->first_name,
'last_name' => $this->last_name,
'fullname' => $this->present()->fullname,
'email' => $this->email,
'created_at' => $this->created_at,
'urls' => [
'delete_url' => route('api.user.role.destroy', $this->id),
],
];
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment