%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/shaban/duassis/api/app/Transformers/
Upload File :
Create Path :
Current File : //var/www/html/shaban/duassis/api/app/Transformers/UserTransformer.php

<?php

namespace App\Transformers;

use App\Models\User;
use App\Models\Tag;

class UserTransformer extends BaseTransformer
{
    protected $defaultIncludes = [
        'profile',
    ];

    protected $availableIncludes = [
        'roles',
        'address',
        'categories',
        'tags'
    ];

    public function includeRoles(User $user)
    {
        return $this->collection($user->roles, new RoleTransformer(), 'roles');
    }

    public function includeProfile(User $user)
    {
        if ($profile = $user->profile) {
            return $this->item($profile, new ProfileTransformer(), 'profile');
        }
        return null;
    }

    public function includeAddress(User $user)
    {
        if ($address = $user->address) {
            return $this->item($address, new AddressTransformer(), 'address');
        }
        return null;
    }

    public function includeCategories(User $user)
    {
        if ($categories = $user->categories) {
            return $this->collection($categories, new CategoryTransformer(), 'categories');
        }
        return null;
    }

    public function includeTags(User $user)
    {
        if ($tags = $user->tags) {
            return $this->collection($tags, new TagTransformer(), 'tags');
        }
        return null;
    }

    /**
     * @param User $user
     *
     * @return array
     */
    public function transform(User $user)
    {
        return [
            'id'              => $user->id,
            'display_name'    => $user->display_name,
            'email'           => $user->email,
            'is_enabled'      => $user->is_enabled,
            'is_confirmed'    => $user->is_confirmed,
            'can_use_account' => $user->canUseAccount(),
            'avatar'          => $user->getAvatar(),
        ];
    }
}

Zerion Mini Shell 1.0