From b24a14561c8daf21a43e5324a73569e220ac6268 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Thu, 8 Nov 2018 20:56:34 +0800 Subject: [PATCH] Refactor CustomerController@update Add CustomerUpdateRequest class --- .../Controllers/Partners/CustomersController.php | 19 +++-------- .../Requests/Partners/CustomerUpdateRequest.php | 39 ++++++++++++++++++++++ 2 files changed, 43 insertions(+), 15 deletions(-) create mode 100644 app/Http/Requests/Partners/CustomerUpdateRequest.php diff --git a/app/Http/Controllers/Partners/CustomersController.php b/app/Http/Controllers/Partners/CustomersController.php index 082eb8c..50ddf68 100644 --- a/app/Http/Controllers/Partners/CustomersController.php +++ b/app/Http/Controllers/Partners/CustomersController.php @@ -6,6 +6,7 @@ use Illuminate\Http\Request; use App\Entities\Partners\Customer; use App\Http\Controllers\Controller; use App\Http\Requests\Partners\CustomerCreateRequest; +use App\Http\Requests\Partners\CustomerUpdateRequest; class CustomersController extends Controller { @@ -75,25 +76,13 @@ class CustomersController extends Controller /** * Update the specified customer in storage. * - * @param \Illuminate\Http\Request $request + * @param \App\Http\Requests\Partners\CustomerUpdateRequest $customerUpdateForm * @param \App\Entities\Partners\Customer $customer * @return \Illuminate\Http\RedirectResponse */ - public function update(Request $request, Customer $customer) + public function update(CustomerUpdateRequest $customerUpdateForm, Customer $customer) { - $customerData = $this->validate($request, [ - 'name' => 'required|max:60', - 'email' => 'nullable|email|unique:customers,email,'.$customer->id, - 'phone' => 'nullable|max:255', - 'pic' => 'nullable|max:255', - 'address' => 'nullable|max:255', - 'website' => 'nullable|url|max:255', - 'notes' => 'nullable|max:255', - 'is_active' => 'required|boolean', - ]); - - $customer->update($customerData); - + $customer->update($customerUpdateForm->validated()); flash(__('customer.updated'), 'success'); return redirect()->route('customers.show', $customer->id); diff --git a/app/Http/Requests/Partners/CustomerUpdateRequest.php b/app/Http/Requests/Partners/CustomerUpdateRequest.php new file mode 100644 index 0000000..4853ba9 --- /dev/null +++ b/app/Http/Requests/Partners/CustomerUpdateRequest.php @@ -0,0 +1,39 @@ +user()->can('update', $this->route('customer')); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + $customer = $this->route('customer'); + + return [ + 'name' => 'required|max:60', + 'email' => 'nullable|email|unique:customers,email,'.$customer->id, + 'phone' => 'nullable|max:255', + 'pic' => 'nullable|max:255', + 'address' => 'nullable|max:255', + 'website' => 'nullable|url|max:255', + 'notes' => 'nullable|max:255', + 'is_active' => 'required|boolean', + ]; + } +}