%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/graphicd/public_html/vebto/common/Workspaces/Actions/
Upload File :
Create Path :
Current File : /home/graphicd/public_html/vebto/common/Workspaces/Actions/RemoveMemberFromWorkspace.php

<?php

namespace Common\Workspaces\Actions;

use Common\Workspaces\Workspace;
use Common\Workspaces\WorkspaceMember;
use const App\Providers\WORKSPACED_RESOURCES;

class RemoveMemberFromWorkspace
{
    public function execute(Workspace $workspace, int $userToBeRemoved)
    {
        // transfer workspace resources to owner
        if ($workspace->owner_id !== $userToBeRemoved) {
            foreach (WORKSPACED_RESOURCES as $model) {
                $baseName = class_basename($model);
                $namespace = "App\Workspaces\Transfer{$baseName}";
                if (class_exists($namespace)) {
                    app($namespace)->execute($workspace->id, $workspace->owner_id, $userToBeRemoved);
                } else {
                    app($model)
                        ->where('workspace_id', $workspace->id)
                        ->where('user_id', $userToBeRemoved)
                        ->update(['user_id' => $workspace->owner_id]);
                }

            }
        }

        app(WorkspaceMember::class)
            ->where('workspace_id', $workspace->id)
            ->where('user_id', $userToBeRemoved)
            ->delete();
    }
}

Zerion Mini Shell 1.0