diff --git a/packages/Webkul/Customer/src/Http/Controllers/AddressController.php b/packages/Webkul/Customer/src/Http/Controllers/AddressController.php index 412ec5c92..d3395e961 100755 --- a/packages/Webkul/Customer/src/Http/Controllers/AddressController.php +++ b/packages/Webkul/Customer/src/Http/Controllers/AddressController.php @@ -2,23 +2,27 @@ namespace Webkul\Customer\Http\Controllers; -use Illuminate\Http\Request; -use Illuminate\Http\Response; +use Webkul\Customer\Http\Requests\CustomerAddressRequest; use Webkul\Customer\Repositories\CustomerAddressRepository; -use Webkul\Customer\Rules\VatIdRule; -use Auth; class AddressController extends Controller { /** - * Contains route related configuration + * Contains route related configuration. * * @var array */ protected $_config; /** - * CustomerAddressRepository object + * Current customer. + * + * @var \Webkul\Customer\Models\Customer + */ + protected $customer; + + /** + * Customer address repository instance. * * @var \Webkul\Customer\Repositories\CustomerAddressRepository */ @@ -36,13 +40,13 @@ class AddressController extends Controller $this->_config = request('_config'); - $this->customerAddressRepository = $customerAddressRepository; - $this->customer = auth()->guard('customer')->user(); + + $this->customerAddressRepository = $customerAddressRepository; } /** - * Address Route index page + * Address route index page. * * @return \Illuminate\View\View */ @@ -52,7 +56,7 @@ class AddressController extends Controller } /** - * Show the address create form + * Show the address create form. * * @return \Illuminate\View\View */ @@ -68,29 +72,12 @@ class AddressController extends Controller * * @return view */ - public function store() + public function store(CustomerAddressRequest $request) { - request()->merge(['address1' => implode(PHP_EOL, array_filter(request()->input('address1')))]); + $data = $request->validated(); - $data = collect(request()->input())->except('_token')->toArray(); - - $this->validate(request(), [ - 'company_name' => 'string', - 'first_name' => 'string|required', - 'last_name' => 'string|required', - 'address1' => 'string|required', - 'country' => 'string|required', - 'state' => 'string|required', - 'city' => 'string|required', - 'postcode' => 'required', - 'phone' => 'required', - 'vat_id' => new VatIdRule(), - ]); - - $cust_id['customer_id'] = $this->customer->id; - $cust_id['first_name'] = $this->customer->first_name; - $cust_id['last_name'] = $this->customer->last_name; - $data = array_merge($cust_id, $data); + $data['customer_id'] = $this->customer->id; + $data['address1'] = implode(PHP_EOL, array_filter(request()->input('address1'))); if ($this->customer->addresses->count() == 0) { $data['default_address'] = 1; @@ -100,15 +87,15 @@ class AddressController extends Controller session()->flash('success', trans('shop::app.customer.account.address.create.success')); return redirect()->route($this->_config['redirect']); - } else { - session()->flash('error', trans('shop::app.customer.account.address.create.error')); - - return redirect()->back(); } + + session()->flash('error', trans('shop::app.customer.account.address.create.error')); + + return redirect()->back(); } /** - * For editing the existing addresses of current logged in customer + * For editing the existing addresses of current logged in customer. * * @return \Illuminate\View\View */ @@ -116,7 +103,7 @@ class AddressController extends Controller { $address = $this->customerAddressRepository->findOneWhere([ 'id' => $id, - 'customer_id' => auth()->guard('customer')->user()->id, + 'customer_id' => $this->customer->id, ]); if (! $address) { @@ -124,7 +111,7 @@ class AddressController extends Controller } return view($this->_config['view'], array_merge(compact('address'), [ - 'defaultCountry' => config('app.default_country') + 'defaultCountry' => config('app.default_country'), ])); } @@ -134,24 +121,11 @@ class AddressController extends Controller * @param int $id * @return \Illuminate\Http\Response */ - public function update($id) + public function update($id, CustomerAddressRequest $request) { - request()->merge(['address1' => implode(PHP_EOL, array_filter(request()->input('address1')))]); + $data = $request->validated(); - $this->validate(request(), [ - 'company_name' => 'string', - 'first_name' => 'string|required', - 'last_name' => 'string|required', - 'address1' => 'string|required', - 'country' => 'string|required', - 'state' => 'string|required', - 'city' => 'string|required', - 'postcode' => 'required', - 'phone' => 'required', - 'vat_id' => new VatIdRule(), - ]); - - $data = collect(request()->input())->except('_token')->toArray(); + $data['address1'] = implode(PHP_EOL, array_filter(request()->input('address1'))); $addresses = $this->customer->addresses; @@ -172,7 +146,7 @@ class AddressController extends Controller /** * To change the default address or make the default address, - * by default when first address is created will be the default address + * by default when first address is created will be the default address. * * @return \Illuminate\Http\Response */ @@ -192,7 +166,7 @@ class AddressController extends Controller } /** - * Delete address of the current customer + * Delete address of the current customer. * * @param int $id * @return \Illuminate\Http\Response @@ -201,7 +175,7 @@ class AddressController extends Controller { $address = $this->customerAddressRepository->findOneWhere([ 'id' => $id, - 'customer_id' => auth()->guard('customer')->user()->id, + 'customer_id' => $this->customer->id, ]); if (! $address) { diff --git a/packages/Webkul/Customer/src/Http/Controllers/CustomerController.php b/packages/Webkul/Customer/src/Http/Controllers/CustomerController.php index 077f384f1..820404da0 100755 --- a/packages/Webkul/Customer/src/Http/Controllers/CustomerController.php +++ b/packages/Webkul/Customer/src/Http/Controllers/CustomerController.php @@ -5,8 +5,8 @@ namespace Webkul\Customer\Http\Controllers; use Hash; use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Mail; -use Webkul\Core\Contracts\Validations\AlphaNumericSpace; use Webkul\Core\Repositories\SubscribersListRepository; +use Webkul\Customer\Http\Requests\CustomerProfileRequest; use Webkul\Customer\Repositories\CustomerRepository; use Webkul\Product\Repositories\ProductReviewRepository; use Webkul\Shop\Mail\SubscriptionEmail; @@ -94,33 +94,20 @@ class CustomerController extends Controller * * @return \Illuminate\Http\Response */ - public function update() + public function update(CustomerProfileRequest $customerProfileRequest) { $isPasswordChanged = false; - $id = auth()->guard('customer')->user()->id; - $this->validate(request(), [ - 'first_name' => ['required', new AlphaNumericSpace], - 'last_name' => ['required', new AlphaNumericSpace], - 'gender' => 'required|in:Other,Male,Female', - 'date_of_birth' => 'date|before:today', - 'email' => 'email|unique:customers,email,' . $id, - 'password' => 'confirmed|min:6|required_with:oldpassword', - 'oldpassword' => 'required_with:password', - 'password_confirmation' => 'required_with:password', - 'image.*' => 'mimes:bmp,jpeg,jpg,png,webp' - ]); + $data = $customerProfileRequest->validated(); - $data = collect(request()->input())->except('_token')->toArray(); - - if (isset($data['date_of_birth']) && $data['date_of_birth'] == "") { + if (isset($data['date_of_birth']) && $data['date_of_birth'] == '') { unset($data['date_of_birth']); } $data['subscribed_to_news_letter'] = isset($data['subscribed_to_news_letter']) ? 1 : 0; if (isset($data['oldpassword'])) { - if ($data['oldpassword'] != "" || $data['oldpassword'] != null) { + if ($data['oldpassword'] != '' || $data['oldpassword'] != null) { if (Hash::check($data['oldpassword'], auth()->guard('customer')->user()->password)) { $isPasswordChanged = true; @@ -137,7 +124,7 @@ class CustomerController extends Controller Event::dispatch('customer.update.before'); - if ($customer = $this->customerRepository->update($data, $id)) { + if ($customer = $this->customerRepository->update($data, auth()->guard('customer')->user()->id)) { if ($isPasswordChanged) { Event::dispatch('user.admin.update-password', $customer); } @@ -182,14 +169,14 @@ class CustomerController extends Controller $this->customerRepository->uploadImages($data, $customer); - Session()->flash('success', trans('shop::app.customer.account.profile.edit-success')); + session()->flash('success', trans('shop::app.customer.account.profile.edit-success')); return redirect()->route($this->_config['redirect']); - } else { - Session()->flash('success', trans('shop::app.customer.account.profile.edit-fail')); - - return redirect()->back($this->_config['redirect']); } + + session()->flash('success', trans('shop::app.customer.account.profile.edit-fail')); + + return redirect()->back($this->_config['redirect']); } /** diff --git a/packages/Webkul/Customer/src/Http/Requests/CustomerAddressRequest.php b/packages/Webkul/Customer/src/Http/Requests/CustomerAddressRequest.php new file mode 100644 index 000000000..39805afcd --- /dev/null +++ b/packages/Webkul/Customer/src/Http/Requests/CustomerAddressRequest.php @@ -0,0 +1,42 @@ + [new AlphaNumericSpace], + 'first_name' => ['required', new AlphaNumericSpace], + 'last_name' => ['required', new AlphaNumericSpace], + 'address1' => ['required', 'array'], + 'address1.*' => ['required', new AlphaNumericSpace], + 'country' => ['required', 'alpha'], + 'state' => ['required', 'alpha'], + 'city' => ['required', new AlphaNumericSpace], + 'postcode' => ['required', 'numeric'], + 'phone' => ['required', 'numeric'], + 'vat_id' => [new VatIdRule()], + ]; + } +} diff --git a/packages/Webkul/Customer/src/Http/Requests/CustomerProfileRequest.php b/packages/Webkul/Customer/src/Http/Requests/CustomerProfileRequest.php new file mode 100644 index 000000000..3b0d90f74 --- /dev/null +++ b/packages/Webkul/Customer/src/Http/Requests/CustomerProfileRequest.php @@ -0,0 +1,42 @@ +guard('customer')->user()->id; + + return [ + 'first_name' => ['required', new AlphaNumericSpace], + 'last_name' => ['required', new AlphaNumericSpace], + 'gender' => 'required|in:Other,Male,Female', + 'date_of_birth' => 'date|before:today', + 'email' => 'email|unique:customers,email,' . $id, + 'password' => 'confirmed|min:6|required_with:oldpassword', + 'oldpassword' => 'required_with:password', + 'password_confirmation' => 'required_with:password', + 'image.*' => 'mimes:bmp,jpeg,jpg,png,webp', + 'phone' => 'numeric', + ]; + } +} diff --git a/packages/Webkul/Velocity/src/Resources/views/shop/customers/account/address/create.blade.php b/packages/Webkul/Velocity/src/Resources/views/shop/customers/account/address/create.blade.php index e3c0df5db..95bafb4cc 100644 --- a/packages/Webkul/Velocity/src/Resources/views/shop/customers/account/address/create.blade.php +++ b/packages/Webkul/Velocity/src/Resources/views/shop/customers/account/address/create.blade.php @@ -16,7 +16,6 @@ {!! view_render_event('bagisto.shop.customers.account.address.create.before') !!}
{!! view_render_event('bagisto.shop.customers.account.address.edit.after', ['address' => $address]) !!}