Files
lernapp/app/Http/Controllers/Admin/RedemptionController.php
T

34 lines
1.4 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\RewardRedemption;
use Illuminate\Http\Request;
class RedemptionController extends Controller {
public function index() {
$pending = RewardRedemption::with(['user','reward'])->where('status','pending')->latest()->get();
$resolved = RewardRedemption::with(['user','reward','resolver'])->whereIn('status',['approved','rejected'])->latest()->take(50)->get();
return view('admin.redemptions.index', compact('pending','resolved'));
}
public function approve(RewardRedemption $redemption) {
if ($redemption->status !== 'pending') abort(422);
$redemption->update([
'status' => 'approved',
'resolved_at' => now(),
'resolved_by' => auth()->id(),
]);
return back()->with('success','Freigegeben!');
}
public function reject(Request $r, RewardRedemption $redemption) {
if ($redemption->status !== 'pending') abort(422);
$redemption->update([
'status' => 'rejected',
'note' => $r->note,
'resolved_at' => now(),
'resolved_by' => auth()->id(),
]);
// Punkte zurückgeben
$redemption->user->increment('points', $redemption->points_spent);
return back()->with('success','Abgelehnt, Punkte zurückgebucht.');
}
}