Compare commits
6
Commits
2e4b8ce58f
...
c7d52b2e39
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c7d52b2e39 | ||
|
|
3b9fbf322f | ||
|
|
5f72174d39 | ||
|
|
f1fbd8b782 | ||
|
|
db91e3ba86 | ||
|
|
1f8f3a663e |
@@ -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('guesses--'.$language);
|
||||
$session->forget('tla-'.$language);
|
||||
$session->forget('correct-'.$language);
|
||||
$session->forget('review-'.$language);
|
||||
$session->put('date-'.$language, date('Y-m-d'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,11 +53,11 @@ 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'),
|
||||
'guesses' => $session->get('guesses--'.$language, []),
|
||||
'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),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -106,21 +107,21 @@ class TlaController extends Controller
|
||||
$score += $guess_array[$i + 3];
|
||||
}
|
||||
|
||||
$session->push('guesses-'.$language, $guess_array);
|
||||
$guesses = $session->get('guesses-'.$language, NULL);
|
||||
$session->push('guesses--'.$language, $guess_array);
|
||||
$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,39 @@ class TlaController extends Controller
|
||||
|
||||
}
|
||||
|
||||
public function review(Request $request, String $language, int $type) {
|
||||
$session = $request->session();
|
||||
if ($session->get('correct-'.$language) == true) {
|
||||
$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);
|
||||
} else $type = $current;
|
||||
|
||||
return response()->json([
|
||||
'likes' => $tla->likes,
|
||||
'dislikes' => $tla->dislikes,
|
||||
'current' => $type,
|
||||
]);
|
||||
}
|
||||
|
||||
else return response(null, 403);
|
||||
|
||||
}
|
||||
|
||||
public function update(Request $request, Tla $tla): RedirectResponse
|
||||
{
|
||||
$request->validate([
|
||||
|
||||
+1
-1
@@ -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"))
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('tla', function (Blueprint $table) {
|
||||
$table->integer('likes')->default(0)->after('context');
|
||||
$table->integer('dislikes')->default(0)->after('likes');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,61 @@
|
||||
<template>
|
||||
<h3>Did you enjoy todays TLA?</h3>
|
||||
<div>
|
||||
<UButton @click="makeRequest(1)" class="rounded-l-full" :icon="current == 1 ? 'mdi:thumbs-up' : 'mdi:thumbs-up-outline'" size="md" color="neutral" variant="outline">{{ likes }}</UButton>
|
||||
<UButton @click="makeRequest(-1)" class="rounded-r-full" :icon="current == -1 ? 'mdi:thumbs-down' : 'mdi:thumbs-down-outline'" size="md" color="neutral" variant="outline">{{ dislikes }}</UButton>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="css" scoped>
|
||||
|
||||
</style>
|
||||
|
||||
<script lang="ts">
|
||||
import axios from 'axios';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
likes: 0,
|
||||
dislikes: 0,
|
||||
current: 0,
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.makeRequest(2)
|
||||
},
|
||||
methods: {
|
||||
makeRequest(type: number) {
|
||||
if (type != 0){
|
||||
if (this.current == type){
|
||||
this.current = 0;
|
||||
if (type == 1) this.likes--;
|
||||
else if (type == -1) this.dislikes--;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (type == 1) {
|
||||
this.likes++;
|
||||
if (this.current == -1) this.dislikes--;
|
||||
}
|
||||
else if (type == -1) {
|
||||
this.dislikes++;
|
||||
if (this.current == 1) this.likes--;
|
||||
}
|
||||
|
||||
this.current = type;
|
||||
}
|
||||
}
|
||||
|
||||
axios
|
||||
.get("/api/review/en/"+type)
|
||||
.then(response => {
|
||||
this.likes = response.data.likes;
|
||||
this.dislikes = response.data.dislikes;
|
||||
this.current = response.data.current;
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -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';
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
@@ -115,9 +116,11 @@
|
||||
</template>
|
||||
<template v-if="!correct && guesses.length >= maxGuesses">
|
||||
You ran out of guesses. Todays TLA was <b>{{ tla }}</b>
|
||||
<Review/>
|
||||
</template>
|
||||
<template v-if="correct">
|
||||
You completed todays TLAdle! Todays TLA was <b>{{ tla }}</b>
|
||||
<Review/>
|
||||
</template>
|
||||
<h3>Guesses left: {{ maxGuesses - guesses.length }}</h3>
|
||||
|
||||
|
||||
@@ -11,4 +11,5 @@ Route::middleware('web')->group(function () {
|
||||
Route::get('fetch_dev', function() {
|
||||
return response()->json(['dev' => env('DEV_MESSAGE', false)]);
|
||||
});
|
||||
Route::get('review/{language}/{type}', [\App\Http\Controllers\TlaController::class, 'review']);
|
||||
});
|
||||
Reference in New Issue
Block a user