bookclub-manager/app/Http/Controllers/VoteController.php

52 lines
1.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\BookRecommendation;
use App\Models\User;
use App\Models\Vote;
use Illuminate\Http\Request;
class VoteController extends Controller
{
public function castVote(Request $request)
{
$request->validate([
'book_recommendation_id' => 'required|exists:book_recommendations,id',
]);
$user = $request->user();
if ($user->total_votes > 0) {
$user->decrement('total_votes');
Vote::create([
'user_id' => $user->id,
'book_recommendation_id' => $request->book_recommendation_id,
]);
return response()->json(['message' => 'Vote successfully cast.']);
}
return response()->json(['message' => 'No remaining votes.'], 403);
}
public function addTotalVotesAll(Request $request)
{
$request->validate([
'total_votes' => 'required|integer|min:1',
]);
if (!(auth()->user()->hasRole('admin')) ) {
return response()->json(['message' => 'Keine Berechtigung.'], 403);
}
$users = User::all();
foreach ($users as $user) {
$user->increment('total_votes', $request->total_votes);
}
return response()->json(['message' => 'Total votes added to all book recommendations.']);
}
}