Files
lotteryLaravel/routes/api/v1/admin/integration.php
kang 395e1c7400 feat: refactor super admin to use is_super_admin flag and enhance site deletion logic
- Changed super admin detection from role-based to `is_super_admin` flag in AdminUser model
- Added `requireDefaultAdminSiteId()` method to throw validation error when no integration site exists
- Enhanced site deletion to migrate platform role bindings to fallback site and auto-delete site-specific admin accounts
- Made agent line code optional with auto-generation fallback using `{site_code}-agent-{counter}` format
2026-06-12 20:47:40 +08:00

35 lines
2.4 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\V1\Admin\Integration\AdminIntegrationSiteIndexController;
use App\Http\Controllers\Api\V1\Admin\Integration\AdminIntegrationSiteStoreController;
use App\Http\Controllers\Api\V1\Admin\Integration\AdminIntegrationSiteShowController;
use App\Http\Controllers\Api\V1\Admin\Integration\AdminIntegrationSiteUpdateController;
use App\Http\Controllers\Api\V1\Admin\Integration\AdminIntegrationSiteRotateSecretsController;
use App\Http\Controllers\Api\V1\Admin\Integration\AdminIntegrationSiteConnectivityTestController;
use App\Http\Controllers\Api\V1\Admin\Integration\AdminIntegrationSiteExportController;
use App\Http\Controllers\Api\V1\Admin\Integration\AdminIntegrationSiteSecretsController;
use App\Http\Controllers\Api\V1\Admin\Integration\AdminIntegrationSiteDestroyController;
Route::middleware('admin.api-resource')
->group(function (): void {
Route::get('integration-sites', AdminIntegrationSiteIndexController::class)
->name('api.v1.admin.integration-sites.index');
Route::post('integration-sites', AdminIntegrationSiteStoreController::class)
->name('api.v1.admin.integration-sites.store');
Route::get('integration-sites/{admin_site}', AdminIntegrationSiteShowController::class)
->name('api.v1.admin.integration-sites.show');
Route::put('integration-sites/{admin_site}', AdminIntegrationSiteUpdateController::class)
->name('api.v1.admin.integration-sites.update');
Route::delete('integration-sites/{admin_site}', AdminIntegrationSiteDestroyController::class)
->name('api.v1.admin.integration-sites.destroy');
Route::post('integration-sites/{admin_site}/rotate-secrets', AdminIntegrationSiteRotateSecretsController::class)
->name('api.v1.admin.integration-sites.rotate-secrets');
Route::post('integration-sites/{admin_site}/connectivity-test', AdminIntegrationSiteConnectivityTestController::class)
->name('api.v1.admin.integration-sites.connectivity-test');
Route::get('integration-sites/{admin_site}/export', AdminIntegrationSiteExportController::class)
->name('api.v1.admin.integration-sites.export');
Route::get('integration-sites/{admin_site}/secrets', AdminIntegrationSiteSecretsController::class)
->name('api.v1.admin.integration-sites.secrets');
});