birth_date)->lessThanOrEqualTo(Carbon::now()->subYears(18))) {
return back()
->withInput($request->except('password'))
->withErrors("Vous devez être majeur pour vous inscrire au jeu.");
}
$crmCustomer = null;
try {
$crmCustomer = new CrmCustomer(\array_intersect_key(
$request->validated(),
[
'firstname' => '',
'lastname' => '',
'birth_date' => '',
'address' => '',
'postcode' => '',
'country' => '',
'city' => '',
'phone' => '',
'email' => '',
'password' => '',
'opt_in' => '',
]
));
$crmCustomer->password = $request->password;
$crmCustomer->save();
$tokenMail = Str::uuid();
Mail::to($request->email)->send(new VerifyEmail($crmCustomer, $tokenMail));
$customer = new Customer();
$customer->email = $crmCustomer->email;
$customer->hashcode = $crmCustomer->hashcode;
$customer->email_verify_token = $tokenMail;
$customer->saveOrFail();
return redirect()->route('login')
->with('success', sprintf(
'%s %s %s %s %s',
'Pour finaliser votre inscription, merci de cliquer sur le lien qui vient de vous être envoyé par',
'email
Informations complémentaires :
',
'- Vérifiez vos spams : l\'email de confirmation s\'y trouve peut-être
',
'- Attention : le mail peut parfois mettre quelques minutes à vous parvenir
',
//phpcs:ignore Generic.Files.LineLength.TooLong
'- L\'activation de votre compte doit se faire dans les 24 heures qui suivent la demande de création.'
));
} catch (ApiErrorException $e) {
if ($e->getApiError()->equals(ApiError::customerExists())) {
return back()->withErrors('Un compte est déjà associé à cette adresse email.');
}
if ($e->getApiError()->equals(ApiError::validationFailed())) {
return back()->withErrors($e->getMessage());
}
report($e);
return back()->withErrors('Une erreur est survenue, merci de réessayer ultérieurement.');
} catch (ValidationException $e) {
return back()->withErrors($e->getMessage());
} catch (\Exception | \TypeError | CrmException $e) {
\report($e);
// ! Une erreur critique est survenue avec la CRM.
return back()->withErrors('Une erreur est survenue, merci de réessayer ultérieurement.');
} //end try
return back()->withErrors('Une erreur est survenue, merci de réessayer ultérieurement.');
}
}