ldc-boutique-cnc/app/Http/Requests/CustomerRegisterRequest.php
Olivier Legat b16c0e9128 adding kwaadpepper enums
adding register mode setting
providing app db settings in config()
validating requirement/optionnality of registration field upon defined register mode
2021-07-21 12:57:50 +02:00

63 lines
2 KiB
PHP

<?php
namespace App\Http\Requests;
use Carbon\Carbon;
use Illuminate\Foundation\Http\FormRequest;
use App\Rules\Adult;
use Illuminate\Validation\Rule;
class CustomerRegisterRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
if(config('bosettings.register_salaries') && config('bosettings.register_public')) {
$matriculeRule = 'nullable|exists:salaries,matricule';
$codeRule = ['nullable',
Rule::exists('salaries', 'code')
->where('matricule', data_get($this->all(), 'matricule'))
];
} elseif (config('bosettings.register_salaries') && !config('bosettings.register_public')) {
$matriculeRule = 'required|exists:salaries,matricule';
$codeRule = ['required',
Rule::exists('salaries', 'code')
->where('matricule', data_get($this->all(), 'matricule'))
];
} else {
$matriculeRule = 'sometimes';
$codeRule = 'sometimes';
}
return [
'matricule' => $matriculeRule,
'code' => $codeRule,
'lastname' => 'required|string|max:255',
'firstname' => 'required|string|max:255',
'phone' => 'sometimes|max:255',
'address' => 'sometimes|max:255',
'postal_code' => 'required',
'town' => 'required|string|max:255',
'email' => 'required|email:rfc,dns,spoof|max:255',
'password' => 'required|confirmed|min:8|max:255',
'ok_cgv' => 'accepted',
'optin' => 'sometimes',
'birth_date' => ['required',new Adult()],
];
}
}