重新规划项目结构
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)
|
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;
|
namespace App\Http\Controllers\Remote;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use Illuminate\Support\Str;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\Module\Module;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
|
||||||
class ModuleController extends Controller
|
class ModuleController extends Controller
|
||||||
{
|
{
|
||||||
@ -11,4 +13,20 @@ public function index()
|
|||||||
{
|
{
|
||||||
return $this->success(auth('remote')->user());
|
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 () {
|
$this->routes(function () {
|
||||||
Route::middleware('api')
|
Route::middleware('api')
|
||||||
->prefix('api')
|
->prefix('api')
|
||||||
->group(base_path('routes/api/client.php'));
|
->group(base_path('routes/api.php'));
|
||||||
|
|
||||||
Route::middleware('auth:admin')
|
Route::middleware('auth:admin')
|
||||||
->prefix('admin')
|
->prefix('admin')
|
||||||
->group(base_path('routes/api/admin.php'));
|
->group(base_path('routes/admin.php'));
|
||||||
|
|
||||||
Route::middleware('auth:remote')
|
Route::middleware('auth:remote')
|
||||||
->prefix('remote')
|
->prefix('remote')
|
||||||
->group(base_path('routes/api/remote.php'));
|
->group(base_path('routes/remote.php'));
|
||||||
|
|
||||||
Route::middleware('web')
|
Route::middleware('web')
|
||||||
->group(base_path('routes/web.php'));
|
->group(base_path('routes/web.php'));
|
||||||
|
@ -5,22 +5,19 @@
|
|||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use App\Http\Controllers\User\TaskController;
|
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('users', Controllers\User\UserController::class);
|
||||||
|
|
||||||
Route::apiResource('/modules/{module}/hosts', User\HostController::class);
|
|
||||||
|
|
||||||
Route::apiResource('drops', User\DropController::class);
|
Route::apiResource('drops', User\DropController::class);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Route::get('tasks', [TaskController::class, 'index']);
|
Route::get('tasks', [TaskController::class, 'index']);
|
||||||
|
|
||||||
Route::apiResource('work-orders', User\WorkOrder\WorkOrderController::class);
|
Route::apiResource('work-orders', User\WorkOrder\WorkOrderController::class);
|
||||||
Route::apiResource('work-orders.replies', User\WorkOrder\ReplyController::class);
|
Route::apiResource('work-orders.replies', User\WorkOrder\ReplyController::class);
|
||||||
|
|
||||||
// 调用远程 API
|
// 调用远程 API
|
||||||
Route::post('hosts/{host}/func/{func}', [Remote\CallController::class, 'host'])->name('host.call');
|
// 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('/modules/{module}', [Remote\ModuleController::class, 'call'])->name('module.call');
|
||||||
|
|
||||||
});
|
});
|
Loading…
Reference in New Issue
Block a user