status; $user = null; $type = $type ?? ContactFormType::none(); return view('front.contact.contact', compact('type', 'user', 'status')); } public function contactSubmit(ContactFormRequest $request) { try { $data = new MailContactData(); $data->fill($request->all()); Mail::to(config('mail.contactsList.contact')) ->send( new MailsContact( $data, realpath($this->getContactFilePathArchadia()) . DIRECTORY_SEPARATOR . sprintf('contact_le_gaulois_%d_%d.csv', time(), rand(1000, 9999)) ) ); ModelsContact::incrementStat($data->type); return response()->redirectToRoute('contact-us', ['status' => true]); } catch (AbortContactMailer $e) { Log::error('Fail to build mail from contact page ', ['exception' => $e]); } return back()->withInput()->with('status', false); } public function complain(Request $request) { return $this->contact($request, ContactFormType::complain()); } public function complainSubmit(ContactFormRequest $request) { try { $data = new MailContactData(); $data->fill($request->all()); Mail::to(config('mail.contactsList.passerelle')) ->send(new MailsContactComplain( $data, realpath($this->getContactFilePathPasserelle()) . DIRECTORY_SEPARATOR . sprintf('LEGAULOIS_PASS_MESSAGE-%s.xml', date("YmdHis")) )); ModelsContact::incrementStat($data->type); return response()->redirectToRoute('product-request', ['status' => true]); } catch (AbortContactMailer $e) { Log::error('Fail to build mail from complain page ', ['exception' => $e]); } return back()->withInput()->with('status', false); } private function getContactFilePathArchadia($passerelle = false): string { $path = !$passerelle ? config('contactfiles.dossierFichiersArchadia') : config('contactfiles.dossierFichiersPasserelle'); if (!File::isDirectory($path)) { if (!File::makeDirectory($path, 0007, true, true)) { throw new AbortContactMailer(sprintf('Could not create %s', $path)); } } return $path; } private function getContactFilePathPasserelle(): string { return $this->getContactFilePathArchadia(true); } }