- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
<?php
namespace App\Http\Controllers\Admin;
use App\Command\Admin\User\Create\Command as UserCreateCommand;
use App\Command\Admin\User\Update\Command as UserUpdateCommand;
use App\Command\Admin\User\Remove\Command as UserRemoveCommand;
use App\Command\User\Auth\Verify\Command as UserVerifyCommand;
use App\Command\Admin\User\Draft\Command as UserDraftCommand;
use App\Command\CommandBus;
use App\Entity\User\User;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\Users\CreateRequest;
use App\Http\Requests\Admin\Users\UpdateRequest;
use App\Query\Admin\User\FindUsersByDescQuery;
use App\Query\Admin\User\Role\GetUserRolesQuery;
use App\Query\Admin\User\Status\GetUserStatusesQuery;
use App\Query\QueryBus;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request;
class UsersController extends Controller
{
private $commandBus;
private $queryBus;
public function __construct(CommandBus $commandBus, QueryBus $queryBus)
{
$this->commandBus = $commandBus;
$this->queryBus = $queryBus;
}
public function index()
{
$query = $this->queryBus->query(new FindUsersByDescQuery());
$users = $query->paginate(20);
$statuses = $this->queryBus->query(new GetUserStatusesQuery());
$roles = $this->queryBus->query(new GetUserRolesQuery());
return view('admin.users.index', compact('users', 'statuses', 'roles'));
}
public function create()
{
return view('admin.users.create');
}
public function store(CreateRequest $request)
{
$this->commandBus->handle(new UserCreateCommand($request));
return redirect()->route('admin.users.index');
}
public function show(User $user)
{
return view('admin.users.show', compact('user'));
}
public function edit(User $user)
{
$roles = $this->queryBus->query(new GetUserRolesQuery());
return view('admin.users.edit', compact('user', 'roles'));
}
public function update(UpdateRequest $request, User $user)
{
$this->commandBus->handle(new UserUpdateCommand($request, $user));
return redirect()->route('admin.users.index');
}
public function destroy(User $user)
{
$this->commandBus->handle(new UserRemoveCommand($user));
return redirect()->route('admin.users.index');
}
public function verify(User $user)
{
$this->commandBus->handle(new UserVerifyCommand($user));
return redirect()->route('admin.users.show', $user);
}
public function draft(User $user)
{
$this->commandBus->handle(new UserDraftCommand($user));
return redirect()->route('admin.users.show', $user);
}
}