diff --git a/app/Http/Controllers/TlaController.php b/app/Http/Controllers/TlaController.php index 021b933..0ae2b43 100644 --- a/app/Http/Controllers/TlaController.php +++ b/app/Http/Controllers/TlaController.php @@ -31,12 +31,13 @@ class TlaController extends Controller public function session_flush(Request $request, string $language) { $session = $request->session(); - if ($session->get('date', NULL) != date('Y-m-d')) + if ($session->get('date'.$language, NULL) != date('Y-m-d')) { $session->forget('guesses-'.$language); - $session->forget('tla'); - $session->forget('correct'); - $session->put('date', date('Y-m-d')); + $session->forget('tla'.$language); + $session->forget('correct'.$language); + $session->forget('review'.$language); + $session->put('date'.$language, date('Y-m-d')); } } @@ -53,10 +54,10 @@ class TlaController extends Controller return response()->json([ 'hint' => $tla->hint, 'guesses' => $session->get('guesses-'.$language, []), - 'date' => $session->get('date'), - 'tla' => $session->get('tla') == $tla->acronym ? $tla->acronym : NULL, - 'context' => $session->get('tla') == $tla->acronym ? $tla->context : NULL, - 'correct' => $session->get('correct'), + 'date' => $session->get('date'.$language), + 'tla' => $session->get('tla'.$language) == $tla->acronym ? $tla->acronym : NULL, + 'context' => $session->get('tla'.$language) == $tla->acronym ? $tla->context : NULL, + 'correct' => $session->get('correct'.$language), ]); } @@ -110,17 +111,17 @@ class TlaController extends Controller $guesses = $session->get('guesses-'.$language, NULL); if ($score == 12 || count($guesses) == env('MAX_GUESSES', 10)) { - $session->put('tla', $tla_object->acronym); - if ($score == 12) $session->put('correct', true); + $session->put('tla'.$language, $tla_object->acronym); + if ($score == 12) $session->put('correct'.$language, true); } return response()->json([ 'guesses' => $guesses, 'date' => $session->get('date'), - 'tla' => $session->get('tla') == $tla_object->acronym ? $tla_object->acronym : NULL, - 'context' => $session->get('tla') == $tla_object->acronym ? $tla_object->context : NULL, + 'tla' => $session->get('tla'.$language) == $tla_object->acronym ? $tla_object->acronym : NULL, + 'context' => $session->get('tla'.$language) == $tla_object->acronym ? $tla_object->context : NULL, 'score' => $score, - 'correct' => $session->get('correct'), + 'correct' => $session->get('correct'.$language), ]); } @@ -128,6 +129,34 @@ class TlaController extends Controller } + public function review(Request $request, String $language, int $type) { + $session = $request->session(); + $current = $session->get('review'.$language); + $tla = Tla::GetCurrentTla($language); + + if ($type != 2) { + if ($current == $type) { + if ($current == 1) $tla->likes--; + else if ($current == -1) $tla->dislikes--; + $type = 2; + } else { + if ($current == 1) $tla->likes--; + else if ($current == -1) $tla->dislikes--; + + if ($type == 1) $tla->likes++; + else if ($type == -1) $tla->dislikes++; + } + $tla->save(); + $session->put('review'.$language, $type); + } + + return response()->json([ + 'likes' => $tla->likes, + 'dislikes' => $tla->dislikes, + 'current' => $type, + ]); + } + public function update(Request $request, Tla $tla): RedirectResponse { $request->validate([ diff --git a/app/Models/Tla.php b/app/Models/Tla.php index 1e6ab2b..0b26bcc 100644 --- a/app/Models/Tla.php +++ b/app/Models/Tla.php @@ -11,7 +11,7 @@ class Tla extends Model use HasFactory; - protected $fillable = ['acronym', 'hint', 'language', 'used', 'context']; + protected $fillable = ['acronym', 'hint', 'language', 'used', 'context', 'likes', 'dislikes']; public static function GetCurrentTla( string $language ) : Tla { $tla = Tla::where('used', date("Y-m-d")) diff --git a/database/migrations/2026_08_18_065638_add_review_columns.php b/database/migrations/2026_08_18_065638_add_review_columns.php new file mode 100644 index 0000000..4a2e9e4 --- /dev/null +++ b/database/migrations/2026_08_18_065638_add_review_columns.php @@ -0,0 +1,27 @@ +integer('likes')->default(0)->after('context'); + $table->integer('dislikes')->default(0)->after('likes'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // + } +}; diff --git a/resources/js/components/Review.vue b/resources/js/components/Review.vue new file mode 100644 index 0000000..a28b9f0 --- /dev/null +++ b/resources/js/components/Review.vue @@ -0,0 +1,59 @@ + + + + + \ No newline at end of file diff --git a/resources/js/pages/HomeView.vue b/resources/js/pages/HomeView.vue index 83094c9..f2c3739 100644 --- a/resources/js/pages/HomeView.vue +++ b/resources/js/pages/HomeView.vue @@ -2,6 +2,7 @@ import axios from 'axios'; import GuessWord from '../components/GuessWord.vue'; import Modal from '../components/Modal.vue'; +import Review from '../components/Review.vue';