Files
2026-07-24 14:59:44 +01:00

39 lines
1.1 KiB
PHP

<?php
namespace Modules\Comments\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
use Modules\Comments\Models\Comment;
final class CommentController extends Controller
{
public function index(Request $r): View
{
$q = Comment::latest();
if ($r->filled('status')) {
$q->where('status', $r->string('status'));
}
return view('comments::admin.index', ['records' => $q->paginate(30)]);
}
public function update(Request $r, Comment $comment): RedirectResponse
{
$data = $r->validate(['status' => ['required', 'in:pending,approved,spam,rejected'], 'moderation_notes' => ['nullable', 'string']]);
$data['approved_at'] = $data['status'] === 'approved' ? now() : null;
$comment->update($data);
return back()->with('status', 'Comment moderated.');
}
public function destroy(Comment $comment): RedirectResponse
{
$comment->delete();
return back()->with('status', 'Comment deleted.');
}
}