Files
pterodactyl_addon/routes/addon-application.php
2026-06-11 20:33:44 -05:00

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']);
});