2727use Fractal ;
2828use Illuminate \Http \Request ;
2929use Pterodactyl \Models \Server ;
30+ use GuzzleHttp \Exception \ConnectException ;
3031use Pterodactyl \Http \Controllers \Controller ;
3132use Pterodactyl \Transformers \User \ServerTransformer ;
33+ use Pterodactyl \Repositories \Daemon \PowerRepository ;
3234
3335class ServerController extends Controller
3436{
37+ /**
38+ * Controller to handle base request for individual server information.
39+ *
40+ * @param \Illuminate\Http\Request $request
41+ * @param string $uuid
42+ * @return array
43+ */
3544 public function index (Request $ request , $ uuid )
3645 {
3746 $ server = Server::byUuid ($ uuid );
@@ -46,13 +55,39 @@ public function index(Request $request, $uuid)
4655 return $ fractal ->transformWith (new ServerTransformer )->toArray ();
4756 }
4857
58+ /**
59+ * Controller to handle request for server power toggle.
60+ *
61+ * @param \Illuminate\Http\Request $request
62+ * @param string $uuid
63+ * @return \Illuminate\Http\Response
64+ */
4965 public function power (Request $ request , $ uuid )
5066 {
67+ $ server = Server::byUuid ($ uuid );
68+ $ request ->user ()->can ('power- ' . $ request ->input ('action ' ), $ server );
69+
70+ $ repo = new PowerRepository ($ server );
71+ $ repo ->do ($ request ->input ('action ' ));
5172
73+ return response ('' , 204 )->header ('Content-Type ' , 'application/json ' );
5274 }
5375
76+ /**
77+ * Controller to handle base request for individual server information.
78+ *
79+ * @param \Illuminate\Http\Request $request
80+ * @param string $uuid
81+ * @return \Illuminate\Http\Response
82+ */
5483 public function command (Request $ request , $ uuid )
5584 {
85+ $ server = Server::byUuid ($ uuid );
86+ $ request ->user ()->can ('send-command ' , $ server );
87+
88+ $ repo = new CommandRepository ($ server );
89+ $ repo ->send ($ request ->input ('command ' ));
5690
91+ return response ('' , 204 )->header ('Content-Type ' , 'application/json ' );
5792 }
5893}
0 commit comments