File transfer
This commit is contained in:
61
routes/addon-client.php
Normal file
61
routes/addon-client.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Addon API Routes — Client API
|
||||
* Loaded by AddonServiceProvider
|
||||
*
|
||||
* @author Ball Studios <https://git.balls.studio>
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Pterodactyl\Addons\AdvancedAdmin\Http\Controllers\Client\NetworkMetricsController;
|
||||
use Pterodactyl\Addons\AdvancedAdmin\Http\Controllers\Client\ServerRoleController;
|
||||
use Pterodactyl\Addons\AdvancedAdmin\Http\Controllers\Client\FileRevisionController;
|
||||
use Pterodactyl\Addons\AdvancedAdmin\Http\Controllers\Client\AutocompleteController;
|
||||
|
||||
Route::group([
|
||||
'prefix' => 'api/client/servers/{server}',
|
||||
'middleware' => ['api', 'auth:sanctum', 'addon.ratelimit'],
|
||||
], function () {
|
||||
|
||||
// ── Network Traffic ───────────────────────────────────────────────────────
|
||||
Route::prefix('addons/network')->group(function () {
|
||||
Route::get('live', [NetworkMetricsController::class, 'live'])
|
||||
->middleware('throttle:addon-network-live');
|
||||
Route::get('history', [NetworkMetricsController::class, 'history']);
|
||||
Route::get('ports', [NetworkMetricsController::class, 'ports']);
|
||||
Route::get('flows', [NetworkMetricsController::class, 'flows']);
|
||||
});
|
||||
|
||||
// ── Roles & Permissions ───────────────────────────────────────────────────
|
||||
Route::prefix('addons/roles')->group(function () {
|
||||
Route::get('users', [ServerRoleController::class, 'listUsers']);
|
||||
Route::post('assign', [ServerRoleController::class, 'assign']);
|
||||
Route::delete('assign', [ServerRoleController::class, 'unassign']);
|
||||
});
|
||||
|
||||
Route::prefix('addons/permissions')->group(function () {
|
||||
Route::get('effective/{userId}', [ServerRoleController::class, 'effectivePermissions']);
|
||||
Route::put('override', [ServerRoleController::class, 'setOverride']);
|
||||
});
|
||||
|
||||
// ── File Revisions ────────────────────────────────────────────────────────
|
||||
Route::prefix('addons/files/revisions')->group(function () {
|
||||
Route::get('/', [FileRevisionController::class, 'index']);
|
||||
Route::get('/{revision}', [FileRevisionController::class, 'show']);
|
||||
Route::get('/{revision}/diff', [FileRevisionController::class, 'diff']);
|
||||
Route::get('/{revision}/download', [FileRevisionController::class, 'download']);
|
||||
Route::post('/{revision}/restore', [FileRevisionController::class, 'restore'])
|
||||
->middleware('throttle:addon-revisions-restore');
|
||||
Route::delete('/{revision}', [FileRevisionController::class, 'destroy']);
|
||||
});
|
||||
|
||||
// ── Console Autocomplete ──────────────────────────────────────────────────
|
||||
Route::prefix('addons/console')->group(function () {
|
||||
Route::get('autocomplete', [AutocompleteController::class, 'suggest'])
|
||||
->middleware('throttle:addon-console-autocomplete');
|
||||
Route::get('players', [AutocompleteController::class, 'players']);
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user