From e393ba59434c803fc6358313735ba653a17e6745 Mon Sep 17 00:00:00 2001 From: Flycro Date: Wed, 20 Mar 2024 18:12:23 +0100 Subject: [PATCH] feat: Vote Functionality --- app/Http/Controllers/VoteController.php | 19 ++++++++++ nuxt/components/admin/AddVotes.vue | 48 +++++++++++++++++++++++++ nuxt/components/modal/CastVote.vue | 14 +++++--- 3 files changed, 77 insertions(+), 4 deletions(-) create mode 100644 nuxt/components/admin/AddVotes.vue diff --git a/app/Http/Controllers/VoteController.php b/app/Http/Controllers/VoteController.php index df0aa4d..602f08b 100644 --- a/app/Http/Controllers/VoteController.php +++ b/app/Http/Controllers/VoteController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Models\BookRecommendation; +use App\Models\User; use App\Models\Vote; use Illuminate\Http\Request; @@ -29,4 +30,22 @@ class VoteController extends Controller 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.']); + } } diff --git a/nuxt/components/admin/AddVotes.vue b/nuxt/components/admin/AddVotes.vue new file mode 100644 index 0000000..14747b7 --- /dev/null +++ b/nuxt/components/admin/AddVotes.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/nuxt/components/modal/CastVote.vue b/nuxt/components/modal/CastVote.vue index d7f3be3..d5127a9 100644 --- a/nuxt/components/modal/CastVote.vue +++ b/nuxt/components/modal/CastVote.vue @@ -1,10 +1,12 @@