move into sonardesk
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
<?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.');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user