90 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Pterodactyl\Http\Controllers\Api\Application\Servers;
 | |
| 
 | |
| use Illuminate\Http\Response;
 | |
| use Pterodactyl\Models\Server;
 | |
| use Pterodactyl\Services\Servers\SuspensionService;
 | |
| use Pterodactyl\Services\Servers\ReinstallServerService;
 | |
| use Pterodactyl\Http\Requests\Api\Application\Servers\ServerWriteRequest;
 | |
| use Pterodactyl\Http\Controllers\Api\Application\ApplicationApiController;
 | |
| 
 | |
| class ServerManagementController extends ApplicationApiController
 | |
| {
 | |
|     /**
 | |
|      * @var \Pterodactyl\Services\Servers\ReinstallServerService
 | |
|      */
 | |
|     private $reinstallServerService;
 | |
| 
 | |
|     /**
 | |
|      * @var \Pterodactyl\Services\Servers\SuspensionService
 | |
|      */
 | |
|     private $suspensionService;
 | |
| 
 | |
|     /**
 | |
|      * SuspensionController constructor.
 | |
|      *
 | |
|      * @param \Pterodactyl\Services\Servers\ReinstallServerService $reinstallServerService
 | |
|      * @param \Pterodactyl\Services\Servers\SuspensionService $suspensionService
 | |
|      */
 | |
|     public function __construct(
 | |
|         ReinstallServerService $reinstallServerService,
 | |
|         SuspensionService $suspensionService
 | |
|     ) {
 | |
|         parent::__construct();
 | |
| 
 | |
|         $this->reinstallServerService = $reinstallServerService;
 | |
|         $this->suspensionService = $suspensionService;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Suspend a server on the Panel.
 | |
|      *
 | |
|      * @param \Pterodactyl\Http\Requests\Api\Application\Servers\ServerWriteRequest $request
 | |
|      * @param \Pterodactyl\Models\Server $server
 | |
|      * @return \Illuminate\Http\Response
 | |
|      *
 | |
|      * @throws \Throwable
 | |
|      */
 | |
|     public function suspend(ServerWriteRequest $request, Server $server): Response
 | |
|     {
 | |
|         $this->suspensionService->toggle($server, SuspensionService::ACTION_SUSPEND);
 | |
| 
 | |
|         return $this->returnNoContent();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Unsuspend a server on the Panel.
 | |
|      *
 | |
|      * @param \Pterodactyl\Http\Requests\Api\Application\Servers\ServerWriteRequest $request
 | |
|      * @param \Pterodactyl\Models\Server $server
 | |
|      * @return \Illuminate\Http\Response
 | |
|      *
 | |
|      * @throws \Throwable
 | |
|      */
 | |
|     public function unsuspend(ServerWriteRequest $request, Server $server): Response
 | |
|     {
 | |
|         $this->suspensionService->toggle($server, SuspensionService::ACTION_UNSUSPEND);
 | |
| 
 | |
|         return $this->returnNoContent();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Mark a server as needing to be reinstalled.
 | |
|      *
 | |
|      * @param \Pterodactyl\Http\Requests\Api\Application\Servers\ServerWriteRequest $request
 | |
|      * @param \Pterodactyl\Models\Server $server
 | |
|      * @return \Illuminate\Http\Response
 | |
|      *
 | |
|      * @throws \Pterodactyl\Exceptions\DisplayException
 | |
|      * @throws \Pterodactyl\Exceptions\Model\DataValidationException
 | |
|      * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
 | |
|      */
 | |
|     public function reinstall(ServerWriteRequest $request, Server $server): Response
 | |
|     {
 | |
|         $this->reinstallServerService->reinstall($server);
 | |
| 
 | |
|         return $this->returnNoContent();
 | |
|     }
 | |
| }
 | 
