session()->get('status'); $type = $type ?? ContactFormType::none(); $username = $request->username ?? ''; return view('front.contact.contact', compact('type', 'user', 'status', 'username')); } /** * Submit contact Form * * @param \App\Http\Requests\ContactFormRequest $request * @return \Illuminate\Http\RedirectResponse */ public function contactSubmit(ContactFormRequest $request) { return DB::transaction(function () use ($request) { try { $data = new MailContactData($request->all()); if ($request->type == ContactFormType::onepage()->value) { SendNLMail::dispatchAfterResponse($data); } else { SendArchadiaMail::dispatchAfterResponse($data); } Contact::incrementStat($data->type); return back()->with('status', true); } catch (AbortContactMailer $e) { Log::error('Fail to build mail from contact page ', ['exception' => $e]); } return back()->withInput()->with('status', false); }); } /** * Show complain form * * @param \Illuminate\Http\Request $request * @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory */ public function complain(Request $request) { return $this->contact($request, ContactFormType::complain()); } /** * Submit complain form * * @param \App\Http\Requests\ContactFormRequest $request * @return \Illuminate\Http\RedirectResponse */ public function complainSubmit(ContactFormRequest $request) { return DB::transaction(function () use ($request) { try { $data = new MailContactData($request->all()); SendPasserelleMail::dispatchAfterResponse($data); Contact::incrementStat($data->type); return back()->with('status', true); } catch (AbortContactMailer $e) { Log::error('Fail to build mail from complain page ', ['exception' => $e]); } return back()->withInput()->with('status', false); }); } /** * Report customer from Club magnet exchange * * @param \Illuminate\Http\Request $request * @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory */ public function reportCustomer(Request $request) { return $this->contact($request, ContactFormType::abuse()); } /** * Propose meal recipe * * @param \Illuminate\Http\Request $request * @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory */ public function proposeRecipe(Request $request) { return $this->contact($request, ContactFormType::recipe()); } }