ldc-gen-game-web/app/Http/Controllers/Fo/CustomerController.php

54 lines
1.6 KiB
PHP

<?php
namespace App\Http\Controllers\Fo;
use App\Http\Controllers\Controller;
use App\Http\Requests\Fo\CompleteInfosRequest;
use Illuminate\Support\Facades\Session;
use LDC\LDCCRM\Exceptions\ApiErrorException;
use LDC\LDCCRM\Exceptions\CrmException;
use LDC\LDCCRM\Exceptions\ValidationException;
class CustomerController extends Controller
{
/**
* Show customer complete form
*
* @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory
*/
public function completeInfos()
{
/** @var \App\Models\Customer $customer */
$customer = auth('customer')->user();
return view('front.basic.complete-infos', ['customer' => $customer]);
}
/**
* Update account info
*
* @param CompleteInfosRequest $request
* @return \Illuminate\Http\RedirectResponse
*/
public function completeInfosSubmit(CompleteInfosRequest $request)
{
/** @var \App\Models\Customer $customer */
$customer = auth('customer')->user();
try {
/** @var \LDC\LDCCRM\Models\Customer $crmCustomer */
$crmCustomer = $customer->apiData;
$crmCustomer->fill($request->validated());
$crmCustomer->save();
Session::remove('needCrmInfoUpdate');
return redirect()->route('saisir-code');
} catch (ApiErrorException | ValidationException $e) {
return back()->withErrors($e->getMessage());
} catch (\Exception | \TypeError | CrmException $e) {
\report($e);
} //end try
return back()->withErrors('Une erreur est survenue, merci de réessayer ultérieurement.');
}
}