ldc-gen-game-web/app/Http/Controllers/EnterCodeController.php

54 lines
2 KiB
PHP
Raw Normal View History

2020-10-29 15:40:23 +01:00
<?php
namespace App\Http\Controllers;
use App\Models\CodesEAN;
use App\Models\Prizes;
use App\Models\Settings;
use Illuminate\Http\Request;
class EnterCodeController extends Controller
{
public function index() {
// TODO : Compté les participations du user en cours pour voir s'il peut jouer, sinon rediriger vers participation-exhausted
$settings = Settings::find(1)->select('use_ean_codes', 'nb_participation_player')->first();
// return view('front.basic.participation-exhausted', compact('settings'));
2020-10-29 15:40:23 +01:00
return view('front.basic.enter-code', compact('settings'));
}
public function participate(Request $request) {
$code = $request->code;
$settings = Settings::select('use_ean_codes')->first();
if ($settings->use_ean_codes) {
$codeEan = $request->code_ean;
$eanExist = CodesEAN::where('code', $codeEan)->count();
if ($eanExist === 0) {
return redirect()->back()->withErrors('Le code EAN entré est incorrect, veuillez réessayer.');
}
}
$gagne = false;
// TODO : Traitement du code, instant gagnant etc
if ($gagne) {
$prizeId = $request->prize;
$prize = Prizes::findOrFail($prizeId);
// TODO : Check que le participant à bien gagné avant de renvoyé la vue, sinon 404
return view('front.basic.' . $prize->gain_view->file_name, compact('prize'));
2020-10-29 15:40:23 +01:00
} else {
// Page perdu si jeu non 100% gagnant, reduction sinon
$perdant = false;
$nbDefaultPrize = Prizes::where('is_default', 1)->count();
if ($nbDefaultPrize === 0 ) {
$perdant = true;
}
if ($perdant) {
return view('front.basic.loose');
2020-10-29 15:40:23 +01:00
} else {
$prizes = Prizes::where('is_default', 1)->get();
// TODO : Gérer quel prix par défaut on retourne avec un pourcentage
return view('front.basic.reduction', compact('prizes'));
2020-10-29 15:40:23 +01:00
}
}
}
}