fedi-feed-router/app/Http/Controllers/FeedsController.php
2025-07-06 11:30:38 +02:00

70 lines
1.8 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Feed;
use App\Http\Requests\StoreFeedRequest;
use App\Http\Requests\UpdateFeedRequest;
use App\Services\OnboardingRedirectService;
use Illuminate\Contracts\View\View;
use Illuminate\Http\RedirectResponse;
class FeedsController extends Controller
{
public function index(): View
{
$feeds = Feed::orderBy('is_active', 'desc')
->orderBy('name')
->get();
return view('pages.feeds.index', compact('feeds'));
}
public function create(): View
{
return view('pages.feeds.create');
}
public function store(StoreFeedRequest $request): RedirectResponse
{
$validated = $request->validated();
$validated['is_active'] = $validated['is_active'] ?? true;
Feed::create($validated);
return OnboardingRedirectService::handleRedirect(
$request,
'feeds.index',
'Feed created successfully!'
);
}
public function show(Feed $feed): View
{
return view('pages.feeds.show', compact('feed'));
}
public function edit(Feed $feed): View
{
return view('pages.feeds.edit', compact('feed'));
}
public function update(UpdateFeedRequest $request, Feed $feed): RedirectResponse
{
$validated = $request->validated();
$validated['is_active'] = $validated['is_active'] ?? $feed->is_active;
$feed->update($validated);
return redirect()->route('feeds.index')
->with('success', 'Feed updated successfully!');
}
public function destroy(Feed $feed): RedirectResponse
{
$feed->delete();
return redirect()->route('feeds.index')
->with('success', 'Feed deleted successfully!');
}
}