Files
panel-pelican-dev/app/Http/Controllers/Api/Remote/Servers/ServerContainersController.php

30 lines
898 B
PHP
Raw Normal View History

<?php
namespace App\Http\Controllers\Api\Remote\Servers;
2025-08-11 22:21:52 +02:00
use App\Enums\ContainerStatus;
use App\Exceptions\Http\HttpForbiddenException;
2025-09-24 13:34:19 +02:00
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.');
}
2025-08-11 22:21:52 +02:00
$status = ContainerStatus::tryFrom($request->json('data.new_state')) ?? ContainerStatus::Missing;
2025-08-09 23:53:45 +02:00
cache()->put("servers.$server->uuid.status", $status, now()->addHour());
return new JsonResponse([]);
}
}