52 lines
2.9 KiB
PHP
52 lines
2.9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Addon API Routes — Application API (Admin only)
|
|
* Loaded by AddonServiceProvider
|
|
*
|
|
* @author Ball Studios <https://git.balls.studio>
|
|
* @license MIT
|
|
*/
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use Pterodactyl\Addons\AdvancedAdmin\Http\Controllers\Admin\RoleController;
|
|
use Pterodactyl\Addons\AdvancedAdmin\Http\Controllers\Admin\NodeNetworkController;
|
|
use Pterodactyl\Addons\AdvancedAdmin\Http\Controllers\Admin\RevisionSettingsController;
|
|
use Pterodactyl\Addons\AdvancedAdmin\Http\Controllers\Admin\CommandDefinitionController;
|
|
|
|
Route::group([
|
|
'prefix' => 'api/application',
|
|
'middleware' => ['api', 'auth:sanctum', 'addon.ratelimit'],
|
|
], function () {
|
|
|
|
// ── Roles Management ──────────────────────────────────────────────────────
|
|
Route::prefix('addons/roles')->middleware('throttle:addon-roles-write')->group(function () {
|
|
Route::get('/', [RoleController::class, 'index']);
|
|
Route::post('/', [RoleController::class, 'store']);
|
|
Route::get('/{role}', [RoleController::class, 'show']);
|
|
Route::patch('/{role}', [RoleController::class, 'update']);
|
|
Route::delete('/{role}', [RoleController::class, 'destroy']);
|
|
});
|
|
|
|
// ── Node Network Aggregate ────────────────────────────────────────────────
|
|
Route::get('addons/network/nodes/{node}', [NodeNetworkController::class, 'show']);
|
|
Route::get('addons/network/nodes', [NodeNetworkController::class, 'index']);
|
|
|
|
// ── Revision Settings ─────────────────────────────────────────────────────
|
|
Route::get('addons/revisions/settings', [RevisionSettingsController::class, 'show']);
|
|
Route::put('addons/revisions/settings', [RevisionSettingsController::class, 'update']);
|
|
|
|
// ── Command Definitions ────────────────────────────────────────────────────
|
|
Route::prefix('addons/console/definitions')->group(function () {
|
|
Route::get('/', [CommandDefinitionController::class, 'index']);
|
|
Route::post('/', [CommandDefinitionController::class, 'store']);
|
|
Route::get('/{id}', [CommandDefinitionController::class, 'show']);
|
|
Route::put('/{id}', [CommandDefinitionController::class, 'update']);
|
|
Route::delete('/{id}', [CommandDefinitionController::class, 'destroy']);
|
|
});
|
|
|
|
Route::get('addons/console/settings', [CommandDefinitionController::class, 'settings']);
|
|
Route::put('addons/console/settings', [CommandDefinitionController::class, 'updateSettings']);
|
|
|
|
});
|