Split nested project route sections
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\ProjectBoardSettingsController;
|
||||
use App\Http\Controllers\ProjectController;
|
||||
use App\Http\Controllers\ProjectRepositorySettingsController;
|
||||
use App\Http\Controllers\ProjectTicketMetadataSettingsController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::get('general', [ProjectController::class, 'general'])->name('general');
|
||||
|
||||
Route::get('board', [ProjectBoardSettingsController::class, 'show'])->name('board');
|
||||
|
||||
Route::prefix('board')
|
||||
->name('board.')
|
||||
->controller(ProjectBoardSettingsController::class)
|
||||
->group(function (): void {
|
||||
require __DIR__.'/settings/board.php';
|
||||
});
|
||||
|
||||
Route::get('metadata', [ProjectTicketMetadataSettingsController::class, 'show'])->name('metadata');
|
||||
Route::patch('metadata', [ProjectTicketMetadataSettingsController::class, 'update'])->name('metadata.update');
|
||||
|
||||
Route::prefix('metadata')
|
||||
->name('metadata.')
|
||||
->controller(ProjectTicketMetadataSettingsController::class)
|
||||
->group(function (): void {
|
||||
require __DIR__.'/settings/metadata.php';
|
||||
});
|
||||
|
||||
Route::get('repositories', [ProjectRepositorySettingsController::class, 'show'])->name('repositories');
|
||||
|
||||
Route::prefix('repositories')
|
||||
->name('repositories.')
|
||||
->controller(ProjectRepositorySettingsController::class)
|
||||
->group(function (): void {
|
||||
require __DIR__.'/settings/repositories.php';
|
||||
});
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::prefix('columns')->name('columns.')->group(function (): void {
|
||||
Route::post('/', 'store')->name('store');
|
||||
Route::patch('{boardColumn}', 'update')->name('update');
|
||||
Route::delete('{boardColumn}', 'destroy')->name('destroy');
|
||||
});
|
||||
|
||||
Route::prefix('statuses')->name('statuses.')->group(function (): void {
|
||||
Route::post('/', 'storeStatus')->name('store');
|
||||
Route::patch('{ticketStatus}', 'updateStatus')->name('update');
|
||||
Route::delete('{ticketStatus}', 'destroyStatus')->name('destroy');
|
||||
Route::patch('{ticketStatus}/transitions', 'updateStatusTransitions')->name('transitions.update');
|
||||
});
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::prefix('types')->name('types.')->group(function (): void {
|
||||
Route::post('/', 'storeType')->name('store');
|
||||
Route::patch('{ticketType}', 'updateType')->name('update');
|
||||
Route::delete('{ticketType}', 'destroyType')->name('destroy');
|
||||
});
|
||||
|
||||
Route::prefix('priorities')->name('priorities.')->group(function (): void {
|
||||
Route::post('/', 'storePriority')->name('store');
|
||||
Route::patch('{ticketPriority}', 'updatePriority')->name('update');
|
||||
Route::delete('{ticketPriority}', 'destroyPriority')->name('destroy');
|
||||
});
|
||||
|
||||
Route::prefix('fields')->name('fields.')->group(function (): void {
|
||||
Route::post('/', 'storeFieldDefinition')->name('store');
|
||||
Route::patch('{ticketFieldDefinition}', 'updateFieldDefinition')->name('update');
|
||||
Route::delete('{ticketFieldDefinition}', 'destroyFieldDefinition')->name('destroy');
|
||||
});
|
||||
|
||||
Route::prefix('link-types')->name('link-types.')->group(function (): void {
|
||||
Route::post('/', 'storeLinkType')->name('store');
|
||||
Route::patch('{ticketLinkType}', 'updateLinkType')->name('update');
|
||||
Route::delete('{ticketLinkType}', 'destroyLinkType')->name('destroy');
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::post('/', 'store')->name('store');
|
||||
Route::patch('{repositoryConnection}', 'update')->name('update');
|
||||
Route::delete('{repositoryConnection}', 'destroy')->name('destroy');
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\ProjectBoardController;
|
||||
use App\Http\Controllers\ProjectTicketBranchController;
|
||||
use App\Http\Controllers\ProjectTicketController;
|
||||
use App\Http\Controllers\ProjectTicketLinkController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::middleware('can:write-project,project')->group(function (): void {
|
||||
Route::get('create', [ProjectTicketController::class, 'create'])->name('create');
|
||||
Route::post('/', [ProjectTicketController::class, 'store'])->name('store');
|
||||
});
|
||||
|
||||
Route::prefix('{ticket}')->group(function (): void {
|
||||
Route::get('/', [ProjectTicketController::class, 'show'])
|
||||
->middleware('can:view-project,project')
|
||||
->name('show');
|
||||
|
||||
Route::middleware('can:write-project,project')->group(function (): void {
|
||||
Route::patch('/', [ProjectTicketController::class, 'update'])->name('update');
|
||||
Route::patch('status', [ProjectBoardController::class, 'move'])->name('status.update');
|
||||
|
||||
Route::prefix('branches')
|
||||
->name('branches.')
|
||||
->controller(ProjectTicketBranchController::class)
|
||||
->group(function (): void {
|
||||
Route::get('validate', 'validate')->name('validate');
|
||||
Route::post('/', 'store')->name('store');
|
||||
});
|
||||
|
||||
Route::prefix('links')
|
||||
->name('links.')
|
||||
->controller(ProjectTicketLinkController::class)
|
||||
->group(function (): void {
|
||||
Route::post('/', 'store')->name('store');
|
||||
Route::delete('{ticketLink}', 'destroy')
|
||||
->withoutScopedBindings()
|
||||
->name('destroy');
|
||||
});
|
||||
});
|
||||
});
|
||||
+2
-107
@@ -1,13 +1,7 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\ProjectBoardController;
|
||||
use App\Http\Controllers\ProjectBoardSettingsController;
|
||||
use App\Http\Controllers\ProjectController;
|
||||
use App\Http\Controllers\ProjectRepositorySettingsController;
|
||||
use App\Http\Controllers\ProjectTicketBranchController;
|
||||
use App\Http\Controllers\ProjectTicketController;
|
||||
use App\Http\Controllers\ProjectTicketLinkController;
|
||||
use App\Http\Controllers\ProjectTicketMetadataSettingsController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::prefix('projects')->name('projects.')->group(function (): void {
|
||||
@@ -45,113 +39,14 @@ Route::prefix('projects')->name('projects.')->group(function (): void {
|
||||
Route::prefix('tickets')
|
||||
->name('tickets.')
|
||||
->group(function (): void {
|
||||
Route::middleware('can:write-project,project')->group(function (): void {
|
||||
Route::get('create', [ProjectTicketController::class, 'create'])->name('create');
|
||||
Route::post('/', [ProjectTicketController::class, 'store'])->name('store');
|
||||
});
|
||||
|
||||
Route::prefix('{ticket}')->group(function (): void {
|
||||
Route::get('/', [ProjectTicketController::class, 'show'])
|
||||
->middleware('can:view-project,project')
|
||||
->name('show');
|
||||
|
||||
Route::middleware('can:write-project,project')->group(function (): void {
|
||||
Route::patch('/', [ProjectTicketController::class, 'update'])->name('update');
|
||||
Route::patch('status', [ProjectBoardController::class, 'move'])->name('status.update');
|
||||
|
||||
Route::prefix('branches')
|
||||
->name('branches.')
|
||||
->controller(ProjectTicketBranchController::class)
|
||||
->group(function (): void {
|
||||
Route::get('validate', 'validate')->name('validate');
|
||||
Route::post('/', 'store')->name('store');
|
||||
});
|
||||
|
||||
Route::prefix('links')
|
||||
->name('links.')
|
||||
->controller(ProjectTicketLinkController::class)
|
||||
->group(function (): void {
|
||||
Route::post('/', 'store')->name('store');
|
||||
Route::delete('{ticketLink}', 'destroy')
|
||||
->withoutScopedBindings()
|
||||
->name('destroy');
|
||||
});
|
||||
});
|
||||
});
|
||||
require __DIR__.'/project/tickets.php';
|
||||
});
|
||||
|
||||
Route::prefix('settings')
|
||||
->name('settings.')
|
||||
->middleware('can:admin-project,project')
|
||||
->group(function (): void {
|
||||
Route::get('general', [ProjectController::class, 'general'])->name('general');
|
||||
|
||||
Route::get('board', [ProjectBoardSettingsController::class, 'show'])->name('board');
|
||||
|
||||
Route::prefix('board')
|
||||
->name('board.')
|
||||
->controller(ProjectBoardSettingsController::class)
|
||||
->group(function (): void {
|
||||
Route::prefix('columns')->name('columns.')->group(function (): void {
|
||||
Route::post('/', 'store')->name('store');
|
||||
Route::patch('{boardColumn}', 'update')->name('update');
|
||||
Route::delete('{boardColumn}', 'destroy')->name('destroy');
|
||||
});
|
||||
|
||||
Route::prefix('statuses')->name('statuses.')->group(function (): void {
|
||||
Route::post('/', 'storeStatus')->name('store');
|
||||
Route::patch('{ticketStatus}', 'updateStatus')->name('update');
|
||||
Route::delete('{ticketStatus}', 'destroyStatus')->name('destroy');
|
||||
Route::patch('{ticketStatus}/transitions', 'updateStatusTransitions')
|
||||
->name('transitions.update');
|
||||
});
|
||||
});
|
||||
|
||||
Route::get('metadata', [ProjectTicketMetadataSettingsController::class, 'show'])
|
||||
->name('metadata');
|
||||
Route::patch('metadata', [ProjectTicketMetadataSettingsController::class, 'update'])
|
||||
->name('metadata.update');
|
||||
|
||||
Route::prefix('metadata')
|
||||
->name('metadata.')
|
||||
->controller(ProjectTicketMetadataSettingsController::class)
|
||||
->group(function (): void {
|
||||
Route::prefix('types')->name('types.')->group(function (): void {
|
||||
Route::post('/', 'storeType')->name('store');
|
||||
Route::patch('{ticketType}', 'updateType')->name('update');
|
||||
Route::delete('{ticketType}', 'destroyType')->name('destroy');
|
||||
});
|
||||
|
||||
Route::prefix('priorities')->name('priorities.')->group(function (): void {
|
||||
Route::post('/', 'storePriority')->name('store');
|
||||
Route::patch('{ticketPriority}', 'updatePriority')->name('update');
|
||||
Route::delete('{ticketPriority}', 'destroyPriority')->name('destroy');
|
||||
});
|
||||
|
||||
Route::prefix('fields')->name('fields.')->group(function (): void {
|
||||
Route::post('/', 'storeFieldDefinition')->name('store');
|
||||
Route::patch('{ticketFieldDefinition}', 'updateFieldDefinition')->name('update');
|
||||
Route::delete('{ticketFieldDefinition}', 'destroyFieldDefinition')->name('destroy');
|
||||
});
|
||||
|
||||
Route::prefix('link-types')->name('link-types.')->group(function (): void {
|
||||
Route::post('/', 'storeLinkType')->name('store');
|
||||
Route::patch('{ticketLinkType}', 'updateLinkType')->name('update');
|
||||
Route::delete('{ticketLinkType}', 'destroyLinkType')->name('destroy');
|
||||
});
|
||||
});
|
||||
|
||||
Route::get('repositories', [ProjectRepositorySettingsController::class, 'show'])
|
||||
->name('repositories');
|
||||
|
||||
Route::prefix('repositories')
|
||||
->name('repositories.')
|
||||
->controller(ProjectRepositorySettingsController::class)
|
||||
->group(function (): void {
|
||||
Route::post('/', 'store')->name('store');
|
||||
Route::patch('{repositoryConnection}', 'update')->name('update');
|
||||
Route::delete('{repositoryConnection}', 'destroy')->name('destroy');
|
||||
});
|
||||
require __DIR__.'/project/settings.php';
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user