api: cleanup controllers

This commit is contained in:
Matthew Penner 2021-03-05 10:03:12 -07:00
parent 00c42225e8
commit f78aaea6a3
47 changed files with 323 additions and 764 deletions

View file

@ -8,7 +8,6 @@ use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Pterodactyl\Models\Server;
use Pterodactyl\Models\Schedule;
use Illuminate\Http\JsonResponse;
use Pterodactyl\Helpers\Utilities;
use Pterodactyl\Exceptions\DisplayException;
use Pterodactyl\Repositories\Eloquent\ScheduleRepository;
@ -25,15 +24,8 @@ use Pterodactyl\Http\Requests\Api\Client\Servers\Schedules\TriggerScheduleReques
class ScheduleController extends ClientApiController
{
/**
* @var \Pterodactyl\Repositories\Eloquent\ScheduleRepository
*/
private $repository;
/**
* @var \Pterodactyl\Services\Schedules\ProcessScheduleService
*/
private $service;
private ScheduleRepository $repository;
private ProcessScheduleService $service;
/**
* ScheduleController constructor.
@ -49,9 +41,9 @@ class ScheduleController extends ClientApiController
/**
* Returns all of the schedules belonging to a given server.
*
* @return array
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
public function index(ViewScheduleRequest $request, Server $server)
public function index(ViewScheduleRequest $request, Server $server): array
{
$schedules = $server->schedule;
$schedules->loadMissing('tasks');
@ -64,12 +56,11 @@ class ScheduleController extends ClientApiController
/**
* Store a new schedule for a server.
*
* @return array
*
* @throws \Pterodactyl\Exceptions\DisplayException
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
public function store(StoreScheduleRequest $request, Server $server)
public function store(StoreScheduleRequest $request, Server $server): array
{
/** @var \Pterodactyl\Models\Schedule $model */
$model = $this->repository->create([
@ -92,9 +83,9 @@ class ScheduleController extends ClientApiController
/**
* Returns a specific schedule for the server.
*
* @return array
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
public function view(ViewScheduleRequest $request, Server $server, Schedule $schedule)
public function view(ViewScheduleRequest $request, Server $server, Schedule $schedule): array
{
if ($schedule->server_id !== $server->id) {
throw new NotFoundHttpException();
@ -110,13 +101,12 @@ class ScheduleController extends ClientApiController
/**
* Updates a given schedule with the new data provided.
*
* @return array
*
* @throws \Pterodactyl\Exceptions\DisplayException
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
public function update(UpdateScheduleRequest $request, Server $server, Schedule $schedule)
public function update(UpdateScheduleRequest $request, Server $server, Schedule $schedule): array
{
$active = (bool) $request->input('is_active');
@ -150,31 +140,27 @@ class ScheduleController extends ClientApiController
* Executes a given schedule immediately rather than waiting on it's normally scheduled time
* to pass. This does not care about the schedule state.
*
* @return \Illuminate\Http\JsonResponse
*
* @throws \Throwable
*/
public function execute(TriggerScheduleRequest $request, Server $server, Schedule $schedule)
public function execute(TriggerScheduleRequest $request, Server $server, Schedule $schedule): Response
{
if (!$schedule->is_active) {
throw new BadRequestHttpException('Cannot trigger schedule exection for a schedule that is not currently active.');
throw new BadRequestHttpException('Cannot trigger schedule exception for a schedule that is not currently active.');
}
$this->service->handle($schedule, true);
return new JsonResponse([], JsonResponse::HTTP_ACCEPTED);
return $this->returnAccepted();
}
/**
* Deletes a schedule and it's associated tasks.
*
* @return \Illuminate\Http\JsonResponse
*/
public function delete(DeleteScheduleRequest $request, Server $server, Schedule $schedule)
public function delete(DeleteScheduleRequest $request, Server $server, Schedule $schedule): Response
{
$this->repository->delete($schedule->id);
return new JsonResponse([], Response::HTTP_NO_CONTENT);
return $this->returnNoContent();
}
/**