feat: Implement new admin API endpoints for product, customer, vCenter, and authentication, and add vCenter resource management UI.
This commit is contained in:
@@ -14,6 +14,7 @@ use App\Http\Controllers\admin\ModuleDNSController;
|
||||
use App\Http\Controllers\admin\ModuleHostingController;
|
||||
use App\Http\Controllers\admin\ModuleIPPoolController;
|
||||
use App\Http\Controllers\admin\ModulevCenterController;
|
||||
use App\Http\Controllers\admin\VCenterManagerController;
|
||||
use App\Http\Controllers\admin\OrderController;
|
||||
use App\Http\Controllers\admin\package\Datacenter;
|
||||
use App\Http\Controllers\admin\package\Datastore;
|
||||
@@ -227,6 +228,22 @@ Route::prefix('')->group(function () {
|
||||
Route::delete('remove-server-ip-pool/{id}', 'destroy')->name('module.ippool.destroy');
|
||||
});
|
||||
|
||||
// vCenter Manager — Unified tree view
|
||||
Route::controller(VCenterManagerController::class)->prefix('vcenter-manager')->group(function () {
|
||||
Route::get('/', 'index')->name('vcenter.manager');
|
||||
Route::get('tree/children', 'treeChildren')->name('vcenter.manager.tree.children');
|
||||
Route::get('tree/detail', 'nodeDetail')->name('vcenter.manager.tree.detail');
|
||||
Route::get('vms/datatable', 'vmDatatable')->name('vcenter.manager.vm.datatable');
|
||||
|
||||
// Wizard API
|
||||
Route::get('wizard/vcenters', 'wizardVcenters')->name('vcenter.manager.wizard.vcenters');
|
||||
Route::post('wizard/vcenter', 'wizardStoreVcenter')->name('vcenter.manager.wizard.vcenter.store');
|
||||
Route::get('wizard/datacenters', 'wizardDatacenters')->name('vcenter.manager.wizard.datacenters');
|
||||
Route::get('wizard/hosts', 'wizardHosts')->name('vcenter.manager.wizard.hosts');
|
||||
Route::get('wizard/datastore-network', 'wizardDatastoreNetwork')->name('vcenter.manager.wizard.datastore-network');
|
||||
Route::post('wizard/save', 'wizardSave')->name('vcenter.manager.wizard.save');
|
||||
});
|
||||
|
||||
//Module vCenter Server
|
||||
Route::controller(ModulevCenterController::class)->prefix('vcenter')->group(function () {
|
||||
Route::get('list-all-vcenter', 'index')->name('module.vcenter.index');
|
||||
|
||||
+45
-30
@@ -1,39 +1,17 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\Api\Client\ClientController;
|
||||
use App\Http\Controllers\rest\ModuleController;
|
||||
use App\Http\Controllers\Api\Admin\Auth\AuthController;
|
||||
use App\Http\Controllers\Api\Admin\Customer\CustomerController;
|
||||
use App\Http\Controllers\Api\Admin\Invoice\InvoiceController;
|
||||
use App\Http\Controllers\Api\Admin\Order\OrderController;
|
||||
use App\Http\Controllers\Api\Admin\Product\ProductController;
|
||||
use App\Http\Controllers\Api\Admin\VCenter\VCenterController;
|
||||
use App\Http\Services\Media;
|
||||
use App\Http\Services\vCenter as ServiceVCenter;
|
||||
use App\Jobs\Hosting\CreateHostingJobs;
|
||||
use App\Jobs\VirtualMachine\Create\CreateVMJobs;
|
||||
use App\Jobs\VirtualMachine\Upgrade\UpgradeVirtualMachine;
|
||||
use App\Models\Addon;
|
||||
use App\Models\Customer;
|
||||
use App\Models\File;
|
||||
use App\Models\Hosting;
|
||||
use App\Models\Invoice;
|
||||
use App\Models\InvoiceItem;
|
||||
use App\Models\ModuleDatacenter;
|
||||
use App\Models\ModuleHost;
|
||||
use App\Models\ModuleHosting;
|
||||
use App\Models\ModuleHostingServer;
|
||||
use App\Models\ModuleIpAddress;
|
||||
use App\Models\ModuleSnapshot;
|
||||
use App\Models\ModuleVmware;
|
||||
use App\Models\Os;
|
||||
use App\Models\OsGroup;
|
||||
use App\Models\Type;
|
||||
use App\Models\vCenter;
|
||||
use App\Models\VPS;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -49,8 +27,44 @@ use Illuminate\Support\Str;
|
||||
Route::prefix('v1')
|
||||
/* Api for Admin */
|
||||
->group(function () {
|
||||
Route::prefix('administrator')->group(function () {
|
||||
Route::post('login', [AuthController::class, 'login']);
|
||||
|
||||
Route::middleware('api.auth:admins-api')->group(function () {
|
||||
Route::post('logout', [AuthController::class, 'logout']);
|
||||
Route::post('refresh', [AuthController::class, 'refresh']);
|
||||
Route::get('me', [AuthController::class, 'me']);
|
||||
|
||||
// Customers
|
||||
Route::prefix('customers')->group(function () {
|
||||
Route::get('/', [CustomerController::class, 'index']);
|
||||
});
|
||||
|
||||
// Products
|
||||
Route::prefix('products')->group(function () {
|
||||
Route::get('/', [ProductController::class, 'index']);
|
||||
Route::get('{id}', [ProductController::class, 'show']);
|
||||
});
|
||||
|
||||
// Orders
|
||||
Route::prefix('orders')->group(function () {
|
||||
Route::get('/', [OrderController::class, 'index']);
|
||||
});
|
||||
|
||||
// Invoices
|
||||
Route::prefix('invoices')->group(function () {
|
||||
Route::get('/', [InvoiceController::class, 'index']);
|
||||
});
|
||||
|
||||
// vCenter
|
||||
Route::prefix('vcenter')->group(function () {
|
||||
Route::get('tree', [VCenterController::class, 'tree']);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Route::prefix('system')->middleware(['api.auth'])->group(function () {
|
||||
|
||||
|
||||
Route::post('get-all-image', function (Media $media) {
|
||||
$files = $media->getAllMedia();
|
||||
$data = view('administrator.pages.component.media')->with('media', $files)->render();
|
||||
@@ -123,6 +137,7 @@ Route::prefix('v1')
|
||||
})->name('api.GetConsoleTicket');
|
||||
});
|
||||
});
|
||||
|
||||
Route::any('{any}', function () {
|
||||
return response()->json([
|
||||
'error' => true,
|
||||
|
||||
Reference in New Issue
Block a user