Files
mtdb_movie/common/Workspaces/Actions/RemoveMemberFromWorkspace.php
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

39 lines
1.2 KiB
PHP
Executable File

<?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();
}
}