ldc-gen-game-web/app/Http/Requests/ExportCodesRequest.php
Jérémy Munsch 9ee2123928
- composer require kwaadpepper/serial-int-caster
- add code parameters into config
- add code length parameter into settings
- add total possible codes to generate in generation page
- add GenerateRequest validation
- changed job ProcessUniqueCode to increase performances using mass insert and pagination
- changed singletoned Settings instance to increase performances
- Fix process export code put datetime in file name
- aded storage to gitignore file
- fixed export to guess export codes, also non recursive now
- changed refactorize a bit EnterCodeController::participate + add request
- Add request to export and generate codes requests
2022-01-07 19:03:25 +01:00

62 lines
1.8 KiB
PHP

<?php
namespace App\Http\Requests;
use App\Models\Codes;
use Illuminate\Foundation\Http\FormRequest;
class ExportCodesRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return boolean
*/
public function authorize()
{
/** @var \Illuminate\Database\Eloquent\Builder */
$codesAvailableToExport = Codes::whereCodeExported(false);
$lastExportedId = Codes::whereCodeExported(true)
->orderBy('id', 'desc')->first()->id ?? null;
if ($lastExportedId) {
$codesAvailableToExport = $codesAvailableToExport
->where('id', '>', $lastExportedId);
}
$this->merge([
'available_export' => $codesAvailableToExport->count()
]);
// ? Is auth and super admin, also is json ?
return auth()->check() and
auth()->user()->role === 1 and $this->json();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'nb_code_fic' => 'required|integer|min:1',
'nb_code_tot' => 'required|integer|min:1',
'nb_code_ligne' => 'required|integer|min:1',
'available_export' => 'required|integer|gte:nb_code_tot'
];
}
/**
* Get custom attributes for validator errors.
*
* @return array
*/
public function attributes(): array
{
return [
'nb_code_fic' => 'Nombre total de codes à exporter',
'nb_code_tot' => 'Nombre de codes par fichier',
'nb_code_ligne' => 'Nombre de codes par ligne',
'available_export' => 'Nombre de codes restant à exporté(s)'
];
}
}