fedi-feed-router/backend/app/Http/Controllers/FeedsController.php

82 lines
2.1 KiB
PHP
Raw Normal View History

2025-07-05 02:37:38 +02:00
<?php
namespace App\Http\Controllers;
use App\Models\Feed;
2025-07-06 11:30:38 +02:00
use App\Http\Requests\StoreFeedRequest;
use App\Http\Requests\UpdateFeedRequest;
use App\Services\OnboardingRedirectService;
2025-07-05 02:37:38 +02:00
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();
2025-07-06 11:30:38 +02:00
2025-07-05 02:37:38 +02:00
return view('pages.feeds.index', compact('feeds'));
}
public function create(): View
{
return view('pages.feeds.create');
}
2025-07-06 11:30:38 +02:00
public function store(StoreFeedRequest $request): RedirectResponse
2025-07-05 02:37:38 +02:00
{
2025-07-06 11:30:38 +02:00
$validated = $request->validated();
2025-07-05 02:37:38 +02:00
$validated['is_active'] = $validated['is_active'] ?? true;
Feed::create($validated);
2025-07-06 11:30:38 +02:00
return OnboardingRedirectService::handleRedirect(
$request,
'feeds.index',
'Feed created successfully!'
);
2025-07-05 02:37:38 +02:00
}
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'));
}
2025-07-06 11:30:38 +02:00
public function update(UpdateFeedRequest $request, Feed $feed): RedirectResponse
2025-07-05 02:37:38 +02:00
{
2025-07-06 11:30:38 +02:00
$validated = $request->validated();
2025-07-05 02:37:38 +02:00
$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!');
}
2025-07-10 12:17:42 +02:00
public function toggle(Feed $feed): RedirectResponse
{
$newStatus = !$feed->is_active;
$feed->update(['is_active' => $newStatus]);
$status = $newStatus ? 'activated' : 'deactivated';
return redirect()->route('feeds.index')
->with('success', "Feed {$status} successfully!");
}
2025-07-06 11:30:38 +02:00
}