first(function ($enum) use ($slug) { return $enum->slug() === $slug; }); if (!$enumType) { return redirect()->route('front.contact.index'); } return view('front.pages.contact.show', compact('enumType')); } /** * Contact send. * * @param \App\Http\Requests\Front\Contact\ContactRequest $request * @return \Illuminate\Http\RedirectResponse */ public function send(ContactRequest $request): \Illuminate\Http\RedirectResponse { $data = $request->validated(); $messageContact = new MailContactData($data); $contactMessage = ""; $hasContactError = false; $newsletterMessage = null; $hasNewsletterError = false; try { dispatch(new SendContactMail($messageContact)) ->onConnection('database') ->onQueue('database'); } catch (AbortContactMailer $e) { Log::error('Fail to build mail from contact page', [ 'exception' => $e ]); $hasContactError = true; $contactMessage = trans('Une erreur est survenue lors de l\'envoi du message de contact.'); } if (!empty($data['newsletter']) && $data['newsletter']) { try { SingleOptin::setStatus($request->email, true); $newsletterMessage = trans("Votre inscription à la newsletter a été prise en compte"); } catch (ApiErrorException $e) { if ($e->getApiError()->equals(ApiError::singleOptinCustomerExists)) { $newsletterMessage = trans("Vous êtes déjà inscrit avec cette adresse email"); } report($e); $hasNewsletterError = true; // phpcs:ignore Generic.Files.LineLength $newsletterMessage = trans('Une erreur est survenue lors de l\'inscription à la newsletter, merci de réessayer ultérieurement.'); } catch (CrmException $e) { report($e); $hasNewsletterError = true; // phpcs:ignore Generic.Files.LineLength $newsletterMessage = trans('Une erreur est survenue lors de l\'inscription à la newsletter, merci de réessayer ultérieurement.'); } } ContactCount::updateOrInsert( ['type' => $data['enumType']], ['submissions' => \DB::raw('submissions + 1')] ); $contactMessage = trans('Votre message a bien été envoyé.'); $message = $newsletterMessage ? $contactMessage . '
' . $newsletterMessage : $contactMessage; return redirect()->back() ->with( $hasContactError || $hasNewsletterError ? 'info' : 'success', new HtmlString($message) ); } }