2026-03-19 19:25:51 +02:00
|
|
|
<?php
|
|
|
|
|
|
2026-03-19 19:47:06 +02:00
|
|
|
use App\Http\Controllers\AlertRuleController;
|
2026-03-19 19:40:49 +02:00
|
|
|
use App\Http\Controllers\DashboardController;
|
|
|
|
|
use App\Http\Controllers\EventController;
|
|
|
|
|
use App\Http\Controllers\IssueController;
|
2026-03-19 19:47:06 +02:00
|
|
|
use App\Http\Controllers\NotificationController;
|
2026-03-19 19:25:51 +02:00
|
|
|
use App\Http\Controllers\ProfileController;
|
2026-03-19 19:40:49 +02:00
|
|
|
use App\Http\Controllers\ProjectController;
|
2026-03-21 16:13:38 +02:00
|
|
|
use App\Http\Controllers\ProjectMemberController;
|
2026-03-19 19:25:51 +02:00
|
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
|
|
|
|
|
|
Route::get('/', function () {
|
|
|
|
|
return view('welcome');
|
|
|
|
|
});
|
|
|
|
|
|
2026-03-21 16:13:38 +02:00
|
|
|
Route::middleware('auth')->group(function () {
|
|
|
|
|
Route::get('/invitations/{token}/accept', [ProjectMemberController::class, 'acceptInvitation'])->name('invitations.accept');
|
|
|
|
|
});
|
|
|
|
|
|
2026-03-19 19:40:49 +02:00
|
|
|
Route::middleware(['auth', 'verified'])->group(function () {
|
|
|
|
|
Route::get('/dashboard', DashboardController::class)->name('dashboard');
|
|
|
|
|
|
|
|
|
|
Route::get('/projects', [ProjectController::class, 'index'])->name('projects.index');
|
|
|
|
|
Route::get('/projects/create', [ProjectController::class, 'create'])->name('projects.create');
|
|
|
|
|
Route::post('/projects', [ProjectController::class, 'store'])->name('projects.store');
|
|
|
|
|
Route::get('/projects/{project}/settings', [ProjectController::class, 'settings'])->name('projects.settings');
|
|
|
|
|
Route::patch('/projects/{project}', [ProjectController::class, 'update'])->name('projects.update');
|
|
|
|
|
Route::patch('/projects/{project}/regenerate-keys', [ProjectController::class, 'regenerateKeys'])->name('projects.regenerate-keys');
|
|
|
|
|
Route::delete('/projects/{project}', [ProjectController::class, 'destroy'])->name('projects.destroy');
|
|
|
|
|
|
|
|
|
|
Route::get('/projects/{project}/issues', [IssueController::class, 'index'])->name('projects.issues.index');
|
|
|
|
|
Route::post('/projects/{project}/issues/bulk', [IssueController::class, 'bulkAction'])->name('projects.issues.bulk');
|
|
|
|
|
Route::get('/projects/{project}/issues/{issue}', [IssueController::class, 'show'])->name('projects.issues.show');
|
|
|
|
|
Route::patch('/projects/{project}/issues/{issue}/status', [IssueController::class, 'updateStatus'])->name('projects.issues.status');
|
|
|
|
|
|
|
|
|
|
Route::get('/projects/{project}/issues/{issue}/events/{event}', [EventController::class, 'show'])->name('projects.issues.events.show');
|
2026-03-19 19:47:06 +02:00
|
|
|
|
|
|
|
|
Route::get('/projects/{project}/alerts', [AlertRuleController::class, 'edit'])->name('projects.alerts.edit');
|
|
|
|
|
Route::patch('/projects/{project}/alerts', [AlertRuleController::class, 'update'])->name('projects.alerts.update');
|
|
|
|
|
Route::patch('/projects/{project}/alerts/preference', [AlertRuleController::class, 'updatePreference'])->name('projects.alerts.preference');
|
|
|
|
|
|
2026-03-21 16:13:38 +02:00
|
|
|
Route::get('/projects/{project}/members', [ProjectMemberController::class, 'index'])->name('projects.members.index');
|
|
|
|
|
Route::post('/projects/{project}/members/invite', [ProjectMemberController::class, 'invite'])->name('projects.members.invite');
|
|
|
|
|
Route::patch('/projects/{project}/members/{user}/role', [ProjectMemberController::class, 'updateRole'])->name('projects.members.update-role');
|
|
|
|
|
Route::delete('/projects/{project}/members/{user}', [ProjectMemberController::class, 'destroy'])->name('projects.members.destroy');
|
|
|
|
|
Route::delete('/projects/{project}/invitations/{invitation}', [ProjectMemberController::class, 'cancelInvitation'])->name('projects.members.cancel-invitation');
|
|
|
|
|
|
2026-03-19 19:47:06 +02:00
|
|
|
Route::get('/notifications', [NotificationController::class, 'index'])->name('notifications.index');
|
|
|
|
|
Route::get('/notifications/{id}/read', [NotificationController::class, 'markAsRead'])->name('notifications.read');
|
|
|
|
|
Route::post('/notifications/mark-all-read', [NotificationController::class, 'markAllAsRead'])->name('notifications.mark-all-read');
|
2026-03-19 19:40:49 +02:00
|
|
|
});
|
2026-03-19 19:25:51 +02:00
|
|
|
|
|
|
|
|
Route::middleware('auth')->group(function () {
|
|
|
|
|
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
|
|
|
|
|
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
|
|
|
|
|
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
require __DIR__.'/auth.php';
|