mirror of
https://github.com/pelican-dev/panel.git
synced 2026-05-04 18:00:48 +03:00
Co-authored-by: DaneEveritt <dane@daneeveritt.com> Co-authored-by: danny6167 <danielb@purpleflaghosting.com> Co-authored-by: MrSoulPenguin <28676680+MrSoulPenguin@users.noreply.github.com>
30 lines
898 B
PHP
30 lines
898 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api\Remote\Servers;
|
|
|
|
use App\Enums\ContainerStatus;
|
|
use App\Exceptions\Http\HttpForbiddenException;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Server;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ServerContainersController extends Controller
|
|
{
|
|
/**
|
|
* Updates the server container's status on the Panel
|
|
*/
|
|
public function status(Request $request, Server $server): JsonResponse
|
|
{
|
|
if (!$server->node->is($request->attributes->get('node'))) {
|
|
throw new HttpForbiddenException('Requesting node does not have permission to access this server.');
|
|
}
|
|
|
|
$status = ContainerStatus::tryFrom($request->json('data.new_state')) ?? ContainerStatus::Missing;
|
|
|
|
cache()->put("servers.$server->uuid.status", $status, now()->addHour());
|
|
|
|
return new JsonResponse([]);
|
|
}
|
|
}
|