70 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						||
 | 
						||
use Illuminate\Support\Facades\Route;
 | 
						||
use App\Http\Controllers\ProfileController;
 | 
						||
use App\Http\Controllers\CalendarController;
 | 
						||
use App\Http\Controllers\EventController;
 | 
						||
use App\Http\Controllers\DavController;
 | 
						||
use App\Http\Controllers\SubscriptionController;
 | 
						||
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
 | 
						||
 | 
						||
/*
 | 
						||
|--------------------------------------------------------------------------
 | 
						||
| Public pages
 | 
						||
|--------------------------------------------------------------------------
 | 
						||
*/
 | 
						||
 | 
						||
Route::view('/', 'welcome');
 | 
						||
 | 
						||
/*
 | 
						||
|--------------------------------------------------------------------------
 | 
						||
| Breeze starter‑kit pages
 | 
						||
|--------------------------------------------------------------------------
 | 
						||
*/
 | 
						||
 | 
						||
Route::view('/dashboard', 'dashboard')
 | 
						||
    ->middleware(['auth', 'verified'])
 | 
						||
    ->name('dashboard');
 | 
						||
 | 
						||
Route::middleware('auth')->group(function () {
 | 
						||
    /* User profile (generated by Breeze) */
 | 
						||
    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');
 | 
						||
 | 
						||
    /* Calendars CRUD */
 | 
						||
    Route::resource('calendars', CalendarController::class);
 | 
						||
 | 
						||
    /* Nested Events CRUD */
 | 
						||
    Route::prefix('calendars/{calendar}')
 | 
						||
        ->name('calendars.')
 | 
						||
        ->group(function () {
 | 
						||
            Route::get ('events/create',        [EventController::class, 'create'])->name('events.create');
 | 
						||
            Route::post('events',               [EventController::class, 'store' ])->name('events.store');
 | 
						||
            Route::get ('events/{event}/edit',  [EventController::class, 'edit'  ])->name('events.edit');
 | 
						||
            Route::put ('events/{event}',       [EventController::class, 'update'])->name('events.update');
 | 
						||
        });
 | 
						||
});
 | 
						||
 | 
						||
/* Breeze auth routes (login, register, password reset, etc.) */
 | 
						||
require __DIR__.'/auth.php';
 | 
						||
 | 
						||
/*
 | 
						||
|--------------------------------------------------------------------------
 | 
						||
| SabreDAV endpoint (CalDAV + CardDAV)
 | 
						||
|--------------------------------------------------------------------------
 | 
						||
| Leave this outside the auth middleware; the SabreLaravelAuthPlugin handles
 | 
						||
| authentication for DAV clients.
 | 
						||
*/
 | 
						||
 | 
						||
// default dav handling
 | 
						||
Route::match(
 | 
						||
    ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD', 'PROPFIND', 'PROPPATCH', 'MKCOL', 'COPY', 'MOVE', 'REPORT', 'LOCK', 'UNLOCK'],
 | 
						||
    '/dav/{any?}',
 | 
						||
    [DavController::class, 'handle']
 | 
						||
)->where('any', '.*')
 | 
						||
 ->withoutMiddleware([VerifyCsrfToken::class]);
 | 
						||
 | 
						||
// subscriptions
 | 
						||
Route::get('/subscriptions/{calendarUri}.ics', [SubscriptionController::class, 'download']);
 |