From 5916482f7ccf96a1986c8a8c6e634a899cd09763 Mon Sep 17 00:00:00 2001 From: jitendra Date: Fri, 21 Dec 2018 18:18:34 +0530 Subject: [PATCH] Add fire event on every controller --- .../Controllers/ConfigurationController.php | 5 +++ .../src/Providers/EventServiceProvider.php | 8 ++++ .../Http/Controllers/AttributeController.php | 26 ++++++++++-- .../Controllers/AttributeFamilyController.php | 20 ++++++++- .../Http/Controllers/CategoryController.php | 20 ++++++++- .../Http/Controllers/ChannelController.php | 17 +++++++- .../Controllers/CountryStateController.php | 6 ++- .../Http/Controllers/CurrencyController.php | 21 +++++++++- .../Controllers/ExchangeRateController.php | 17 +++++++- .../src/Http/Controllers/LocaleController.php | 17 +++++++- .../Controllers/RegistrationController.php | 25 +++++++---- .../src/Repositories/CustomerRepository.php | 29 ------------- .../Controllers/InventorySourceController.php | 17 +++++++- .../Http/Controllers/ProductController.php | 32 +++++++++------ .../src/Http/Controllers/ReviewController.php | 17 ++++++++ .../Product/src/Observers/ProductObserver.php | 41 ------------------- .../src/Providers/ProductServiceProvider.php | 16 -------- .../Repositories/ProductImageRepository.php | 10 +++-- .../Controllers/TaxCategoryController.php | 37 ++++++++++------- .../Http/Controllers/TaxRateController.php | 33 +++++++-------- .../src/Http/Controllers/RoleController.php | 17 +++++++- .../src/Http/Controllers/UserController.php | 17 +++++++- 22 files changed, 285 insertions(+), 163 deletions(-) delete mode 100644 packages/Webkul/Product/src/Observers/ProductObserver.php diff --git a/packages/Webkul/Admin/src/Http/Controllers/ConfigurationController.php b/packages/Webkul/Admin/src/Http/Controllers/ConfigurationController.php index e3461018d..76632a9dc 100644 --- a/packages/Webkul/Admin/src/Http/Controllers/ConfigurationController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/ConfigurationController.php @@ -4,6 +4,7 @@ namespace Webkul\Admin\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\Admin\Facades\Configuration; use Webkul\Core\Repositories\CoreConfigRepository as CoreConfig; use Webkul\Core\Tree; @@ -130,8 +131,12 @@ class ConfigurationController extends Controller */ public function store() { + Event::fire('core.configuration.save.after'); + $this->coreConfig->create(request()->all()); + Event::fire('core.configuration.save.after'); + session()->flash('success', 'Shipping Method is created successfully'); return redirect()->back(); diff --git a/packages/Webkul/Admin/src/Providers/EventServiceProvider.php b/packages/Webkul/Admin/src/Providers/EventServiceProvider.php index fe5fd56b6..fe4a0e91b 100644 --- a/packages/Webkul/Admin/src/Providers/EventServiceProvider.php +++ b/packages/Webkul/Admin/src/Providers/EventServiceProvider.php @@ -21,5 +21,13 @@ class EventServiceProvider extends ServiceProvider Event::listen('checkout.invoice.save.after', 'Webkul\Admin\Listeners\Order@sendNewShipmentMail'); Event::listen('checkout.order.save.after', 'Webkul\Admin\Listeners\Order@updateProductInventory'); + + Event::listen('products.datagrid.sync', 'Webkul\Admin\Listeners\Product@sync'); + + Event::listen('catalog.product.create.after', 'Webkul\Admin\Listeners\Product@afterProductCreated'); + + Event::listen('catalog.product.update.after', 'Webkul\Admin\Listeners\Product@afterProductUpdate'); + + Event::listen('catalog.product.delete.after', 'Webkul\Admin\Listeners\Product@afterProductDelete'); } } \ No newline at end of file diff --git a/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php b/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php index 452522dc1..e67aac50e 100644 --- a/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php +++ b/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php @@ -4,6 +4,7 @@ namespace Webkul\Attribute\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\Attribute\Repositories\AttributeRepository as Attribute; @@ -77,7 +78,11 @@ class AttributeController extends Controller 'type' => 'required' ]); - $this->attribute->create(request()->all()); + Event::fire('catalog.attribute.create.before'); + + $attribute = $this->attribute->create(request()->all()); + + Event::fire('catalog.attribute.create.after', $attribute); session()->flash('success', 'Attribute created successfully.'); @@ -112,7 +117,11 @@ class AttributeController extends Controller 'type' => 'required' ]); - $this->attribute->update(request()->all(), $id); + Event::fire('catalog.attribute.update.before', $id); + + $attribute = $this->attribute->update(request()->all(), $id); + + Event::fire('catalog.attribute.update.after', $attribute); session()->flash('success', 'Attribute updated successfully.'); @@ -133,8 +142,12 @@ class AttributeController extends Controller session()->flash('error', 'Can not delete system attribute.'); } else { try { + Event::fire('catalog.attribute.delete.before', $id); + $this->attribute->delete($id); + Event::fire('catalog.attribute.delete.after', $id); + session()->flash('success', 'Attribute deleted successfully.'); } catch(\Exception $e) { session()->flash('error', 'Attribute is used in configurable products.'); @@ -159,10 +172,15 @@ class AttributeController extends Controller $attribute = $this->attribute->findOrFail($value); try { - if(!$attribute->is_user_defined) + if(!$attribute->is_user_defined) { continue; - else + } else { + Event::fire('catalog.attribute.delete.before', $value); + $this->attribute->delete($value); + + Event::fire('catalog.attribute.delete.after', $value); + } } catch(\Exception $e) { $suppressFlash = true; diff --git a/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php b/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php index d3a3f448a..ed9727c61 100644 --- a/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php +++ b/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php @@ -4,6 +4,7 @@ namespace Webkul\Attribute\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\Attribute\Repositories\AttributeFamilyRepository as AttributeFamily; use Webkul\Attribute\Repositories\AttributeRepository as Attribute; @@ -82,7 +83,11 @@ class AttributeFamilyController extends Controller 'name' => 'required' ]); - $this->attributeFamily->create(request()->all()); + Event::fire('catalog.attribute_family.create.before'); + + $attributeFamily = $this->attributeFamily->create(request()->all()); + + Event::fire('catalog.attribute_family.create.after', $attributeFamily); session()->flash('success', 'Family created successfully.'); @@ -119,8 +124,11 @@ class AttributeFamilyController extends Controller 'name' => 'required' ]); + Event::fire('catalog.attribute_family.update.before', $id); - $this->attributeFamily->update(request()->all(), $id); + $attributeFamily = $this->attributeFamily->update(request()->all(), $id); + + Event::fire('catalog.attribute_family.update.after', $attributeFamily); session()->flash('success', 'Family updated successfully.'); @@ -142,8 +150,12 @@ class AttributeFamilyController extends Controller } else if ($attributeFamily->products()->count()) { session()->flash('error', 'Attribute family is used in products.'); } else { + Event::fire('catalog.attribute_family.delete.before', $id); + $this->attributeFamily->delete($id); + Event::fire('catalog.attribute_family.delete.after', $id); + session()->flash('success', 'Family deleted successfully.'); } @@ -163,7 +175,11 @@ class AttributeFamilyController extends Controller foreach($indexes as $key => $value) { try { + Event::fire('catalog.attribute_family.delete.before', $value); + $this->attributeFamily->delete($value); + + Event::fire('catalog.attribute_family.delete.after', $value); } catch(\Exception $e) { $suppressFlash = true; diff --git a/packages/Webkul/Category/src/Http/Controllers/CategoryController.php b/packages/Webkul/Category/src/Http/Controllers/CategoryController.php index 5ccd1f572..95ce3fbce 100644 --- a/packages/Webkul/Category/src/Http/Controllers/CategoryController.php +++ b/packages/Webkul/Category/src/Http/Controllers/CategoryController.php @@ -4,6 +4,7 @@ namespace Webkul\Category\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\Category\Repositories\CategoryRepository as Category; /** @@ -78,7 +79,11 @@ class CategoryController extends Controller 'image.*' => 'mimes:jpeg,jpg,bmp,png' ]); - $this->category->create(request()->all()); + Event::fire('catalog.category.create.before'); + + $category = $this->category->create(request()->all()); + + Event::fire('catalog.category.create.after', $category); session()->flash('success', 'Category created successfully.'); @@ -110,6 +115,7 @@ class CategoryController extends Controller public function update(Request $request, $id) { $locale = request()->get('locale') ?: app()->getLocale(); + $this->validate(request(), [ $locale . '.slug' => ['required', new \Webkul\Core\Contracts\Validations\Slug, function ($attribute, $value, $fail) use ($id) { if (!$this->category->isSlugUnique($id, $value)) { @@ -120,8 +126,12 @@ class CategoryController extends Controller 'image.*' => 'mimes:jpeg,jpg,bmp,png' ]); + Event::fire('catalog.category.update.before', $id); + $this->category->update(request()->all(), $id); + Event::fire('catalog.category.update.after', $id); + session()->flash('success', 'Category updated successfully.'); return redirect()->route($this->_config['redirect']); @@ -135,8 +145,12 @@ class CategoryController extends Controller */ public function destroy($id) { + Event::fire('catalog.category.delete.before', $id); + $this->category->delete($id); + Event::fire('catalog.category.delete.after', $id); + session()->flash('success', 'Category deleted successfully.'); return redirect()->back(); @@ -155,7 +169,11 @@ class CategoryController extends Controller foreach($indexes as $key => $value) { try { + Event::fire('catalog.category.delete.before', $value); + $this->category->delete($value); + + Event::fire('catalog.category.delete.after', $value); } catch(\Exception $e) { $suppressFlash = true; diff --git a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php index 73d31a776..e103e15dc 100644 --- a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php +++ b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php @@ -4,6 +4,7 @@ namespace Webkul\Core\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\Core\Repositories\ChannelRepository as Channel; @@ -82,7 +83,11 @@ class ChannelController extends Controller 'favicon.*' => 'mimes:jpeg,jpg,bmp,png' ]); - $this->channel->create(request()->all()); + Event::fire('core.channel.create.before'); + + $channel = $this->channel->create(request()->all()); + + Event::fire('core.channel.create.after', $channel); session()->flash('success', 'Channel created successfully.'); @@ -122,7 +127,11 @@ class ChannelController extends Controller 'favicon.*' => 'mimes:jpeg,jpg,bmp,png' ]); - $this->channel->update(request()->all(), $id); + Event::fire('core.channel.update.before', $id); + + $channel = $this->channel->update(request()->all(), $id); + + Event::fire('core.channel.update.after', $channel); session()->flash('success', 'Channel updated successfully.'); @@ -140,8 +149,12 @@ class ChannelController extends Controller if($this->channel->count() == 1) { session()->flash('error', 'At least one channel is required.'); } else { + Event::fire('core.channel.delete.before', $id); + $this->channel->delete($id); + Event::fire('core.channel.delete.after', $id); + session()->flash('success', 'Channel deleted successfully.'); } diff --git a/packages/Webkul/Core/src/Http/Controllers/CountryStateController.php b/packages/Webkul/Core/src/Http/Controllers/CountryStateController.php index e5ab4c0e8..7f391a05a 100644 --- a/packages/Webkul/Core/src/Http/Controllers/CountryStateController.php +++ b/packages/Webkul/Core/src/Http/Controllers/CountryStateController.php @@ -56,7 +56,8 @@ class CountryStateController extends Controller * * @return array */ - public function getCountries() { + public function getCountries() + { $countries = $this->country->all(); $states = $this->state->all(); @@ -73,7 +74,8 @@ class CountryStateController extends Controller return view($this->_config['view'])->with('statesCountries', $nestedArray); } - public function getStates($country) { + public function getStates($country) + { $countries = $this->country->all(); $states = $this->state->all(); diff --git a/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php b/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php index b87215b7e..4b3830e7b 100644 --- a/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php +++ b/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php @@ -4,6 +4,7 @@ namespace Webkul\Core\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\Core\Repositories\CurrencyRepository as Currency; /** @@ -76,7 +77,11 @@ class CurrencyController extends Controller 'name' => 'required' ]); - $this->currency->create(request()->all()); + Event::fire('core.channel.create.before'); + + $currency = $this->currency->create(request()->all()); + + Event::fire('core.currency.create.after', $currency); session()->flash('success', 'Currency created successfully.'); @@ -110,7 +115,11 @@ class CurrencyController extends Controller 'name' => 'required' ]); - $this->currency->update(request()->all(), $id); + Event::fire('core.currency.update.before', $id); + + $currency = $this->currency->update(request()->all(), $id); + + Event::fire('core.currency.update.after', $currency); session()->flash('success', 'Currency updated successfully.'); @@ -126,8 +135,12 @@ class CurrencyController extends Controller public function destroy($id) { try { + Event::fire('core.currency.delete.before', $id); + $result = $this->currency->delete($id); + Event::fire('core.currency.delete.after', $id); + if($result) session()->flash('success', 'Currency deleted successfully.'); else @@ -152,7 +165,11 @@ class CurrencyController extends Controller foreach($indexes as $key => $value) { try { + Event::fire('core.currency.delete.before', $value); + $this->currency->delete($value); + + Event::fire('core.currency.delete.after', $value); } catch(\Exception $e) { $suppressFlash = true; diff --git a/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php b/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php index 4f39950af..a8d58a1bc 100644 --- a/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php +++ b/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php @@ -4,6 +4,7 @@ namespace Webkul\Core\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\Core\Repositories\ExchangeRateRepository as ExchangeRate; use Webkul\Core\Repositories\CurrencyRepository as Currency; @@ -89,7 +90,11 @@ class ExchangeRateController extends Controller 'rate' => 'required|numeric' ]); - $this->exchangeRate->create(request()->all()); + Event::fire('core.exchange_rate.create.before'); + + $exchangeRate = $this->exchangeRate->create(request()->all()); + + Event::fire('core.exchange_rate.create.after', $exchangeRate); session()->flash('success', 'Exchange rate created successfully.'); @@ -125,7 +130,11 @@ class ExchangeRateController extends Controller 'rate' => 'required|numeric' ]); - $this->exchangeRate->update(request()->all(), $id); + Event::fire('core.exchange_rate.update.before', $id); + + $exchangeRate = $this->exchangeRate->update(request()->all(), $id); + + Event::fire('core.exchange_rate.update.after', $exchangeRate); session()->flash('success', 'Exchange rate updated successfully.'); @@ -143,8 +152,12 @@ class ExchangeRateController extends Controller if($this->exchangeRate->count() == 1) { session()->flash('error', 'At least one Exchange rate is required.'); } else { + Event::fire('core.exchange_rate.delete.before', $id); + $this->exchangeRate->delete($id); + Event::fire('core.exchange_rate.delete.after', $id); + session()->flash('success', 'Exchange rate deleted successfully.'); } diff --git a/packages/Webkul/Core/src/Http/Controllers/LocaleController.php b/packages/Webkul/Core/src/Http/Controllers/LocaleController.php index d8b1a1a6a..86f1e772e 100644 --- a/packages/Webkul/Core/src/Http/Controllers/LocaleController.php +++ b/packages/Webkul/Core/src/Http/Controllers/LocaleController.php @@ -4,6 +4,7 @@ namespace Webkul\Core\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\Core\Repositories\LocaleRepository as Locale; /** @@ -76,7 +77,11 @@ class LocaleController extends Controller 'name' => 'required' ]); - $this->locale->create(request()->all()); + Event::fire('core.locale.create.before'); + + $locale = $this->locale->create(request()->all()); + + Event::fire('core.locale.create.after', $locale); session()->flash('success', 'Locale created successfully.'); @@ -110,7 +115,11 @@ class LocaleController extends Controller 'name' => 'required' ]); - $this->locale->update(request()->all(), $id); + Event::fire('core.locale.update.before', $id); + + $locale = $this->locale->update(request()->all(), $id); + + Event::fire('core.locale.update.after', $locale); session()->flash('success', 'Locale updated successfully.'); @@ -128,8 +137,12 @@ class LocaleController extends Controller if($this->locale->count() == 1) { session()->flash('error', 'At least one locale is required.'); } else { + Event::fire('core.locale.delete.before', $id); + $this->locale->delete($id); + Event::fire('core.locale.delete.after', $id); + session()->flash('success', 'Locale deleted successfully.'); } diff --git a/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php b/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php index f53e16263..e1cc3088d 100644 --- a/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php +++ b/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php @@ -4,6 +4,7 @@ namespace Webkul\Customer\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Mail; use Webkul\Customer\Mail\VerificationEmail; use Illuminate\Routing\Controller; @@ -29,7 +30,8 @@ class RegistrationController extends Controller /** * @param CustomerRepository object $customer */ - public function __construct(CustomerRepository $customer) { + public function __construct(CustomerRepository $customer) + { $this->_config = request('_config'); $this->customer = $customer; } @@ -39,7 +41,8 @@ class RegistrationController extends Controller * * @return view */ - public function show() { + public function show() + { return view($this->_config['view']); } @@ -48,7 +51,8 @@ class RegistrationController extends Controller * * @return Mixed */ - public function create(Request $request) { + public function create(Request $request) + { $request->validate([ 'first_name' => 'string|required', 'last_name' => 'string|required', @@ -70,9 +74,14 @@ class RegistrationController extends Controller $verificationData['email'] = $data['email']; $verificationData['token'] = md5(uniqid(rand(), true)); $data['token'] = $verificationData['token']; - $created = $this->customer->create($data); - if ($created) { + Event::fire('customer.registration.before'); + + $customer = $this->customer->create($data); + + Event::fire('customer.registration.after', $customer); + + if ($customer) { try { session()->flash('success', trans('shop::app.customer.signup-form.success')); @@ -95,7 +104,8 @@ class RegistrationController extends Controller * Method to verify account * */ - public function verifyAccount($token) { + public function verifyAccount($token) + { $customer = $this->customer->findOneByField('token', $token); if($customer) { @@ -109,7 +119,8 @@ class RegistrationController extends Controller return redirect()->route('customer.session.index'); } - public function resendVerificationEmail($email) { + public function resendVerificationEmail($email) + { $verificationData['email'] = $email; $verificationData['token'] = md5(uniqid(rand(), true)); diff --git a/packages/Webkul/Customer/src/Repositories/CustomerRepository.php b/packages/Webkul/Customer/src/Repositories/CustomerRepository.php index c341fb4cb..c7a930748 100644 --- a/packages/Webkul/Customer/src/Repositories/CustomerRepository.php +++ b/packages/Webkul/Customer/src/Repositories/CustomerRepository.php @@ -10,7 +10,6 @@ use Webkul\Core\Eloquent\Repository; * @author Prashant Singh * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) */ - class CustomerRepository extends Repository { /** @@ -23,32 +22,4 @@ class CustomerRepository extends Repository { return 'Webkul\Customer\Models\Customer'; } - - /** - * @param array $data - * @return mixed - */ - - public function create(array $data) - { - $customer = $this->model->create($data); - - return $customer; - } - - /** - * @param array $data - * @param $id - * @param string $attribute - * @return mixed - */ - - public function update(array $data, $id, $attribute = "id") - { - $customer = $this->find($id); - - $customer->update($data); - - return $customer; - } } \ No newline at end of file diff --git a/packages/Webkul/Inventory/src/Http/Controllers/InventorySourceController.php b/packages/Webkul/Inventory/src/Http/Controllers/InventorySourceController.php index c5c1d079f..4f002fe0a 100644 --- a/packages/Webkul/Inventory/src/Http/Controllers/InventorySourceController.php +++ b/packages/Webkul/Inventory/src/Http/Controllers/InventorySourceController.php @@ -4,6 +4,7 @@ namespace Webkul\Inventory\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\Inventory\Repositories\InventorySourceRepository as InventorySource; /** @@ -85,7 +86,11 @@ class InventorySourceController extends Controller $data['status'] = !isset($data['status']) ? 0 : 1; - $this->inventorySource->create($data); + Event::fire('inventory.inventory_source.create.before'); + + $inventorySource = $this->inventorySource->create($data); + + Event::fire('inventory.inventory_source.create.after', $inventorySource); session()->flash('success', 'Inventory source created successfully.'); @@ -131,7 +136,11 @@ class InventorySourceController extends Controller $data['status'] = !isset($data['status']) ? 0 : 1; - $this->inventorySource->update($data, $id); + Event::fire('inventory.inventory_source.update.before', $id); + + $inventorySource = $this->inventorySource->update($data, $id); + + Event::fire('inventory.inventory_source.update.after', $inventorySource); session()->flash('success', 'Inventory source updated successfully.'); @@ -149,8 +158,12 @@ class InventorySourceController extends Controller if($this->inventorySource->count() == 1) { session()->flash('error', 'At least one inventory source is required.'); } else { + Event::fire('inventory.inventory_source.delete.before', $id); + $this->inventorySource->delete($id); + Event::fire('inventory.inventory_source.delete.after', $id); + session()->flash('success', 'Inventory source deleted successfully.'); } diff --git a/packages/Webkul/Product/src/Http/Controllers/ProductController.php b/packages/Webkul/Product/src/Http/Controllers/ProductController.php index a41b90b01..c1d2b0194 100644 --- a/packages/Webkul/Product/src/Http/Controllers/ProductController.php +++ b/packages/Webkul/Product/src/Http/Controllers/ProductController.php @@ -4,13 +4,13 @@ namespace Webkul\Product\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\Product\Http\Requests\ProductForm; use Webkul\Product\Repositories\ProductRepository as Product; use Webkul\Product\Repositories\ProductGridRepository as ProductGrid; use Webkul\Attribute\Repositories\AttributeFamilyRepository as AttributeFamily; use Webkul\Category\Repositories\CategoryRepository as Category; use Webkul\Inventory\Repositories\InventorySourceRepository as InventorySource; -use Event; /** * Product controller @@ -126,9 +126,6 @@ class ProductController extends Controller */ public function store() { - //before store of the product - // Event::fire('product.save.before', false); - if(!request()->get('family') && request()->input('type') == 'configurable' && request()->input('sku') != '') { return redirect(url()->current() . '?family=' . request()->input('attribute_family_id') . '&sku=' . request()->input('sku')); } @@ -145,10 +142,14 @@ class ProductController extends Controller 'sku' => ['required', 'unique:products,sku', new \Webkul\Core\Contracts\Validations\Slug] ]); + + //before store of the product + Event::fire('catalog.product.create.before'); + $product = $this->product->create(request()->all()); //after store of the product - Event::fire('product.save.after', $product); + Event::fire('catalog.product.create.after', $product); session()->flash('success', 'Product created successfully.'); @@ -181,13 +182,11 @@ class ProductController extends Controller */ public function update(ProductForm $request, $id) { - // before update of product - // Event::fire('product.update.before', $id); + Event::fire('catalog.product.update.before', $id); $product = $this->product->update(request()->all(), $id); - //after update of product - Event::fire('product.update.after', $product); + Event::fire('catalog.product.update.after', $product); session()->flash('success', 'Product updated successfully.'); @@ -202,12 +201,11 @@ class ProductController extends Controller */ public function destroy($id) { - Event::fire('product.delete.before', $id); + Event::fire('catalog.product.delete.before', $id); $this->product->delete($id); - //before update of product - // Event::fire('product.delete.after', $id); + Event::fire('catalog.product.delete.after', $id); session()->flash('success', 'Product deleted successfully.'); @@ -228,7 +226,11 @@ class ProductController extends Controller $product = $this->product->find($productId); if(!is_null($product)) { + Event::fire('catalog.product.delete.before', $productId); + $product->delete(); + + Event::fire('catalog.product.delete.after', $productId); } } } @@ -258,11 +260,15 @@ class ProductController extends Controller $product = $this->product->find($productId); if($data['update-options'] == 0 && $data['selected-option-text'] == 'In Active') { + Event::fire('catelog.product.update.before', $productId); + $result = $this->product->updateAttribute($product, $attribute, $data['update-options']); if($result) - Event::fire('product.update.after', $product); + Event::fire('catelog.product.update.after', $product); } else if($data['update-options'] == 1 && $data['selected-option-text'] == 'Active') { + Event::fire('catelog.product.update.before', $productId); + $result = $this->product->updateAttribute($product, $attribute, $data['update-options']); if($result) diff --git a/packages/Webkul/Product/src/Http/Controllers/ReviewController.php b/packages/Webkul/Product/src/Http/Controllers/ReviewController.php index 159057abe..6f57dabae 100644 --- a/packages/Webkul/Product/src/Http/Controllers/ReviewController.php +++ b/packages/Webkul/Product/src/Http/Controllers/ReviewController.php @@ -4,6 +4,7 @@ namespace Webkul\Product\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\Product\Repositories\ProductRepository as Product; use Webkul\Product\Repositories\ProductReviewRepository as ProductReview; @@ -85,8 +86,12 @@ class ReviewController extends Controller */ public function update(Request $request, $id) { + Event::fire('customer.review.update.before', $id); + $this->productReview->update(request()->all(), $id); + Event::fire('customer.review.update.after', $id); + session()->flash('success', 'Review updated successfully.'); return redirect()->route($this->_config['redirect']); @@ -100,8 +105,12 @@ class ReviewController extends Controller */ public function destroy($id) { + Event::fire('customer.review.delete.before', $id); + $this->productReview->delete($id); + Event::fire('customer.review.delete.after', $id); + session()->flash('success', 'Review Successfully Deleted'); return redirect()->back(); @@ -122,7 +131,11 @@ class ReviewController extends Controller foreach($indexes as $key => $value) { try { + Event::fire('customer.review.delete.before', $value); + $this->productReview->delete($value); + + Event::fire('customer.review.delete.after', $value); } catch(\Exception $e) { $suppressFlash = true; @@ -162,7 +175,11 @@ class ReviewController extends Controller try { if($data['massaction-type'] == 1 && $data['update-options'] == 1 && $data['selected-option-text'] == 'Approve') { + Event::fire('customer.review.update.before', $value); + $review->update(['status' => 'approved']); + + Event::fire('customer.review.update.after', $review); } else if($data['massaction-type'] == 1 && $data['update-options'] == 0 && $data['selected-option-text'] == 'Disapprove') { $review->update(['status' => 'pending']); } else { diff --git a/packages/Webkul/Product/src/Observers/ProductObserver.php b/packages/Webkul/Product/src/Observers/ProductObserver.php deleted file mode 100644 index b788a0881..000000000 --- a/packages/Webkul/Product/src/Observers/ProductObserver.php +++ /dev/null @@ -1,41 +0,0 @@ -loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); - - Event::listen('products.datagrid.sync', 'Webkul\Admin\Listeners\Product@sync'); - - Event::listen('product.save.after', 'Webkul\Admin\Listeners\Product@afterProductCreated'); - - Event::listen('product.update.before', - 'Webkul\Admin\Listeners\Product@beforeProductUpdate'); - - Event::listen('product.update.after', - 'Webkul\Admin\Listeners\Product@afterProductUpdate'); - - Event::listen('product.delete.after', 'Webkul\Admin\Listeners\Product@afterProductDelete'); - - Product::observe(ProductObserver::class); } /** diff --git a/packages/Webkul/Product/src/Repositories/ProductImageRepository.php b/packages/Webkul/Product/src/Repositories/ProductImageRepository.php index 7f5925c70..b3a2928f2 100644 --- a/packages/Webkul/Product/src/Repositories/ProductImageRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductImageRepository.php @@ -38,10 +38,12 @@ class ProductImageRepository extends Repository $dir = 'product/' . $product->id; if (str_contains($imageId, 'image_')) { - $this->create([ - 'path' => request()->file($file)->store($dir), - 'product_id' => $product->id - ]); + if(request()->hasFile($file)) { + $this->create([ + 'path' => request()->file($file)->store($dir), + 'product_id' => $product->id + ]); + } } else { if(is_numeric($index = $previousImageIds->search($imageId))) { $previousImageIds->forget($index); diff --git a/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php b/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php index 8bb061042..22489933c 100644 --- a/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php +++ b/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php @@ -4,6 +4,7 @@ namespace Webkul\Tax\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\Channel as Channel; use Webkul\Tax\Repositories\TaxCategoryRepository as TaxCategory; use Webkul\Tax\Repositories\TaxRateRepository as TaxRate; @@ -99,28 +100,26 @@ class TaxCategoryController extends Controller 'taxrates' => 'array|required' ]); - if($taxCategory = $this->taxCategory->create(request()->input())) { - $allTaxCategories = $data['taxrates']; + Event::fire('tax.tax_category.create.before'); - //attach the categories in the tax map table - $this->taxCategory->attachOrDetach($taxCategory, $allTaxCategories); + $taxCategory = $this->taxCategory->create($data); - session()->flash('success', trans('admin::app.settings.tax-categories.create-success')); + //attach the categories in the tax map table + $this->taxCategory->attachOrDetach($taxCategory, $data['taxrates']); - return redirect()->route($this->_config['redirect']); - } else { - session()->flash('error', trans('admin::app.settings.tax-categories.create-error')); - } + Event::fire('tax.tax_category.create.after', $taxCategory); - return view($this->_config['view']); + session()->flash('success', trans('admin::app.settings.tax-categories.create-success')); + + return redirect()->route($this->_config['redirect']); } /** * To show the edit form form the tax category * + * @param int $id * @return view */ - public function edit($id) { $taxCategory = $this->taxCategory->findOrFail($id); @@ -131,10 +130,11 @@ class TaxCategoryController extends Controller /** * To update the tax category * - * @return view + * @param int $id + * @return Response */ - - public function update($id) { + public function update($id) + { $this->validate(request(), [ 'channel_id' => 'required|numeric', 'code' => 'required|string|unique:tax_categories,code,'.$id, @@ -145,10 +145,15 @@ class TaxCategoryController extends Controller $data = request()->input(); + Event::fire('tax.tax_category.update.before', $id); + $taxCategory = $this->taxCategory->update($data, $id); + Event::fire('tax.tax_category.update.after', $taxCategory); + if(!$taxCategory) { session()->flash('error', trans('admin::app.settings.tax-categories.update-error')); + return redirect()->back(); } @@ -173,8 +178,12 @@ class TaxCategoryController extends Controller if($this->taxCategory->count() == 1) { session()->flash('error', trans('admin::app.settings.tax-categories.atleast-one')); } else { + Event::fire('tax.tax_category.delete.before', $id); + $this->taxCategory->delete($id); + Event::fire('tax.tax_category.delete.after', $id); + session()->flash('success', trans('admin::app.settings.tax-categories.delete')); } diff --git a/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php b/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php index 5ee2771fe..9a7d69f28 100644 --- a/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php +++ b/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php @@ -4,6 +4,7 @@ namespace Webkul\Tax\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\Tax\Repositories\TaxRateRepository as TaxRate; @@ -91,17 +92,15 @@ class TaxRateController extends Controller unset($data['zip_code']); } - if($this->taxRate->create($data)) { - session()->flash('success', trans('admin::app.settings.tax-rates.create-success')); + Event::fire('tax.tax_rate.create.before'); - return redirect()->route($this->_config['redirect']); - } else { - session()->flash('error', trans('admin::app.settings.tax-rates.create-error')); + $taxRate = $this->taxRate->create($data); - return redirect()->back(); - } + Event::fire('tax.tax_rate.create.after', $taxRate); - return redirect()->back(); + session()->flash('success', trans('admin::app.settings.tax-rates.create-success')); + + return redirect()->route($this->_config['redirect']); } /** @@ -136,17 +135,15 @@ class TaxRateController extends Controller 'tax_rate' => 'required|numeric' ]); - if($this->taxRate->update(request()->input(), $id)) { - session()->flash('success', trans('admin::app.settings.tax-rates.update-success')); + Event::fire('tax.tax_rate.update.before', $id); - return redirect()->route($this->_config['redirect']); - } else { - session()->flash('error', trans('admin::app.settings.tax-rates.update-error')); + $taxRate = $this->taxRate->update(request()->input(), $id); - return redirect()->back(); - } + Event::fire('tax.tax_rate.update.after', $taxRate); - return redirect()->back(); + session()->flash('success', trans('admin::app.settings.tax-rates.update-success')); + + return redirect()->route($this->_config['redirect']); } /** @@ -160,8 +157,12 @@ class TaxRateController extends Controller if($this->taxRate->count() == 1) { session()->flash('error', trans('admin::app.settings.tax-rates.atleast-one')); } else { + Event::fire('tax.tax_rate.delete.before', $id); + $this->taxRate->delete($id); + Event::fire('tax.tax_rate.delete.after', $id); + session()->flash('success', trans('admin::app.settings.tax-rates.delete')); } diff --git a/packages/Webkul/User/src/Http/Controllers/RoleController.php b/packages/Webkul/User/src/Http/Controllers/RoleController.php index fb312cf30..731f5fe79 100644 --- a/packages/Webkul/User/src/Http/Controllers/RoleController.php +++ b/packages/Webkul/User/src/Http/Controllers/RoleController.php @@ -4,6 +4,7 @@ namespace Webkul\User\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\User\Repositories\RoleRepository as Role; /** @@ -76,7 +77,11 @@ class RoleController extends Controller 'permission_type' => 'required', ]); - $this->role->create(request()->all()); + Event::fire('user.role.create.before'); + + $role = $this->role->create(request()->all()); + + Event::fire('user.role.create.after', $role); session()->flash('success', 'Role created successfully.'); @@ -110,7 +115,11 @@ class RoleController extends Controller 'permission_type' => 'required', ]); - $this->role->update(request()->all(), $id); + Event::fire('user.role.update.before', $id); + + $role = $this->role->update(request()->all(), $id); + + Event::fire('user.role.update.after', $role); session()->flash('success', 'Role updated successfully.'); @@ -128,8 +137,12 @@ class RoleController extends Controller if($this->role->count() == 1) { session()->flash('error', 'At least one role is required.'); } else { + Event::fire('user.role.delete.before', $id); + $this->role->delete($id); + Event::fire('user.role.delete.after', $id); + session()->flash('success', 'Role source deleted successfully.'); } diff --git a/packages/Webkul/User/src/Http/Controllers/UserController.php b/packages/Webkul/User/src/Http/Controllers/UserController.php index 2757b1c40..211ea50e4 100644 --- a/packages/Webkul/User/src/Http/Controllers/UserController.php +++ b/packages/Webkul/User/src/Http/Controllers/UserController.php @@ -4,6 +4,7 @@ namespace Webkul\User\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Event; use Webkul\User\Repositories\AdminRepository as Admin; use Webkul\User\Repositories\RoleRepository as Role; use Webkul\User\Http\Requests\UserForm; @@ -92,7 +93,11 @@ class UserController extends Controller if(isset($data['password']) && $data['password']) $data['password'] = bcrypt($data['password']); - $this->admin->create($data); + Event::fire('user.admin.create.before'); + + $admin = $this->admin->create($data); + + Event::fire('user.admin.delete.after', $admin); session()->flash('success', 'User created successfully.'); @@ -136,7 +141,11 @@ class UserController extends Controller $data['status'] = 0; } - $this->admin->update($data, $id); + Event::fire('user.admin.update.before', $id); + + $admin = $this->admin->update($data, $id); + + Event::fire('user.admin.update.after', $admin); session()->flash('success', 'User updated successfully.'); @@ -154,8 +163,12 @@ class UserController extends Controller if($this->admin->count() == 1) { session()->flash('error', 'At least one admin is required.'); } else { + Event::fire('user.admin.delete.before', $id); + $this->admin->delete($id); + Event::fire('user.admin.delete.after', $id); + session()->flash('success', 'Admin source deleted successfully.'); }