fedi-feed-router/routes/web.php

52 lines
1.8 KiB
PHP
Raw Normal View History

2026-01-22 21:53:12 +01:00
<?php
use App\Http\Controllers\ProfileController;
use App\Livewire\Articles;
use App\Livewire\Channels;
use App\Livewire\Dashboard;
use App\Livewire\Feeds;
use App\Livewire\Onboarding;
use App\Livewire\Routes;
use App\Livewire\Settings;
2026-01-22 21:53:12 +01:00
use Illuminate\Support\Facades\Route;
// Redirect root to dashboard
2026-01-22 21:53:12 +01:00
Route::get('/', function () {
return redirect()->route('dashboard');
2026-01-22 21:53:12 +01:00
});
// Onboarding routes (protected by auth, but need incomplete onboarding)
Route::middleware(['auth', 'onboarding.incomplete'])->group(function () {
Route::get('/onboarding', Onboarding::class)->name('onboarding');
});
// Main app routes (protected by auth and require completed onboarding)
Route::middleware(['auth', 'onboarding.complete'])->group(function () {
Route::get('/dashboard', Dashboard::class)->name('dashboard');
Route::get('/articles', Articles::class)->name('articles');
Route::get('/feeds', Feeds::class)->name('feeds');
Route::get('/channels', Channels::class)->name('channels');
Route::get('/routes', Routes::class)->name('routes');
Route::get('/settings', Settings::class)->name('settings');
});
2026-01-22 21:53:12 +01:00
// Profile routes (auth protected, no onboarding check needed)
2026-01-22 21:53:12 +01: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';
Route::get('/health', function () {
return response()->json(['status' => 'ok']);
});
Route::fallback(function () {
return response()->json([
'message' => 'This is the FFR API backend. Use /api/v1/* endpoints or check the React frontend.',
'api_base' => '/api/v1',
], 404);
});