diff --git a/app/Http/Controllers/CustomerController.php b/app/Http/Controllers/CustomerController.php index 620dc7e..8b87ebe 100644 --- a/app/Http/Controllers/CustomerController.php +++ b/app/Http/Controllers/CustomerController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Http\Requests\CustomerDeleteRequest; use App\Models\Brand; use App\Models\Customer; use App\Models\CustomerInfos; @@ -44,4 +45,19 @@ class CustomerController extends Controller return response()->json($customers); } + + public function delete(CustomerDeleteRequest $request, Customer $customer, Brand $brand) + { + $nbBrand = $customer->infos()->count(); + + $customer->infos()->where('brand_id', $brand->id)->delete(); + $customer->logins()->where('brand_id', $brand->id)->delete(); + $customer->optInHistory()->where('brand_id', $brand->id)->delete(); + + if ($nbBrand === 1) { + $customer->delete(); + } + + return redirect()->route('customers')->with('success', "Compte supprimé."); + } } diff --git a/app/Http/Requests/CustomerDeleteRequest.php b/app/Http/Requests/CustomerDeleteRequest.php new file mode 100644 index 0000000..535e54e --- /dev/null +++ b/app/Http/Requests/CustomerDeleteRequest.php @@ -0,0 +1,38 @@ + 'exists:customers,id|required', + 'brand' => 'exists:brands,id|required' + ]; + } + + protected function prepareForValidation() + { + $this->merge(['customer' => $this->route('customer')->id, 'brand' => $this->route('brand')->id]); + } +} diff --git a/resources/views/customers/index.blade.php b/resources/views/customers/index.blade.php index a8ee99d..ba4ad56 100644 --- a/resources/views/customers/index.blade.php +++ b/resources/views/customers/index.blade.php @@ -1,5 +1,23 @@ @extends('layout.app') @section('content') +@if (session()->has('success')) +
{{ session()->get('success') }}
+