2424
2525namespace Pterodactyl \Http \Controllers \Admin ;
2626
27+ use Illuminate \Contracts \Config \Repository as ConfigRepository ;
2728use Log ;
2829use Alert ;
2930use Javascript ;
31+ use Pterodactyl \Contracts \Repository \DatabaseRepositoryInterface ;
32+ use Pterodactyl \Contracts \Repository \LocationRepositoryInterface ;
33+ use Pterodactyl \Contracts \Repository \ServerRepositoryInterface ;
34+ use Pterodactyl \Contracts \Repository \ServiceRepositoryInterface ;
3035use Pterodactyl \Models ;
3136use Illuminate \Http \Request ;
3237use GuzzleHttp \Exception \TransferException ;
3944
4045class ServersController extends Controller
4146{
47+ /**
48+ * @var \Illuminate\Contracts\Config\Repository
49+ */
50+ protected $ config ;
51+
52+ /**
53+ * @var \Pterodactyl\Contracts\Repository\DatabaseRepositoryInterface
54+ */
55+ protected $ databaseRepository ;
56+
57+ /**
58+ * @var \Pterodactyl\Contracts\Repository\LocationRepositoryInterface
59+ */
60+ protected $ locationRepository ;
61+
62+ /**
63+ * @var \Pterodactyl\Contracts\Repository\ServerRepositoryInterface
64+ */
65+ protected $ repository ;
66+
67+ /**
68+ * @var \Pterodactyl\Contracts\Repository\ServiceRepositoryInterface
69+ */
70+ protected $ serviceRepository ;
71+
72+ public function __construct (
73+ ConfigRepository $ config ,
74+ DatabaseRepositoryInterface $ databaseRepository ,
75+ LocationRepositoryInterface $ locationRepository ,
76+ ServerRepositoryInterface $ repository ,
77+ ServiceRepositoryInterface $ serviceRepository
78+ ) {
79+ $ this ->config = $ config ;
80+ $ this ->databaseRepository = $ databaseRepository ;
81+ $ this ->locationRepository = $ locationRepository ;
82+ $ this ->repository = $ repository ;
83+ $ this ->serviceRepository = $ serviceRepository ;
84+ }
85+
4286 /**
4387 * Display the index page with all servers currently on the system.
4488 *
45- * @param \Illuminate\Http\Request $request
4689 * @return \Illuminate\View\View
4790 */
48- public function index (Request $ request )
91+ public function index ()
4992 {
50- $ servers = Models \Server::with ('node ' , 'user ' , 'allocation ' );
51-
52- if (! is_null ($ request ->input ('query ' ))) {
53- $ servers ->search ($ request ->input ('query ' ));
54- }
55-
5693 return view ('admin.servers.index ' , [
57- 'servers ' => $ servers ->paginate (25 ),
94+ 'servers ' => $ this ->repository ->getAllServers (
95+ $ this ->config ->get ('pterodactyl.paginate.admin.servers ' )
96+ ),
5897 ]);
5998 }
6099
61100 /**
62101 * Display create new server page.
63102 *
64- * @param \Illuminate\Http\Request $request
65103 * @return \Illuminate\View\View
104+ *
105+ * @throws \Exception
66106 */
67- public function create (Request $ request )
107+ public function create ()
68108 {
69- $ services = Models \Service::with ('options.packs ' , 'options.variables ' )->get ();
109+ $ services = $ this ->serviceRepository ->getWithOptions ();
110+
70111 Javascript::put ([
71112 'services ' => $ services ->map (function ($ item ) {
72113 return array_merge ($ item ->toArray (), [
@@ -76,7 +117,7 @@ public function create(Request $request)
76117 ]);
77118
78119 return view ('admin.servers.new ' , [
79- 'locations ' => Models \Location:: all (),
120+ 'locations ' => $ this -> locationRepository -> all (),
80121 'services ' => $ services ,
81122 ]);
82123 }
@@ -115,7 +156,7 @@ public function store(Request $request)
115156 * Returns a tree of all avaliable nodes in a given location.
116157 *
117158 * @param \Illuminate\Http\Request $request
118- * @return array
159+ * @return \Illuminate\Support\Collection
119160 */
120161 public function nodes (Request $ request )
121162 {
0 commit comments