重新规划项目结构
This commit is contained in:
parent
29ca653ef7
commit
92335ebc0d
@ -1,26 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Remote;
|
||||
|
||||
use App\Models\Host;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Module\Module;
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
class CallController extends Controller
|
||||
{
|
||||
// invoke the remote method
|
||||
public function host(Request $request, Host $host, $func) {
|
||||
$host->load('module');
|
||||
$response = $host->module->remoteHost($host->id, $func, $request->all());
|
||||
|
||||
return $this->apiResponse($response[0], $response[1]);
|
||||
}
|
||||
|
||||
public function module(Request $request, Module $module, $func)
|
||||
{
|
||||
$response = $module->remote($func, $request->all());
|
||||
|
||||
return $this->apiResponse($response[0], $response[1]);
|
||||
}
|
||||
}
|
@ -28,7 +28,13 @@ public function index()
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
// 保存服务器
|
||||
$request->validate([
|
||||
'name' => 'required|string',
|
||||
'ip' => 'sometimes|ip',
|
||||
// status only allow online or offline
|
||||
'status' => 'required|in:online,offline,maintenance',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2,8 +2,10 @@
|
||||
|
||||
namespace App\Http\Controllers\Remote;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Module\Module;
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
class ModuleController extends Controller
|
||||
{
|
||||
@ -11,4 +13,20 @@ public function index()
|
||||
{
|
||||
return $this->success(auth('remote')->user());
|
||||
}
|
||||
|
||||
public function call(Request $request, Module $module, $func)
|
||||
{
|
||||
$request->validate([
|
||||
'func' => 'required|string'
|
||||
]);
|
||||
|
||||
// 不能让 func 的首个字符为 /
|
||||
if (Str::startsWith($func, '/')) {
|
||||
$func = substr($func, 1);
|
||||
}
|
||||
|
||||
$response = $module->remote($func, $request->all());
|
||||
|
||||
return $this->apiResponse($response[0], $response[1]);
|
||||
}
|
||||
}
|
||||
|
@ -31,15 +31,15 @@ public function boot()
|
||||
$this->routes(function () {
|
||||
Route::middleware('api')
|
||||
->prefix('api')
|
||||
->group(base_path('routes/api/client.php'));
|
||||
->group(base_path('routes/api.php'));
|
||||
|
||||
Route::middleware('auth:admin')
|
||||
->prefix('admin')
|
||||
->group(base_path('routes/api/admin.php'));
|
||||
->group(base_path('routes/admin.php'));
|
||||
|
||||
Route::middleware('auth:remote')
|
||||
->prefix('remote')
|
||||
->group(base_path('routes/api/remote.php'));
|
||||
->group(base_path('routes/remote.php'));
|
||||
|
||||
Route::middleware('web')
|
||||
->group(base_path('routes/web.php'));
|
||||
|
@ -5,22 +5,19 @@
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use App\Http\Controllers\User\TaskController;
|
||||
|
||||
Route::name('client.')->middleware(['api', 'auth:sanctum'])->group(function () {
|
||||
Route::name('api.')->middleware(['api', 'auth:sanctum'])->group(function () {
|
||||
// Route::apiResource('users', Controllers\User\UserController::class);
|
||||
|
||||
Route::apiResource('/modules/{module}/hosts', User\HostController::class);
|
||||
|
||||
Route::apiResource('drops', User\DropController::class);
|
||||
|
||||
|
||||
|
||||
Route::get('tasks', [TaskController::class, 'index']);
|
||||
|
||||
Route::apiResource('work-orders', User\WorkOrder\WorkOrderController::class);
|
||||
Route::apiResource('work-orders.replies', User\WorkOrder\ReplyController::class);
|
||||
|
||||
// 调用远程 API
|
||||
Route::post('hosts/{host}/func/{func}', [Remote\CallController::class, 'host'])->name('host.call');
|
||||
Route::post('/modules/{module}/func/{func}', [Remote\CallController::class, 'module'])->name('module.call');
|
||||
// Route::post('hosts/{host}/func/{func}', [Remote\CallController::class, 'host'])->name('host.call');
|
||||
Route::post('/modules/{module}', [Remote\ModuleController::class, 'call'])->name('module.call');
|
||||
|
||||
});
|
Loading…
Reference in New Issue
Block a user