65 lines
2.3 KiB
PHP
65 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Content;
|
|
use App\Models\Product;
|
|
use App\Models\Slider;
|
|
use App\Models\Range;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Validator;
|
|
use LDC\LDCCRM\Enums\ApiError;
|
|
use LDC\LDCCRM\Exceptions\ApiErrorException;
|
|
use LDC\LDCCRM\Exceptions\CrmException;
|
|
use LDC\LDCCRM\Models\SingleOptin;
|
|
|
|
class HomeController extends Controller
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
$content = Content::where('key', 'accueil')->first();
|
|
// star products
|
|
$products = Product::where('status', 1)->where('star', 1)->get();
|
|
|
|
$slider = Slider::where('slug', 'home')->first();
|
|
$slides = $slider->showableSlides;
|
|
|
|
$quickorder_ranges = Range::with('products')->get();
|
|
foreach ($quickorder_ranges as $range) {
|
|
foreach ($range->products as $product) {
|
|
$product->calculatedPrices = $product->getCalcPrices();
|
|
}
|
|
}
|
|
|
|
return view('home', compact('content', 'products', 'slides', 'quickorder_ranges'));
|
|
}
|
|
|
|
/**
|
|
* Call the CRM to add a single optin
|
|
* @param string $email Email to add as a single optin
|
|
* @return string Message to print to the customer
|
|
*/
|
|
public function addOptIn(Request $request)
|
|
{
|
|
$validator = Validator::make($request->all(), ['email' => 'required|email']);
|
|
if ($validator->fails()) {
|
|
return __('L\'adresse email est incorrecte');
|
|
}
|
|
|
|
try {
|
|
SingleOptin::setStatus($request->email, true);
|
|
return trans('Votre inscription à la newsletter a été prise en compte');
|
|
} 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 trans('Une erreur est survenue, merci de réessayer ultérieurement');
|
|
} catch (CrmException $e) {
|
|
report($e);
|
|
return trans('Une erreur est survenue, merci de réessayer ultérieurement');
|
|
}
|
|
return trans('Une erreur est survenue, merci de réessayer ultérieurement ');
|
|
}
|
|
}
|