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

33 lines
801 B
PHP

<?php
namespace App\Http\Controllers;
use App\Models\BookRecommendation;
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);
}
}