改进 服务器 API 获取

This commit is contained in:
iVampireSP.com 2023-01-20 15:57:37 +08:00
parent 60b3593a8f
commit 6f6f5669e4
No known key found for this signature in database
GPG Key ID: 2F7B001CA27A8132
3 changed files with 15 additions and 41 deletions

View File

@ -4,6 +4,7 @@
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Support\ClusterSupport;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@ -24,4 +25,16 @@ public function birthdays(): JsonResponse
return $this->success($users);
}
public function nodes(): JsonResponse
{
$nodes = ClusterSupport::nodes(true);
$current_node_id = ClusterSupport::currentNode()['id'];
return $this->success([
'nodes' => $nodes,
'current_node_id' => $current_node_id,
]);
}
}

View File

@ -1,38 +0,0 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Support\ClusterSupport;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
class ServerController extends Controller
{
public function module_reports(Request $request): JsonResponse
{
$servers = Cache::get('servers', []);
if ($request->has('module_id')) {
// 查找指定 module_id
$servers = array_filter($servers, function ($server) use ($request) {
return $server['module_id'] === $request->query('module_id');
});
}
return $this->success($servers);
}
public function nodes(): JsonResponse
{
$nodes = ClusterSupport::nodes(true);
$current_node_id = ClusterSupport::currentNode()['id'];
return $this->success([
'nodes' => $nodes,
'current_node_id' => $current_node_id,
]);
}
}

View File

@ -6,7 +6,6 @@
use App\Http\Controllers\Api\IndexController;
use App\Http\Controllers\Api\ModuleController;
use App\Http\Controllers\Api\ReplyController;
use App\Http\Controllers\Api\ServerController;
use App\Http\Controllers\Api\TaskController;
use App\Http\Controllers\Api\UserController;
use App\Http\Controllers\Api\WorkOrderController;
@ -21,9 +20,9 @@
Route::resource('balances', BalanceController::class);
Route::get('servers', [ServerController::class, 'module_reports']);
Route::get('nodes', [ServerController::class, 'nodes']);
Route::get('nodes', [IndexController::class, 'nodes']);
Route::get('modules', [ModuleController::class, 'index']);
Route::get('modules/{module}/servers', [ModuleController::class, 'servers']);
Route::resource('tasks', TaskController::class)->only(['index', 'show']);