get()->sum('value'); return view('fo.pages.home', compact( 'staticPageModel', 'mainSlideModels', 'rangeModels', 'demarcheSlideModels', 'productViews', 'newsModels', 'recipeModels', 'hotNewsSettings', 'videoModels', 'discountsTotal', )); } /** * 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); } } /** * Unsubscribe from newsletter * * @param App\Http\Requests\Fo\SingleOptinRequest $request * @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory */ public function unscribeNewsletter(SingleOptinRequest $request) { // TODO: handle single optin avec hashcode. $message = null; try { // ? Is hashcode valid ? Validator::validate([ 'hashcode' => $request->hashcode ], [ 'hashcode' => 'required|uuid' ]); if ($customer = Customer::find($request->hashcode)) { $customer->opt_in = false; // ! Les données peuvent être parsés en retour de la crm et inconsitantes (Héritage vielle crm). try { $customer->save(); } catch (ValidationException $e) { $message = null; } $message = trans('Votre désinscription à la newsletter a été prise en compte'); } } catch (IlluminateValidationException $e) { // Les données peuvent être parsés en retour de la crm et sont inconsitantes. $message = null; } catch (ApiErrorException $e) { if (!$e->getApiError()->equals(ApiError::singleOptinCustomerExists)) { if (app()->bound('sentry')) { app('sentry')->captureException($e); } if ($request->hashcode) { SingleOptin::setStatus($request->email, true); $message = trans('Votre désinscription à la newsletter a été prise en compte'); } else { $message = trans('Une erreur est survenue, merci de réessayer ultérieurement'); } } } catch (CrmException $e) { if (app()->bound('sentry')) { app('sentry')->captureException($e); } $message = trans('Une erreur est survenue, merci de réessayer ultérieurement'); }//end try if (!$message) { $message = trans('Le lien de désinscription est invalide'); } return view('front.singleoptin-unsubscribe', compact('message')); } /** * Display a listing of the resource. * * @return \Illuminate\Http\JsonResponse */ public function updateHotNewsSatus(): \Illuminate\Http\JsonResponse { Cache::put('hotNewsIsDisplayed', true, now()->addHours(24)); return response()->json(); } }