Addition of repository to ease testing and maintainability

This commit is contained in:
Dane Everitt 2017-07-01 15:29:49 -05:00
parent 2f4ec64f2a
commit 5c3dc60d1e
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
22 changed files with 617 additions and 853 deletions

View file

@ -25,6 +25,7 @@
namespace Pterodactyl\Http\Controllers\Admin;
use Illuminate\Http\Request;
use Pterodactyl\Contracts\Repository\UserRepositoryInterface;
use Pterodactyl\Models\User;
use Prologue\Alerts\AlertsMessageBag;
use Pterodactyl\Services\UserService;
@ -49,18 +50,29 @@ class UserController extends Controller
*/
protected $model;
/**
* @var \Pterodactyl\Contracts\Repository\UserRepositoryInterface
*/
protected $repository;
/**
* UserController constructor.
*
* @param \Prologue\Alerts\AlertsMessageBag $alert
* @param \Pterodactyl\Services\UserService $service
* @param \Pterodactyl\Models\User $model
* @param \Prologue\Alerts\AlertsMessageBag $alert
* @param \Pterodactyl\Services\UserService $service
* @param \Pterodactyl\Contracts\Repository\UserRepositoryInterface $repository
* @param \Pterodactyl\Models\User $model
*/
public function __construct(AlertsMessageBag $alert, UserService $service, User $model)
{
public function __construct(
AlertsMessageBag $alert,
UserService $service,
UserRepositoryInterface $repository,
User $model
) {
$this->alert = $alert;
$this->service = $service;
$this->model = $model;
$this->repository = $repository;
}
/**
@ -71,14 +83,10 @@ class UserController extends Controller
*/
public function index(Request $request)
{
$users = $this->model->newQuery()->withCount('servers', 'subuserOf');
if (! is_null($request->input('query'))) {
$users->search($request->input('query'));
}
$users = $this->repository->search($request->input('query'))->getAllUsersWithCounts();
return view('admin.users.index', [
'users' => $users->paginate(config('pterodactyl.paginate.admin.users')),
'users' => $users,
]);
}
@ -122,7 +130,7 @@ class UserController extends Controller
}
try {
$this->service->delete($user->id);
$this->repository->deleteIfNoServers($user->id);
return redirect()->route('admin.users');
} catch (DisplayException $ex) {
@ -144,6 +152,7 @@ class UserController extends Controller
public function store(UserFormRequest $request)
{
$user = $this->service->create($request->normalize());
$this->alert->success('Account has been successfully created.')->flash();
return redirect()->route('admin.users.view', $user->id);