$staticPageModel]); } /** * Send contact form data. * * @param \App\Http\Requests\Fo\ContactFormRequest $request * @return \Illuminate\Http\RedirectResponse */ public function contactSubmit(ContactFormRequest $request): \Illuminate\Http\RedirectResponse { return DB::transaction(function () use ($request) { try { $data = new MailContactData( $request->safe()->except(['g-recaptcha-response', 'joinFile', 'locale']) ); $locale = $request->input('locale'); $joinFilePath = ContactFormType::make($request->type)->hasFileInput() ? $this->storeFile($request->file('joinFile')) : null; // Send to Passerelle if it is a complain about a product. if (isset($locale) && ContactFormType::make($request->input('locale'))->equals(ContactFormType::nl)) { app()->setLocale('nl'); \dispatch(new SendNLMail($data, $joinFilePath)); } elseif (ContactFormType::make($request->type)->equals(ContactFormType::complain)) { \dispatch(new SendPasserelleMail($data, $joinFilePath)); } else { \dispatch(new SendArcadiaMail($data, $joinFilePath)); } return back()->with('success', trans('contact.message_contact_send')); } catch (AbortContactMailer $e) { Log::error('Fail to build mail from complain page ', ['exception' => $e]); } //end try return back()->withInput()->with( 'error', trans('contact.message_contact_failed') ); }); } /** * Store the file sent in the request if it exists. * * @param \Illuminate\Http\UploadedFile|null $file * * @return string|null */ private function storeFile(\Illuminate\Http\UploadedFile|null $file): string|null { $joinFilePath = null; $joinFile = ''; if ($file) { $uniqIdDirectory = \uniqid(); $joinFile = Storage::disk('local')->put( sprintf('public/tmp/%s', $uniqIdDirectory), $file ); $joinFilePath = storage_path('app/' . $joinFile); } return $joinFilePath; } }