where('published', true) ->orderBy('order', 'DESC') ->get(); // Gammes. $ranges = Range::all(); // VIP Products. $threeproducts = Product::where('published', true) ->where('is_vip', true) ->take(3) ->orderBy('priority_order', 'DESC') ->with('subrange.range') ->get(); // Get Agenda. // Events starting in the future. $events = News::query()->where('published', true) ->where('event_start', '>', now()) ->orderBy('event_start', 'desc') ->take(2)->get()->reverse(); // Get last 3 News. $news = News::query()->latest()->where('published', true) ->take(3)->with('categories')->get(); return view('fo.pages.home', compact( 'slides', 'ranges', 'threeproducts', 'events', 'news' )); } /** * Call the CRM to add a single optin * * @param \App\Http\Requests\Fo\Newsletter\SingleOptinRequest $request * @return string|array|null|\Illuminate\Contracts\Translation\Translator * @throws \LDC\LDCCRM\Exceptions\ValidationException ValidationException. * @throws \Illuminate\Contracts\Container\BindingResolutionException BindingResolutionException. */ public function addOptIn(SingleOptinRequest $request) { try { SingleOptin::setStatus($request->email, true); return \response(trans("Votre inscription à la newsletter a été prise en compte"), 200); } catch (ApiErrorException $e) { \report($e); return \response(trans('Une erreur est survenue, merci de réessayer ultérieurement'), 500); } catch (CrmException $e) { \report($e); return \response(trans('Une erreur est survenue, merci de réessayer ultérieurement'), 500); } } /** * unsubscribeNewsletter method * * @param \App\Http\Requests\Fo\Newsletter\UnsubscribeNewsletterRequest $request * @return \Illuminate\Contracts\View\View */ public function unsubscribeNewsletter(UnsubscribeNewsletterRequest $request): \Illuminate\Contracts\View\View { $error = null; $hashcode = $request->hashcode; try { SingleOptin::unsetStatusWithHashcode($hashcode); } catch (ApiErrorException $e) { Log::debug($e->getMessage()); if ($e->getApiError()->equals(ApiError::modelNotFound)) { abort(404); } else { if (app()->bound('sentry')) { app('sentry')->captureException($e); } $error = true; } } catch (CrmException $e) { Log::debug($e->getMessage()); $error = true; if (app()->bound('sentry')) { app('sentry')->captureException($e); } } //end try if (!is_null($error)) { return view('fo.pages.newsletter-unsubscribe')->with( 'error', trans('Une erreur est survenue, merci de réessayer ultérieurement') ); } return view('fo.pages.newsletter-unsubscribe'); } }