where('published', true)->orderBy('order', 'ASC') ->with('approach')->get(); $demarcheSlideModels = DemarcheSlide::query()->where('published', true)->orderBy('order', 'ASC')->get(); $productViews = Product::getProductsViewsByRange(); $hotNewsSettings = GeneralSetting::query()->where('type', SettingsType::hotNews)->first(); // FIXME: replace 'for loop' by eloquent orm on news publicated. for ($i = 0; $i < 5; $i++) { $newsModels[] = (object)['title' => "lorem ipsum"]; } $newsModels = collect($newsModels); // FIXME: replace 'for loop' by eloquent orm on recipes publicated. for ($i = 0; $i < 5; $i++) { $recipeModels[] = (object)[ 'name' => "lorem ipsum", 'cooking_time' => '1h32', 'preparation_time' => '40min', 'difficulty' => 'ez', 'picture' => Vite::asset('resources/assets/images/tmp/product-picture.png'), 'packaging' => Vite::asset('resources/assets/images/tmp/packaging.png'), 'alt' => "lorem ipsum", 'title' => "lorem ipsum", 'isFavorite' => ($i % 2) ? true : false, 'tags' => (object)[(object)['name' => "lorem ipsum"], (object)['name' => "lorem ipsum"]] ]; }; $recipeModels = collect($recipeModels); return view('fo.pages.home', compact( 'mainSlideModels', 'demarcheSlideModels', 'productViews', 'newsModels', 'recipeModels', 'hotNewsSettings' )); } /** * Call the CRM to add a single optin * * @param \App\Http\Requests\Fo\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) { // Il y a deja un customerInfo avec optin a true pour ce customer. if ($e->getApiError()->equals(ApiError::singleOptinCustomerExists())) { return trans('Vous êtes déjà inscrit avec cette adresse email'); } \report($e); return \response(trans('Une erreur est survenue, merci de réessayer ultérieurement'), 404); } catch (CrmException $e) { \report($e); return \response(trans('Une erreur est survenue, merci de réessayer ultérieurement'), 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\JsonResponse */ public function updateHotNewsSatus(): \Illuminate\Http\JsonResponse { // Cache::remember("hotNewsIsDisplayed", 60 * 60 * 24, fn() => true); Cache::put('hotNewsIsDisplayed', true, now()->addHours(24)); return response()->json(); } }