From 8f671098805810501195711eac5583f5009e55d5 Mon Sep 17 00:00:00 2001 From: Devansh Date: Mon, 10 Jan 2022 20:21:30 +0530 Subject: [PATCH 1/7] Some Events Placed Inside The Repository --- .../Controllers/ConfigurationController.php | 7 +- .../Customer/CustomerController.php | 68 ++++++++----------- .../src/Repositories/CoreConfigRepository.php | 15 ++-- .../src/Repositories/CustomerRepository.php | 37 +++++++++- 4 files changed, 76 insertions(+), 51 deletions(-) diff --git a/packages/Webkul/Admin/src/Http/Controllers/ConfigurationController.php b/packages/Webkul/Admin/src/Http/Controllers/ConfigurationController.php index 769d15382..1ce888a17 100755 --- a/packages/Webkul/Admin/src/Http/Controllers/ConfigurationController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/ConfigurationController.php @@ -2,11 +2,10 @@ namespace Webkul\Admin\Http\Controllers; -use Webkul\Core\Tree; -use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Storage; use Webkul\Admin\Http\Requests\ConfigurationForm; use Webkul\Core\Repositories\CoreConfigRepository; +use Webkul\Core\Tree; class ConfigurationController extends Controller { @@ -113,12 +112,8 @@ class ConfigurationController extends Controller */ public function store(ConfigurationForm $request) { - Event::dispatch('core.configuration.save.before'); - $this->coreConfigRepository->create($request->except(['_token', 'admin_locale'])); - Event::dispatch('core.configuration.save.after'); - session()->flash('success', trans('admin::app.configuration.save-message')); return redirect()->back(); diff --git a/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php b/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php index ed09fd0eb..50656f926 100755 --- a/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php @@ -2,52 +2,48 @@ namespace Webkul\Admin\Http\Controllers\Customer; -use Illuminate\Support\Facades\Event; -use Webkul\Admin\Http\Controllers\Controller; -use Webkul\Customer\Repositories\CustomerRepository; - -use Webkul\Customer\Repositories\CustomerAddressRepository; -use Webkul\Customer\Repositories\CustomerGroupRepository; -use Webkul\Core\Repositories\ChannelRepository; - -use Webkul\Admin\Mail\NewCustomerNotification; use Mail; - use Webkul\Admin\DataGrids\CustomerOrderDataGrid; use Webkul\Admin\DataGrids\CustomersInvoicesDataGrid; +use Webkul\Admin\Http\Controllers\Controller; +use Webkul\Admin\Mail\NewCustomerNotification; +use Webkul\Core\Repositories\ChannelRepository; +use Webkul\Customer\Repositories\CustomerAddressRepository; +use Webkul\Customer\Repositories\CustomerGroupRepository; +use Webkul\Customer\Repositories\CustomerRepository; class CustomerController extends Controller { /** - * Contains route related configuration + * Contains route related configuration. * * @var array */ protected $_config; /** - * CustomerRepository object + * Customer repository instance. * * @var \Webkul\Customer\Repositories\CustomerRepository */ protected $customerRepository; /** - * CustomerAddress Repository object + * Customer address repository instance. * * @var \Webkul\Customer\Repositories\CustomerAddressRepository */ protected $customerAddressRepository; /** - * CustomerGroupRepository object + * Customer group repository instance. * * @var \Webkul\Customer\Repositories\CustomerGroupRepository */ protected $customerGroupRepository; /** - * ChannelRepository object + * Channel repository instance. * * @var \Webkul\Core\Repositories\ChannelRepository */ @@ -66,17 +62,19 @@ class CustomerController extends Controller CustomerAddressRepository $customerAddressRepository, CustomerGroupRepository $customerGroupRepository, ChannelRepository $channelRepository - ) + ) { + $this->_config = request('_config'); - { - $this->_config = request('_config'); - $this->middleware('admin'); - $this->customerRepository = $customerRepository; + $this->middleware('admin'); - $this->customerAddressRepository = $customerAddressRepository; - $this->customerGroupRepository = $customerGroupRepository; - $this->channelRepository = $channelRepository; - } + $this->customerRepository = $customerRepository; + + $this->customerAddressRepository = $customerAddressRepository; + + $this->customerGroupRepository = $customerGroupRepository; + + $this->channelRepository = $channelRepository; + } /** * Display a listing of the resource. @@ -125,12 +123,8 @@ class CustomerController extends Controller $data['is_verified'] = 1; - Event::dispatch('customer.registration.before'); - $customer = $this->customerRepository->create($data); - Event::dispatch('customer.registration.after', $customer); - try { $configKey = 'emails.general.notifications.emails.general.notifications.customer'; if (core()->getConfigData($configKey)) { @@ -181,11 +175,7 @@ class CustomerController extends Controller $data['status'] = ! isset($data['status']) ? 0 : 1; - Event::dispatch('customer.update.before'); - - $customer = $this->customerRepository->update($data, $id); - - Event::dispatch('customer.update.after', $customer); + $this->customerRepository->update($data, $id); session()->flash('success', trans('admin::app.response.update-success', ['name' => 'Customer'])); @@ -224,7 +214,7 @@ class CustomerController extends Controller } /** - * To load the note taking screen for the customers + * To load the note taking screen for the customers. * * @param int $id * @return \Illuminate\View\View @@ -237,7 +227,7 @@ class CustomerController extends Controller } /** - * To store the response of the note in storage + * To store the response of the note in storage. * * @return \Illuminate\Http\Response */ @@ -261,7 +251,7 @@ class CustomerController extends Controller } /** - * To mass update the customer + * To mass update the customer. * * @return \Illuminate\Http\Response */ @@ -282,7 +272,7 @@ class CustomerController extends Controller } /** - * To mass delete the customer + * To mass delete the customer. * * @return \Illuminate\Http\Response */ @@ -290,7 +280,7 @@ class CustomerController extends Controller { $customerIds = explode(',', request()->input('indexes')); - if (!$this->customerRepository->checkBulkCustomerIfTheyHaveOrderPendingOrProcessing($customerIds)) { + if (! $this->customerRepository->checkBulkCustomerIfTheyHaveOrderPendingOrProcessing($customerIds)) { foreach ($customerIds as $customerId) { $this->customerRepository->deleteWhere(['id' => $customerId]); @@ -334,4 +324,4 @@ class CustomerController extends Controller return view($this->_config['view'], compact('customer')); } -} \ No newline at end of file +} diff --git a/packages/Webkul/Core/src/Repositories/CoreConfigRepository.php b/packages/Webkul/Core/src/Repositories/CoreConfigRepository.php index 307f81f90..980e305e4 100755 --- a/packages/Webkul/Core/src/Repositories/CoreConfigRepository.php +++ b/packages/Webkul/Core/src/Repositories/CoreConfigRepository.php @@ -2,11 +2,12 @@ namespace Webkul\Core\Repositories; -use Webkul\Core\Eloquent\Repository; -use Webkul\Core\Contracts\CoreConfig; +use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Storage; -use Webkul\Core\Traits\CoreConfigField; use Prettus\Repository\Traits\CacheableRepository; +use Webkul\Core\Contracts\CoreConfig; +use Webkul\Core\Eloquent\Repository; +use Webkul\Core\Traits\CoreConfigField; class CoreConfigRepository extends Repository { @@ -17,7 +18,7 @@ class CoreConfigRepository extends Repository * * @return string */ - function model(): string + public function model(): string { return CoreConfig::class; } @@ -30,6 +31,8 @@ class CoreConfigRepository extends Repository */ public function create(array $data) { + Event::dispatch('core.configuration.save.before'); + if ($data['locale'] || $data['channel']) { $locale = $data['locale']; $channel = $data['channel']; @@ -49,7 +52,7 @@ class CoreConfigRepository extends Repository $localeBased = isset($field['locale_based']) && $field['locale_based'] ? true : false; if (getType($value) == 'array' && ! isset($value['delete'])) { - $value = implode(",", $value); + $value = implode(',', $value); } if (isset($field['channel_based']) && $field['channel_based']) { @@ -109,6 +112,8 @@ class CoreConfigRepository extends Repository } } } + + Event::dispatch('core.configuration.save.after'); } /** diff --git a/packages/Webkul/Customer/src/Repositories/CustomerRepository.php b/packages/Webkul/Customer/src/Repositories/CustomerRepository.php index 8e425fde8..bcc702e04 100755 --- a/packages/Webkul/Customer/src/Repositories/CustomerRepository.php +++ b/packages/Webkul/Customer/src/Repositories/CustomerRepository.php @@ -2,6 +2,7 @@ namespace Webkul\Customer\Repositories; +use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Storage; use Webkul\Core\Eloquent\Repository; @@ -17,6 +18,40 @@ class CustomerRepository extends Repository return \Webkul\Customer\Contracts\Customer::class; } + /** + * Create customer. + * + * @param array $attributes + * @return mixed + */ + public function create($attributes) + { + Event::dispatch('customer.registration.before'); + + $customer = parent::create($attributes); + + Event::dispatch('customer.registration.after', $customer); + + return $customer; + } + + /** + * Update customer. + * + * @param array $attributes + * @return mixed + */ + public function update(array $attributes, $id) + { + Event::dispatch('customer.update.before'); + + $customer = parent::update($attributes, $id); + + Event::dispatch('customer.update.after', $customer); + + return $customer; + } + /** * Check if customer has order pending or processing. * @@ -57,7 +92,7 @@ class CustomerRepository extends Repository * @param string $type * @return void */ - public function uploadImages($data, $customer, $type = "image") + public function uploadImages($data, $customer, $type = 'image') { if (isset($data[$type])) { $request = request(); From 0bf0ab1f7286755d997a52ade058c38dbbeb6dfd Mon Sep 17 00:00:00 2001 From: Devansh Date: Mon, 10 Jan 2022 20:51:59 +0530 Subject: [PATCH 2/7] Some More Events Moved --- .../Customer/CustomerGroupController.php | 39 ++++++---------- .../Repositories/CustomerGroupRepository.php | 46 +++++++++++++++---- .../src/Http/Controllers/ReviewController.php | 27 ++++------- .../Repositories/ProductReviewRepository.php | 45 +++++++++++++++--- 4 files changed, 97 insertions(+), 60 deletions(-) diff --git a/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerGroupController.php b/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerGroupController.php index 0dee4c31d..0816c41ac 100755 --- a/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerGroupController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerGroupController.php @@ -3,26 +3,25 @@ namespace Webkul\Admin\Http\Controllers\Customer; use Webkul\Admin\Http\Controllers\Controller; -use Illuminate\Support\Facades\Event; use Webkul\Customer\Repositories\CustomerGroupRepository; class CustomerGroupController extends Controller { /** - * Contains route related configuration + * Contains route related configuration. * * @var array - */ + */ protected $_config; /** - * CustomerGroupRepository object + * Customer group repository instance. * * @var \Webkul\Customer\Repositories\CustomerGroupRepository - */ + */ protected $customerGroupRepository; - /** + /** * Create a new controller instance. * * @param \Webkul\Customer\Repositories\CustomerGroupRepository $customerGroupRepository; @@ -41,7 +40,7 @@ class CustomerGroupController extends Controller * Display a listing of the resource. * * @return \Illuminate\View\View - */ + */ public function index() { return view($this->_config['view']); @@ -57,7 +56,7 @@ class CustomerGroupController extends Controller return view($this->_config['view']); } - /** + /** * Store a newly created resource in storage. * * @return \Illuminate\Http\Response @@ -73,18 +72,14 @@ class CustomerGroupController extends Controller $data['is_user_defined'] = 1; - Event::dispatch('customer.customer_group.create.before'); - - $customerGroup = $this->customerGroupRepository->create($data); - - Event::dispatch('customer.customer_group.create.after', $customerGroup); + $this->customerGroupRepository->create($data); session()->flash('success', trans('admin::app.response.create-success', ['name' => 'Customer Group'])); return redirect()->route($this->_config['redirect']); } - /** + /** * Show the form for editing the specified resource. * * @param int $id @@ -97,7 +92,7 @@ class CustomerGroupController extends Controller return view($this->_config['view'], compact('group')); } - /** + /** * Update the specified resource in storage. * * @param int $id @@ -110,11 +105,7 @@ class CustomerGroupController extends Controller 'name' => 'required', ]); - Event::dispatch('customer.customer_group.update.before', $id); - - $customerGroup = $this->customerGroupRepository->update(request()->all(), $id); - - Event::dispatch('customer.customer_group.update.after', $customerGroup); + $this->customerGroupRepository->update(request()->all(), $id); session()->flash('success', trans('admin::app.response.update-success', ['name' => 'Customer Group'])); @@ -137,20 +128,16 @@ class CustomerGroupController extends Controller session()->flash('warning', trans('admin::app.response.customer-associate', ['name' => 'Customer Group'])); } else { try { - Event::dispatch('customer.customer_group.delete.before', $id); - $this->customerGroupRepository->delete($id); - Event::dispatch('customer.customer_group.delete.after', $id); - session()->flash('success', trans('admin::app.response.delete-success', ['name' => 'Customer Group'])); return response()->json(['message' => true], 200); - } catch(\Exception $e) { + } catch (\Exception $e) { session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Customer Group'])); } } return response()->json(['message' => false], 400); } -} \ No newline at end of file +} diff --git a/packages/Webkul/Customer/src/Repositories/CustomerGroupRepository.php b/packages/Webkul/Customer/src/Repositories/CustomerGroupRepository.php index db1fdc175..8ba13e2bc 100755 --- a/packages/Webkul/Customer/src/Repositories/CustomerGroupRepository.php +++ b/packages/Webkul/Customer/src/Repositories/CustomerGroupRepository.php @@ -2,47 +2,75 @@ namespace Webkul\Customer\Repositories; +use Illuminate\Support\Facades\Event; use Webkul\Core\Eloquent\Repository; class CustomerGroupRepository extends Repository { /** - * Specify Model class name + * Specify model class name. * * @return mixed */ - function model() + public function model() { - return 'Webkul\Customer\Contracts\CustomerGroup'; + return \Webkul\Customer\Contracts\CustomerGroup::class; } /** + * Create. + * * @param array $data * @return \Webkul\Customer\Contracts\CustomerGroup */ public function create(array $data) { - $customer = $this->model->create($data); + Event::dispatch('customer.customer_group.create.before'); - return $customer; + $customerGroup = $this->model->create($data); + + Event::dispatch('customer.customer_group.create.after', $customerGroup); + + return $customerGroup; } /** + * Update. + * * @param array $data * @param int $id * @param string $id * @return \Webkul\Customer\Contracts\CustomerGroup */ - public function update(array $data, $id, $attribute = "id") + public function update(array $data, $id, $attribute = 'id') { - $customer = $this->find($id); + $customer = $this->findOrFail($id); - $customer->update($data); + Event::dispatch('customer.customer_group.update.before', $id); + + $customerGroup = $customer->update($data); + + Event::dispatch('customer.customer_group.update.after', $customerGroup); return $customer; } + /** + * Delete. + * + * @param $id + * @return int + */ + public function delete($id) + { + Event::dispatch('customer.customer_group.delete.before', $id); + + parent::delete($id); + + Event::dispatch('customer.customer_group.delete.after', $id); + } + /** * Returns guest group. * @@ -58,4 +86,4 @@ class CustomerGroupRepository extends Repository return $customerGuestGroup = $this->findOneByField('code', 'guest'); } -} \ No newline at end of file +} diff --git a/packages/Webkul/Product/src/Http/Controllers/ReviewController.php b/packages/Webkul/Product/src/Http/Controllers/ReviewController.php index 0fbd9badd..bbde28c44 100755 --- a/packages/Webkul/Product/src/Http/Controllers/ReviewController.php +++ b/packages/Webkul/Product/src/Http/Controllers/ReviewController.php @@ -8,14 +8,14 @@ use Webkul\Product\Repositories\ProductReviewRepository; class ReviewController extends Controller { /** - * Contains route related configuration + * Contains route related configuration. * * @var array */ protected $_config; /** - * ProductReviewRepository object + * Product review repository instance. * * @var \Webkul\Product\Repositories\ProductReviewRepository */ @@ -34,11 +34,11 @@ class ReviewController extends Controller $this->_config = request('_config'); } - /** + /** * Display a listing of the resource. * * @return \Illuminate\View\View - */ + */ public function index() { return view($this->_config['view']); @@ -65,12 +65,8 @@ class ReviewController extends Controller */ public function update($id) { - Event::dispatch('customer.review.update.before', $id); - $this->productReviewRepository->update(request()->all(), $id); - Event::dispatch('customer.review.update.after', $id); - session()->flash('success', trans('admin::app.response.update-success', ['name' => 'Review'])); return redirect()->route($this->_config['redirect']); @@ -84,20 +80,17 @@ class ReviewController extends Controller */ public function destroy($id) { - $productReview = $this->productReviewRepository->findOrFail($id); + $this->productReviewRepository->findOrFail($id); try { - Event::dispatch('customer.review.delete.before', $id); - $this->productReviewRepository->delete($id); - Event::dispatch('customer.review.delete.after', $id); - session()->flash('success', trans('admin::app.response.delete-success', ['name' => 'Review'])); return response()->json(['message' => true], 200); } catch (\Exception $e) { report($e); + session()->flash('success', trans('admin::app.response.delete-failed', ['name' => 'Review'])); } @@ -120,12 +113,8 @@ class ReviewController extends Controller foreach ($indexes as $key => $value) { try { - Event::dispatch('customer.review.delete.before', $value); - $this->productReviewRepository->delete($value); - - Event::dispatch('customer.review.delete.after', $value); - } catch(\Exception $e) { + } catch (\Exception $e) { $suppressFlash = true; continue; @@ -180,7 +169,7 @@ class ReviewController extends Controller continue; } } - } catch(\Exception $e) { + } catch (\Exception $e) { $suppressFlash = true; continue; diff --git a/packages/Webkul/Product/src/Repositories/ProductReviewRepository.php b/packages/Webkul/Product/src/Repositories/ProductReviewRepository.php index bc32a547d..3ae8f8fd9 100755 --- a/packages/Webkul/Product/src/Repositories/ProductReviewRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductReviewRepository.php @@ -2,7 +2,7 @@ namespace Webkul\Product\Repositories; -use Illuminate\Container\Container as App; +use Illuminate\Support\Facades\Event; use Webkul\Core\Eloquent\Repository; class ProductReviewRepository extends Repository @@ -12,9 +12,42 @@ class ProductReviewRepository extends Repository * * @return mixed */ - function model() + public function model() { - return 'Webkul\Product\Contracts\ProductReview'; + return \Webkul\Product\Contracts\ProductReview::class; + } + + /** + * Update review. + * + * @param array $attributes + * @param $id + * @return mixed + */ + public function update(array $attributes, $id) + { + Event::dispatch('customer.review.update.before', $id); + + $review = parent::update($attributes, $id); + + Event::dispatch('customer.review.update.after', $review); + + return $review; + } + + /** + * Delete a entity in repository by id + * + * @param $id + * @return void + */ + public function delete($id) + { + Event::dispatch('customer.review.delete.before', $id); + + parent::delete($id); + + Event::dispatch('customer.review.delete.after', $id); } /** @@ -22,12 +55,12 @@ class ProductReviewRepository extends Repository * * @param int $customerId */ - function getCustomerReview() + public function getCustomerReview() { $customerId = auth()->guard('customer')->user()->id; - $reviews = $this->model->where(['customer_id'=> $customerId])->with('product')->paginate(5); + $reviews = $this->model->where(['customer_id' => $customerId])->with('product')->paginate(5); return $reviews; } -} \ No newline at end of file +} From d01decf80fbcd089512b442ab76eba52f9b2b6c6 Mon Sep 17 00:00:00 2001 From: Devansh Date: Mon, 10 Jan 2022 20:57:33 +0530 Subject: [PATCH 3/7] Some Typo Fixed --- .../Customer/src/Repositories/CustomerGroupRepository.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/Webkul/Customer/src/Repositories/CustomerGroupRepository.php b/packages/Webkul/Customer/src/Repositories/CustomerGroupRepository.php index 8ba13e2bc..c96f9871d 100755 --- a/packages/Webkul/Customer/src/Repositories/CustomerGroupRepository.php +++ b/packages/Webkul/Customer/src/Repositories/CustomerGroupRepository.php @@ -53,7 +53,7 @@ class CustomerGroupRepository extends Repository Event::dispatch('customer.customer_group.update.after', $customerGroup); - return $customer; + return $customerGroup; } /** From c2386835a2f5717b2dbf0865c742e319883cd711 Mon Sep 17 00:00:00 2001 From: Devansh Date: Tue, 11 Jan 2022 11:06:21 +0530 Subject: [PATCH 4/7] Campaign And Cart Rule Event Moved --- .../Http/Controllers/CartRuleController.php | 51 ++++-------- .../src/Repositories/CartRuleRepository.php | 79 ++++++++++++------- .../Http/Controllers/CampaignController.php | 31 +++----- .../src/Repositories/CampaignRepository.php | 59 +++++++++++++- 4 files changed, 132 insertions(+), 88 deletions(-) diff --git a/packages/Webkul/CartRule/src/Http/Controllers/CartRuleController.php b/packages/Webkul/CartRule/src/Http/Controllers/CartRuleController.php index 7788e05e9..746ac174a 100644 --- a/packages/Webkul/CartRule/src/Http/Controllers/CartRuleController.php +++ b/packages/Webkul/CartRule/src/Http/Controllers/CartRuleController.php @@ -3,31 +3,30 @@ namespace Webkul\CartRule\Http\Controllers; use Exception; -use Illuminate\View\View; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Event; use Illuminate\Validation\ValidationException; -use Webkul\CartRule\Repositories\CartRuleRepository; +use Illuminate\View\View; use Webkul\CartRule\Repositories\CartRuleCouponRepository; +use Webkul\CartRule\Repositories\CartRuleRepository; class CartRuleController extends Controller { /** - * Initialize _config, a default request parameter with route + * Initialize _config, a default request parameter with route. * * @param array */ protected $_config; /** - * To hold Cart repository instance + * To hold cart repository instance. * * @var \Webkul\CartRule\Repositories\CartRuleRepository */ protected $cartRuleRepository; /** - * To hold CartRuleCouponRepository repository instance + * To hold cart rule coupon repository repository instance. * * @var \Webkul\CartRule\Repositories\CartRuleCouponRepository */ @@ -44,8 +43,7 @@ class CartRuleController extends Controller public function __construct( CartRuleRepository $cartRuleRepository, CartRuleCouponRepository $cartRuleCouponRepository - ) - { + ) { $this->_config = request('_config'); $this->cartRuleRepository = $cartRuleRepository; @@ -66,7 +64,6 @@ class CartRuleController extends Controller /** * Show the form for creating a new resource. * - * * @return \Illuminate\Http\Response */ public function create() @@ -77,6 +74,9 @@ class CartRuleController extends Controller /** * Copy a given Cart Rule id. Always make the copy is inactive so the * user is able to configure it before setting it live. + * + * @param int $cartRuleId + * @return \Illuminate\View\View */ public function copy(int $cartRuleId): View { @@ -130,17 +130,12 @@ class CartRuleController extends Controller $data = request()->all(); - Event::dispatch('promotions.cart_rule.create.before'); - - $cartRule = $this->cartRuleRepository->create($data); - - Event::dispatch('promotions.cart_rule.create.after', $cartRule); + $this->cartRuleRepository->create($data); session()->flash('success', trans('admin::app.response.create-success', ['name' => 'Cart Rule'])); return redirect()->route($this->_config['redirect']); } catch (ValidationException $e) { - if ($firstError = collect($e->errors())->first()) { session()->flash('error', $firstError[0]); } @@ -152,8 +147,7 @@ class CartRuleController extends Controller /** * Show the form for editing the specified resource. * - * @param int $id - * + * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) @@ -166,9 +160,8 @@ class CartRuleController extends Controller /** * Update the specified resource in storage. * - * @param \Illuminate\Http\Request $request - * @param int $id - * + * @param \Illuminate\Http\Request $request + * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) @@ -200,17 +193,12 @@ class CartRuleController extends Controller } } - Event::dispatch('promotions.cart_rule.update.before', $cartRule); - $cartRule = $this->cartRuleRepository->update(request()->all(), $id); - Event::dispatch('promotions.cart_rule.update.after', $cartRule); - session()->flash('success', trans('admin::app.response.update-success', ['name' => 'Cart Rule'])); return redirect()->route($this->_config['redirect']); } catch (ValidationException $e) { - if ($firstError = collect($e->errors())->first()) { session()->flash('error', $firstError[0]); } @@ -222,21 +210,16 @@ class CartRuleController extends Controller /** * Remove the specified resource from storage. * - * @param int $id - * + * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { - $cartRule = $this->cartRuleRepository->findOrFail($id); + $this->cartRuleRepository->findOrFail($id); try { - Event::dispatch('promotions.cart_rule.delete.before', $id); - $this->cartRuleRepository->delete($id); - Event::dispatch('promotions.cart_rule.delete.after', $id); - session()->flash('success', trans('admin::app.response.delete-success', ['name' => 'Cart Rule'])); return response()->json(['message' => true], 200); @@ -248,7 +231,7 @@ class CartRuleController extends Controller } /** - * Generate coupon code for cart rule + * Generate coupon code for cart rule. * * @return \Illuminate\Http\JsonResponse */ @@ -268,4 +251,4 @@ class CartRuleController extends Controller return response()->json(['message' => trans('admin::app.response.create-success', ['name' => 'Cart rule coupons'])]); } -} \ No newline at end of file +} diff --git a/packages/Webkul/CartRule/src/Repositories/CartRuleRepository.php b/packages/Webkul/CartRule/src/Repositories/CartRuleRepository.php index f414f8ab6..0b3b45097 100755 --- a/packages/Webkul/CartRule/src/Repositories/CartRuleRepository.php +++ b/packages/Webkul/CartRule/src/Repositories/CartRuleRepository.php @@ -3,60 +3,61 @@ namespace Webkul\CartRule\Repositories; use Illuminate\Container\Container as App; -use Webkul\Core\Eloquent\Repository; +use Illuminate\Support\Facades\Event; use Webkul\Attribute\Repositories\AttributeFamilyRepository; use Webkul\Attribute\Repositories\AttributeRepository; use Webkul\Category\Repositories\CategoryRepository; -use Webkul\Tax\Repositories\TaxCategoryRepository; +use Webkul\Core\Eloquent\Repository; use Webkul\Core\Repositories\CountryRepository; use Webkul\Core\Repositories\CountryStateRepository; +use Webkul\Tax\Repositories\TaxCategoryRepository; class CartRuleRepository extends Repository { /** - * AttributeFamilyRepository object + * Attribute family repository instance. * * @var \Webkul\Attribute\Repositories\AttributeFamilyRepository */ protected $attributeFamilyRepository; /** - * AttributeRepository object + * Attribute repository instance. * * @var \Webkul\Attribute\Repositories\AttributeRepository */ protected $attributeRepository; /** - * CategoryRepository class + * Category repository instance. * * @var \Webkul\Category\Repositories\CategoryRepository */ protected $categoryRepository; /** - * CartRuleCouponRepository object + * Cart rule coupon repository instance. * * @var \Webkul\CartRule\Repositories\CartRuleCouponRepository */ protected $cartRuleCouponRepository; /** - * TaxCategoryRepository class + * Tax category repository instance. * * @var \Webkul\Tax\Repositories\TaxCategoryRepository */ protected $taxCategoryRepository; /** - * CountryRepository class + * Country repository instance. * * @var \Webkul\Core\Repositories\CountryRepository */ protected $countryRepository; /** - * CountryStateRepository class + * Country state repository instance. * * @var \Webkul\Core\Repositories\CountryStateRepository */ @@ -84,8 +85,7 @@ class CartRuleRepository extends Repository CountryRepository $countryRepository, CountryStateRepository $countryStateRepository, App $app - ) - { + ) { $this->attributeFamilyRepository = $attributeFamilyRepository; $this->attributeRepository = $attributeRepository; @@ -108,7 +108,7 @@ class CartRuleRepository extends Repository * * @return mixed */ - function model() + public function model() { return 'Webkul\CartRule\Contracts\CartRule'; } @@ -119,6 +119,8 @@ class CartRuleRepository extends Repository */ public function create(array $data) { + Event::dispatch('promotions.cart_rule.create.before'); + $data['starts_from'] = isset($data['starts_from']) && $data['starts_from'] ? $data['starts_from'] : null; $data['ends_till'] = isset($data['ends_till']) && $data['ends_till'] ? $data['ends_till'] : null; @@ -142,6 +144,8 @@ class CartRuleRepository extends Repository ]); } + Event::dispatch('promotions.cart_rule.create.after', $cartRule); + return $cartRule; } @@ -151,8 +155,10 @@ class CartRuleRepository extends Repository * @param string $attribute * @return \Webkul\CartRule\Contracts\CartRule */ - public function update(array $data, $id, $attribute = "id") + public function update(array $data, $id, $attribute = 'id') { + Event::dispatch('promotions.cart_rule.update.before', $id); + $data['starts_from'] = $data['starts_from'] ?: null; $data['ends_till'] = $data['ends_till'] ?: null; @@ -203,11 +209,28 @@ class CartRuleRepository extends Repository $cartRuleCoupon = $this->cartRuleCouponRepository->deleteWhere(['is_primary' => 1, 'cart_rule_id' => $cartRule->id]); } + Event::dispatch('promotions.cart_rule.update.after', $cartRule); + return $cartRule; } /** - * Returns attributes for cart rule conditions + * Delete. + * + * @param $id + * @return int + */ + public function delete($id) + { + Event::dispatch('promotions.cart_rule.delete.before', $id); + + parent::delete($id); + + Event::dispatch('promotions.cart_rule.delete.after', $id); + } + + /** + * Returns attributes for cart rule conditions. * * @return array */ @@ -250,8 +273,8 @@ class CartRuleRepository extends Repository 'type' => 'select', 'options' => $this->getCountries(), 'label' => trans('admin::app.promotions.cart-rules.shipping-country'), - ] - ] + ], + ], ], [ 'key' => 'cart_item', 'label' => trans('admin::app.promotions.cart-rules.cart-item-attribute'), @@ -276,8 +299,8 @@ class CartRuleRepository extends Repository 'key' => 'cart_item|additional', 'type' => 'text', 'label' => trans('admin::app.promotions.cart-rules.additional'), - ] - ] + ], + ], ], [ 'key' => 'product', 'label' => trans('admin::app.promotions.cart-rules.product-attribute'), @@ -302,9 +325,9 @@ class CartRuleRepository extends Repository 'type' => 'select', 'label' => trans('admin::app.promotions.cart-rules.attribute_family'), 'options' => $this->getAttributeFamilies(), - ] - ] - ] + ], + ], + ], ]; foreach ($this->attributeRepository->findWhereNotIn('type', ['textarea', 'image', 'file']) as $attribute) { @@ -350,7 +373,7 @@ class CartRuleRepository extends Repository } /** - * Returns all payment methods + * Returns all payment methods. * * @return array */ @@ -371,7 +394,7 @@ class CartRuleRepository extends Repository } /** - * Returns all shipping methods + * Returns all shipping methods. * * @return array */ @@ -392,7 +415,7 @@ class CartRuleRepository extends Repository } /** - * Returns all countries + * Returns all countries. * * @return array */ @@ -411,7 +434,7 @@ class CartRuleRepository extends Repository } /** - * Returns all attribute families + * Returns all attribute families. * * @return array */ @@ -430,7 +453,7 @@ class CartRuleRepository extends Repository } /** - * Returns all countries + * Returns all countries. * * @return array */ @@ -449,7 +472,7 @@ class CartRuleRepository extends Repository } /** - * Retrieve all grouped states by country code + * Retrieve all grouped states by country code. * * @return array */ @@ -476,4 +499,4 @@ class CartRuleRepository extends Repository return $collection; } -} \ No newline at end of file +} diff --git a/packages/Webkul/Marketing/src/Http/Controllers/CampaignController.php b/packages/Webkul/Marketing/src/Http/Controllers/CampaignController.php index 166c81981..1d621a48c 100644 --- a/packages/Webkul/Marketing/src/Http/Controllers/CampaignController.php +++ b/packages/Webkul/Marketing/src/Http/Controllers/CampaignController.php @@ -2,29 +2,28 @@ namespace Webkul\Marketing\Http\Controllers; -use Illuminate\Support\Facades\Event; use Webkul\Marketing\Repositories\CampaignRepository; class CampaignController extends Controller { /** - * Contains route related configuration + * Contains route related configuration. * * @var array */ protected $_config; /** - * CampaignRepository object + * Campaign repository instance. * - * @var \Webkul\Core\Repositories\CampaignRepository + * @var \Webkul\Marketing\Repositories\CampaignRepository */ protected $campaignRepository; /** * Create a new controller instance. * - * @param \Webkul\Core\Repositories\CampaignRepository $campaignRepository + * @param \Webkul\Marketing\Repositories\CampaignRepository $campaignRepository * @return void */ public function __construct(CampaignRepository $campaignRepository) @@ -69,11 +68,7 @@ class CampaignController extends Controller 'marketing_event_id' => 'required_if:schedule_type,event', ]); - Event::dispatch('marketing.campaigns.create.before'); - - $locale = $this->campaignRepository->create(request()->all()); - - Event::dispatch('marketing.campaigns.create.after', $locale); + $this->campaignRepository->create(request()->all()); session()->flash('success', trans('admin::app.marketing.campaigns.create-success')); @@ -109,11 +104,7 @@ class CampaignController extends Controller 'marketing_event_id' => 'required_if:schedule_type,event', ]); - Event::dispatch('marketing.campaigns.update.before', $id); - - $locale = $this->campaignRepository->update(request()->all(), $id); - - Event::dispatch('marketing.campaigns.update.after', $locale); + $this->campaignRepository->update(request()->all(), $id); session()->flash('success', trans('admin::app.marketing.campaigns.update-success')); @@ -128,22 +119,18 @@ class CampaignController extends Controller */ public function destroy($id) { - $locale = $this->campaignRepository->findOrFail($id); + $this->campaignRepository->findOrFail($id); try { - Event::dispatch('marketing.campaigns.delete.before', $id); - $this->campaignRepository->delete($id); - Event::dispatch('marketing.campaigns.delete.after', $id); - session()->flash('success', trans('admin::app.marketing.campaigns.delete-success')); return response()->json(['message' => true], 200); - } catch(\Exception $e) { + } catch (\Exception $e) { session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Email Campaign'])); } return response()->json(['message' => false], 400); } -} \ No newline at end of file +} diff --git a/packages/Webkul/Marketing/src/Repositories/CampaignRepository.php b/packages/Webkul/Marketing/src/Repositories/CampaignRepository.php index 73b4d2cd5..bbae70832 100644 --- a/packages/Webkul/Marketing/src/Repositories/CampaignRepository.php +++ b/packages/Webkul/Marketing/src/Repositories/CampaignRepository.php @@ -2,17 +2,68 @@ namespace Webkul\Marketing\Repositories; +use Illuminate\Support\Facades\Event; use Webkul\Core\Eloquent\Repository; class CampaignRepository extends Repository { /** - * Specify Model class name + * Specify model class name. * * @return mixed */ - function model() + public function model() { - return 'Webkul\Marketing\Contracts\Campaign'; + return \Webkul\Marketing\Contracts\Campaign::class; } -} \ No newline at end of file + + /** + * Create. + * + * @param array $attributes + * @return mixed + */ + public function create(array $attributes) + { + Event::dispatch('marketing.campaigns.create.before'); + + $campaign = parent::create($attributes); + + Event::dispatch('marketing.campaigns.create.after', $campaign); + + return $campaign; + } + + /** + * Update. + * + * @param array $attributes + * @param $id + * @return mixed + */ + public function update(array $attributes, $id) + { + Event::dispatch('marketing.campaigns.update.before', $id); + + $campaign = parent::update($attributes, $id); + + Event::dispatch('marketing.campaigns.update.after', $campaign); + + return $campaign; + } + + /** + * Delete. + * + * @param $id + * @return int + */ + public function delete($id) + { + Event::dispatch('marketing.campaigns.delete.before', $id); + + parent::delete($id); + + Event::dispatch('marketing.campaigns.delete.after', $id); + } +} From 137a45b884ca3929f46fa7dd6f125b7a00e0e166 Mon Sep 17 00:00:00 2001 From: Devansh Date: Tue, 11 Jan 2022 12:39:18 +0530 Subject: [PATCH 5/7] Catalog Rule, Channel, Event And Template Done --- .../Controllers/CatalogRuleController.php | 46 +++------ .../Repositories/CatalogRuleRepository.php | 69 +++++++++---- .../Http/Controllers/ChannelController.php | 97 ++++++++----------- .../src/Repositories/ChannelRepository.php | 47 +++++++-- .../src/Http/Controllers/EventController.php | 25 ++--- .../Http/Controllers/TemplateController.php | 31 ++---- .../src/Repositories/EventRepository.php | 59 ++++++++++- .../src/Repositories/TemplateRepository.php | 59 ++++++++++- 8 files changed, 271 insertions(+), 162 deletions(-) diff --git a/packages/Webkul/CatalogRule/src/Http/Controllers/CatalogRuleController.php b/packages/Webkul/CatalogRule/src/Http/Controllers/CatalogRuleController.php index aedbc4e05..4c85e9336 100644 --- a/packages/Webkul/CatalogRule/src/Http/Controllers/CatalogRuleController.php +++ b/packages/Webkul/CatalogRule/src/Http/Controllers/CatalogRuleController.php @@ -3,29 +3,28 @@ namespace Webkul\CatalogRule\Http\Controllers; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Event; -use Webkul\CatalogRule\Repositories\CatalogRuleRepository; use Webkul\CatalogRule\Helpers\CatalogRuleIndex; +use Webkul\CatalogRule\Repositories\CatalogRuleRepository; class CatalogRuleController extends Controller { /** - * Initialize _config, a default request parameter with route - * + * Initialize _config, a default request parameter with route. + * * @param array */ protected $_config; /** - * To hold Catalog repository instance - * + * To hold catalog repository instance. + * * @var \Webkul\CatalogRule\Repositories\CatalogRuleRepository */ protected $catalogRuleRepository; /** - * CatalogRuleIndex - * + * Catalog rule index. + * * @var \Webkul\CatalogRule\Helpers\CatalogRuleIndex */ protected $catalogRuleIndexHelper; @@ -40,8 +39,7 @@ class CatalogRuleController extends Controller public function __construct( CatalogRuleRepository $catalogRuleRepository, CatalogRuleIndex $catalogRuleIndexHelper - ) - { + ) { $this->_config = request('_config'); $this->catalogRuleRepository = $catalogRuleRepository; @@ -88,11 +86,7 @@ class CatalogRuleController extends Controller $data = request()->all(); - Event::dispatch('promotions.catalog_rule.create.before'); - - $catalogRule = $this->catalogRuleRepository->create($data); - - Event::dispatch('promotions.catalog_rule.create.after', $catalogRule); + $this->catalogRuleRepository->create($data); $this->catalogRuleIndexHelper->reindexComplete(); @@ -117,8 +111,8 @@ class CatalogRuleController extends Controller /** * Update the specified resource in storage. * - * @param \Illuminate\Http\Request $request - * @param int $id + * @param \Illuminate\Http\Request $request + * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) @@ -133,13 +127,9 @@ class CatalogRuleController extends Controller 'discount_amount' => 'required|numeric', ]); - $catalogRule = $this->catalogRuleRepository->findOrFail($id); + $this->catalogRuleRepository->findOrFail($id); - Event::dispatch('promotions.catalog_rule.update.before', $catalogRule); - - $catalogRule = $this->catalogRuleRepository->update(request()->all(), $id); - - Event::dispatch('promotions.catalog_rule.update.after', $catalogRule); + $this->catalogRuleRepository->update(request()->all(), $id); $this->catalogRuleIndexHelper->reindexComplete(); @@ -156,22 +146,18 @@ class CatalogRuleController extends Controller */ public function destroy($id) { - $catalogRule = $this->catalogRuleRepository->findOrFail($id); + $this->catalogRuleRepository->findOrFail($id); try { - Event::dispatch('promotions.catalog_rule.delete.before', $id); - $this->catalogRuleRepository->delete($id); - Event::dispatch('promotions.catalog_rule.delete.after', $id); - session()->flash('success', trans('admin::app.response.delete-success', ['name' => 'Catalog Rule'])); return response()->json(['message' => true], 200); - } catch(\Exception $e) { + } catch (\Exception $e) { session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Catalog Rule'])); } return response()->json(['message' => false], 400); } -} \ No newline at end of file +} diff --git a/packages/Webkul/CatalogRule/src/Repositories/CatalogRuleRepository.php b/packages/Webkul/CatalogRule/src/Repositories/CatalogRuleRepository.php index a0f5caad2..9abde56c3 100644 --- a/packages/Webkul/CatalogRule/src/Repositories/CatalogRuleRepository.php +++ b/packages/Webkul/CatalogRule/src/Repositories/CatalogRuleRepository.php @@ -3,37 +3,38 @@ namespace Webkul\CatalogRule\Repositories; use Illuminate\Container\Container as App; -use Webkul\Core\Eloquent\Repository; +use Illuminate\Support\Facades\Event; use Webkul\Attribute\Repositories\AttributeFamilyRepository; use Webkul\Attribute\Repositories\AttributeRepository; use Webkul\Category\Repositories\CategoryRepository; +use Webkul\Core\Eloquent\Repository; use Webkul\Tax\Repositories\TaxCategoryRepository; class CatalogRuleRepository extends Repository { /** - * AttributeFamilyRepository object + * Attribute family repository instance. * * @var \Webkul\Attribute\Repositories\AttributeFamilyRepository */ protected $attributeFamilyRepository; /** - * AttributeRepository object + * Attribute repository instance. * * @var \Webkul\Attribute\Repositories\AttributeRepository */ protected $attributeRepository; /** - * CategoryRepository class + * Category repository instance. * * @var \Webkul\Category\Repositories\CategoryRepository */ protected $categoryRepository; /** - * TaxCategoryRepository class + * Tax category repository instance. * * @var \Webkul\CaTaxtegory\Repositories\axCategoryRepository */ @@ -55,8 +56,7 @@ class CatalogRuleRepository extends Repository CategoryRepository $categoryRepository, TaxCategoryRepository $taxCategoryRepository, App $app - ) - { + ) { $this->attributeFamilyRepository = $attributeFamilyRepository; $this->attributeRepository = $attributeRepository; @@ -69,21 +69,25 @@ class CatalogRuleRepository extends Repository } /** - * Specify Model class name + * Specify model class name. * * @return mixed */ - function model() + public function model() { - return 'Webkul\CatalogRule\Contracts\CatalogRule'; + return \Webkul\CatalogRule\Contracts\CatalogRule::class; } /** + * Create. + * * @param array $data * @return \Webkul\CatalogRule\Contracts\CatalogRule */ public function create(array $data) { + Event::dispatch('promotions.catalog_rule.create.before'); + $data['starts_from'] = $data['starts_from'] ?: null; $data['ends_till'] = $data['ends_till'] ?: null; @@ -96,17 +100,23 @@ class CatalogRuleRepository extends Repository $catalogRule->customer_groups()->sync($data['customer_groups']); + Event::dispatch('promotions.catalog_rule.create.after', $catalogRule); + return $catalogRule; } /** + * Update. + * * @param array $data * @param int $id * @param string $attribute * @return \Webkul\CatalogRule\Contracts\CatalogRule */ - public function update(array $data, $id, $attribute = "id") + public function update(array $data, $id, $attribute = 'id') { + Event::dispatch('promotions.catalog_rule.update.before', $id); + $data['starts_from'] = $data['starts_from'] ?: null; $data['ends_till'] = $data['ends_till'] ?: null; @@ -123,11 +133,28 @@ class CatalogRuleRepository extends Repository $catalogRule->customer_groups()->sync($data['customer_groups']); + Event::dispatch('promotions.catalog_rule.update.after', $catalogRule); + return $catalogRule; } /** - * Returns attributes for catalog rule conditions + * Delete. + * + * @param $id + * @return int + */ + public function delete($id) + { + Event::dispatch('promotions.catalog_rule.delete.before', $id); + + parent::delete($id); + + Event::dispatch('promotions.catalog_rule.delete.after', $id); + } + + /** + * Returns attributes for catalog rule conditions. * * @return array */ @@ -148,9 +175,9 @@ class CatalogRuleRepository extends Repository 'type' => 'select', 'label' => trans('admin::app.promotions.catalog-rules.attribute_family'), 'options' => $this->getAttributeFamilies(), - ] - ] - ] + ], + ], + ], ]; foreach ($this->attributeRepository->findWhereNotIn('type', ['textarea', 'image', 'file']) as $attribute) { @@ -166,11 +193,13 @@ class CatalogRuleRepository extends Repository } } - if ($attribute->validation == 'decimal') + if ($attribute->validation == 'decimal') { $attributeType = 'decimal'; + } - if ($attribute->validation == 'numeric') + if ($attribute->validation == 'numeric') { $attributeType = 'integer'; + } $attributes[0]['children'][] = [ 'key' => 'product|' . $attribute->code, @@ -184,7 +213,7 @@ class CatalogRuleRepository extends Repository } /** - * Returns all tax categories + * Returns all tax categories. * * @return array */ @@ -203,7 +232,7 @@ class CatalogRuleRepository extends Repository } /** - * Returns all attribute families + * Returns all attribute families. * * @return array */ @@ -220,4 +249,4 @@ class CatalogRuleRepository extends Repository return $attributeFamilies; } -} \ No newline at end of file +} diff --git a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php index e29db0974..0446ac082 100755 --- a/packages/Webkul/Core/src/Http/Controllers/ChannelController.php +++ b/packages/Webkul/Core/src/Http/Controllers/ChannelController.php @@ -2,7 +2,6 @@ namespace Webkul\Core\Http\Controllers; -use Illuminate\Support\Facades\Event; use Webkul\Core\Repositories\ChannelRepository; class ChannelController extends Controller @@ -15,7 +14,7 @@ class ChannelController extends Controller protected $_config; /** - * ChannelRepository object + * Channel repository instance. * * @var \Webkul\Core\Repositories\ChannelRepository */ @@ -63,44 +62,40 @@ class ChannelController extends Controller { $data = $this->validate(request(), [ /* general */ - 'code' => ['required', 'unique:channels,code', new \Webkul\Core\Contracts\Validations\Code], - 'name' => 'required', - 'description' => 'nullable', - 'inventory_sources' => 'required|array|min:1', - 'root_category_id' => 'required', - 'hostname' => 'unique:channels,hostname', + 'code' => ['required', 'unique:channels,code', new \Webkul\Core\Contracts\Validations\Code], + 'name' => 'required', + 'description' => 'nullable', + 'inventory_sources' => 'required|array|min:1', + 'root_category_id' => 'required', + 'hostname' => 'unique:channels,hostname', /* currencies and locales */ - 'locales' => 'required|array|min:1', - 'default_locale_id' => 'required|in_array:locales.*', - 'currencies' => 'required|array|min:1', - 'base_currency_id' => 'required|in_array:currencies.*', + 'locales' => 'required|array|min:1', + 'default_locale_id' => 'required|in_array:locales.*', + 'currencies' => 'required|array|min:1', + 'base_currency_id' => 'required|in_array:currencies.*', /* design */ - 'theme' => 'nullable', - 'home_page_content' => 'nullable', - 'footer_content' => 'nullable', - 'logo.*' => 'nullable|mimes:bmp,jpeg,jpg,png,webp', - 'favicon.*' => 'nullable|mimes:bmp,jpeg,jpg,png,webp', + 'theme' => 'nullable', + 'home_page_content' => 'nullable', + 'footer_content' => 'nullable', + 'logo.*' => 'nullable|mimes:bmp,jpeg,jpg,png,webp', + 'favicon.*' => 'nullable|mimes:bmp,jpeg,jpg,png,webp', /* seo */ - 'seo_title' => 'required|string', - 'seo_description' => 'required|string', - 'seo_keywords' => 'required|string', + 'seo_title' => 'required|string', + 'seo_description' => 'required|string', + 'seo_keywords' => 'required|string', /* maintenance mode */ 'is_maintenance_on' => 'boolean', 'maintenance_mode_text' => 'nullable', - 'allowed_ips' => 'nullable' + 'allowed_ips' => 'nullable', ]); $data = $this->setSEOContent($data); - Event::dispatch('core.channel.create.before'); - - $channel = $this->channelRepository->create($data); - - Event::dispatch('core.channel.create.after', $channel); + $this->channelRepository->create($data); session()->flash('success', trans('admin::app.settings.channels.create-success')); @@ -132,49 +127,45 @@ class ChannelController extends Controller $data = $this->validate(request(), [ /* general */ - 'code' => ['required', 'unique:channels,code,' . $id, new \Webkul\Core\Contracts\Validations\Code], - $locale . '.name' => 'required', - $locale . '.description' => 'nullable', - 'inventory_sources' => 'required|array|min:1', - 'root_category_id' => 'required', - 'hostname' => 'unique:channels,hostname,' . $id, + 'code' => ['required', 'unique:channels,code,' . $id, new \Webkul\Core\Contracts\Validations\Code], + $locale . '.name' => 'required', + $locale . '.description' => 'nullable', + 'inventory_sources' => 'required|array|min:1', + 'root_category_id' => 'required', + 'hostname' => 'unique:channels,hostname,' . $id, /* currencies and locales */ - 'locales' => 'required|array|min:1', - 'default_locale_id' => 'required|in_array:locales.*', - 'currencies' => 'required|array|min:1', - 'base_currency_id' => 'required|in_array:currencies.*', + 'locales' => 'required|array|min:1', + 'default_locale_id' => 'required|in_array:locales.*', + 'currencies' => 'required|array|min:1', + 'base_currency_id' => 'required|in_array:currencies.*', /* design */ - 'theme' => 'nullable', - $locale . '.home_page_content' => 'nullable', - $locale . '.footer_content' => 'nullable', - 'logo.*' => 'nullable|mimes:bmp,jpeg,jpg,png,webp', - 'favicon.*' => 'nullable|mimes:bmp,jpeg,jpg,png,webp', + 'theme' => 'nullable', + $locale . '.home_page_content' => 'nullable', + $locale . '.footer_content' => 'nullable', + 'logo.*' => 'nullable|mimes:bmp,jpeg,jpg,png,webp', + 'favicon.*' => 'nullable|mimes:bmp,jpeg,jpg,png,webp', /* seo */ - $locale . '.seo_title' => 'nullable', - $locale . '.seo_description' => 'nullable', - $locale . '.seo_keywords' => 'nullable', + $locale . '.seo_title' => 'nullable', + $locale . '.seo_description' => 'nullable', + $locale . '.seo_keywords' => 'nullable', /* maintenance mode */ 'is_maintenance_on' => 'boolean', $locale . '.maintenance_mode_text' => 'nullable', - 'allowed_ips' => 'nullable' + 'allowed_ips' => 'nullable', ]); $data = $this->setSEOContent($data, $locale); - Event::dispatch('core.channel.update.before', $id); - $channel = $this->channelRepository->update($data, $id); if ($channel->base_currency->code !== session()->get('currency')) { session()->put('currency', $channel->base_currency->code); } - Event::dispatch('core.channel.update.after', $channel); - session()->flash('success', trans('admin::app.settings.channels.update-success')); return redirect()->route($this->_config['redirect']); @@ -194,16 +185,12 @@ class ChannelController extends Controller session()->flash('error', trans('admin::app.settings.channels.last-delete-error')); } else { try { - Event::dispatch('core.channel.delete.before', $id); - $this->channelRepository->delete($id); - Event::dispatch('core.channel.delete.after', $id); - session()->flash('success', trans('admin::app.settings.channels.delete-success')); return response()->json(['message' => true], 200); - } catch(\Exception $e) { + } catch (\Exception $e) { session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Channel'])); } } @@ -255,4 +242,4 @@ class ChannelController extends Controller return $data; } -} \ No newline at end of file +} diff --git a/packages/Webkul/Core/src/Repositories/ChannelRepository.php b/packages/Webkul/Core/src/Repositories/ChannelRepository.php index b0a958ff6..19bc288ad 100755 --- a/packages/Webkul/Core/src/Repositories/ChannelRepository.php +++ b/packages/Webkul/Core/src/Repositories/ChannelRepository.php @@ -2,30 +2,35 @@ namespace Webkul\Core\Repositories; -use Webkul\Core\Eloquent\Repository; +use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Storage; use Prettus\Repository\Traits\CacheableRepository; +use Webkul\Core\Eloquent\Repository; class ChannelRepository extends Repository { use CacheableRepository; /** - * Specify Model class name + * Specify model class name. * * @return mixed */ - function model() + public function model() { - return 'Webkul\Core\Contracts\Channel'; + return \Webkul\Core\Contracts\Channel::class; } /** + * Create. + * * @param array $data * @return \Webkul\Core\Contracts\Channel */ public function create(array $data) { + Event::dispatch('core.channel.create.before'); + $model = $this->getModel(); foreach (core()->getAllLocales() as $locale) { @@ -48,17 +53,23 @@ class ChannelRepository extends Repository $this->uploadImages($data, $channel, 'favicon'); + Event::dispatch('core.channel.create.after', $channel); + return $channel; } /** + * Update. + * * @param array $data * @param int $id * @param string $attribute * @return \Webkul\Core\Contracts\Channel */ - public function update(array $data, $id, $attribute = "id") + public function update(array $data, $id, $attribute = 'id') { + Event::dispatch('core.channel.update.before', $id); + $channel = $this->find($id); $channel = parent::update($data, $id, $attribute); @@ -73,16 +84,35 @@ class ChannelRepository extends Repository $this->uploadImages($data, $channel, 'favicon'); + Event::dispatch('core.channel.update.after', $channel); + return $channel; } /** + * Delete. + * + * @param $id + * @return int + */ + public function delete($id) + { + Event::dispatch('core.channel.delete.before', $id); + + parent::delete($id); + + Event::dispatch('core.channel.delete.after', $id); + } + + /** + * Upload images. + * * @param array $data - * @param \Webkul\Core\Contratcs\Channel $channel + * @param \Webkul\Core\Contracts\Channel $channel * @param string $type * @return void */ - public function uploadImages($data, $channel, $type = "logo") + public function uploadImages($data, $channel, $type = 'logo') { if (isset($data[$type])) { foreach ($data[$type] as $imageId => $image) { @@ -104,7 +134,8 @@ class ChannelRepository extends Repository } $channel->{$type} = null; + $channel->save(); } } -} \ No newline at end of file +} diff --git a/packages/Webkul/Marketing/src/Http/Controllers/EventController.php b/packages/Webkul/Marketing/src/Http/Controllers/EventController.php index edf2fca09..fe2642d50 100644 --- a/packages/Webkul/Marketing/src/Http/Controllers/EventController.php +++ b/packages/Webkul/Marketing/src/Http/Controllers/EventController.php @@ -2,20 +2,19 @@ namespace Webkul\Marketing\Http\Controllers; -use Illuminate\Support\Facades\Event; use Webkul\Marketing\Repositories\EventRepository; class EventController extends Controller { /** - * Contains route related configuration + * Contains route related configuration. * * @var array */ protected $_config; /** - * EventRepository object + * Event repository instance. * * @var \Webkul\Marketing\Repositories\EventRepository */ @@ -67,11 +66,7 @@ class EventController extends Controller 'date' => 'date|required', ]); - Event::dispatch('marketing.events.create.before'); - - $locale = $this->eventRepository->create(request()->all()); - - Event::dispatch('marketing.events.create.after', $locale); + $this->eventRepository->create(request()->all()); session()->flash('success', trans('admin::app.marketing.events.create-success')); @@ -111,11 +106,7 @@ class EventController extends Controller 'date' => 'date|required', ]); - Event::dispatch('marketing.events.update.before', $id); - - $locale = $this->eventRepository->update(request()->all(), $id); - - Event::dispatch('marketing.events.update.after', $locale); + $this->eventRepository->update(request()->all(), $id); session()->flash('success', trans('admin::app.marketing.events.update-success')); @@ -130,19 +121,15 @@ class EventController extends Controller */ public function destroy($id) { - $locale = $this->eventRepository->findOrFail($id); + $this->eventRepository->findOrFail($id); try { - Event::dispatch('marketing.events.delete.before', $id); - $this->eventRepository->delete($id); - Event::dispatch('marketing.events.delete.after', $id); - session()->flash('success', trans('admin::app.marketing.events.delete-success')); return response()->json(['message' => true], 200); - } catch(\Exception $e) { + } catch (\Exception $e) { session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Event'])); } diff --git a/packages/Webkul/Marketing/src/Http/Controllers/TemplateController.php b/packages/Webkul/Marketing/src/Http/Controllers/TemplateController.php index f56768428..dfea037d5 100644 --- a/packages/Webkul/Marketing/src/Http/Controllers/TemplateController.php +++ b/packages/Webkul/Marketing/src/Http/Controllers/TemplateController.php @@ -2,29 +2,28 @@ namespace Webkul\Marketing\Http\Controllers; -use Illuminate\Support\Facades\Event; use Webkul\Marketing\Repositories\TemplateRepository; class TemplateController extends Controller { /** - * Contains route related configuration + * Contains route related configuration. * * @var array */ protected $_config; /** - * TemplateRepository object + * Template repository instance. * - * @var \Webkul\Core\Repositories\TemplateRepository + * @var \Webkul\Marketing\Repositories\TemplateRepository */ protected $templateRepository; /** * Create a new controller instance. * - * @param \Webkul\Core\Repositories\TemplateRepository $templateRepository + * @param \Webkul\Marketing\Repositories\TemplateRepository $templateRepository * @return void */ public function __construct(TemplateRepository $templateRepository) @@ -67,11 +66,7 @@ class TemplateController extends Controller 'content' => 'required', ]); - Event::dispatch('marketing.templates.create.before'); - - $locale = $this->templateRepository->create(request()->all()); - - Event::dispatch('marketing.templates.create.after', $locale); + $this->templateRepository->create(request()->all()); session()->flash('success', trans('admin::app.marketing.templates.create-success')); @@ -105,11 +100,7 @@ class TemplateController extends Controller 'content' => 'required', ]); - Event::dispatch('marketing.templates.update.before', $id); - - $locale = $this->templateRepository->update(request()->all(), $id); - - Event::dispatch('marketing.templates.update.after', $locale); + $this->templateRepository->update(request()->all(), $id); session()->flash('success', trans('admin::app.marketing.templates.update-success')); @@ -124,22 +115,18 @@ class TemplateController extends Controller */ public function destroy($id) { - $locale = $this->templateRepository->findOrFail($id); + $this->templateRepository->findOrFail($id); try { - Event::dispatch('marketing.templates.delete.before', $id); - $this->templateRepository->delete($id); - Event::dispatch('marketing.templates.delete.after', $id); - session()->flash('success', trans('admin::app.marketing.templates.delete-success')); return response()->json(['message' => true], 200); - } catch(\Exception $e) { + } catch (\Exception $e) { session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Email Template'])); } return response()->json(['message' => false], 400); } -} \ No newline at end of file +} diff --git a/packages/Webkul/Marketing/src/Repositories/EventRepository.php b/packages/Webkul/Marketing/src/Repositories/EventRepository.php index 4855c5876..0c3ee8dd2 100644 --- a/packages/Webkul/Marketing/src/Repositories/EventRepository.php +++ b/packages/Webkul/Marketing/src/Repositories/EventRepository.php @@ -2,17 +2,68 @@ namespace Webkul\Marketing\Repositories; +use Illuminate\Support\Facades\Event; use Webkul\Core\Eloquent\Repository; class EventRepository extends Repository { /** - * Specify Model class name + * Specify model class name. * * @return mixed */ - function model() + public function model() { - return 'Webkul\Marketing\Contracts\Event'; + return Webkul\Marketing\Contracts\Event::class; } -} \ No newline at end of file + + /** + * Save a new entity in repository + * + * @param array $attributes + * @return mixed + */ + public function create(array $attributes) + { + Event::dispatch('marketing.events.create.before'); + + $event = parent::create($attributes); + + Event::dispatch('marketing.events.create.after', $event); + + return $event; + } + + /** + * Update. + * + * @param array $attributes + * @param $id + * @return mixed + */ + public function update(array $attributes, $id) + { + Event::dispatch('marketing.events.update.before', $id); + + $event = parent::update($attributes, $id); + + Event::dispatch('marketing.events.update.after', $event); + + return $event; + } + + /** + * Delete. + * + * @param $id + * @return int + */ + public function delete($id) + { + Event::dispatch('marketing.events.delete.before', $id); + + parent::delete($id); + + Event::dispatch('marketing.events.delete.after', $id); + } +} diff --git a/packages/Webkul/Marketing/src/Repositories/TemplateRepository.php b/packages/Webkul/Marketing/src/Repositories/TemplateRepository.php index c248c3ce0..f782ed30b 100644 --- a/packages/Webkul/Marketing/src/Repositories/TemplateRepository.php +++ b/packages/Webkul/Marketing/src/Repositories/TemplateRepository.php @@ -2,17 +2,68 @@ namespace Webkul\Marketing\Repositories; +use Illuminate\Support\Facades\Event; use Webkul\Core\Eloquent\Repository; class TemplateRepository extends Repository { /** - * Specify Model class name + * Specify model class name. * * @return mixed */ - function model() + public function model() { - return 'Webkul\Marketing\Contracts\Template'; + return \Webkul\Marketing\Contracts\Template::class; } -} \ No newline at end of file + + /** + * Create. + * + * @param array $attributes + * @return mixed + */ + public function create(array $attributes) + { + Event::dispatch('marketing.templates.create.before'); + + $template = parent::create($attributes); + + Event::dispatch('marketing.templates.create.after', $template); + + return $template; + } + + /** + * Update. + * + * @param array $attributes + * @param $id + * @return mixed + */ + public function update(array $attributes, $id) + { + Event::dispatch('marketing.templates.update.before', $id); + + $template = parent::update($attributes, $id); + + Event::dispatch('marketing.templates.update.after', $template); + + return $template; + } + + /** + * Delete. + * + * @param int $id + * @return int + */ + public function delete($id) + { + Event::dispatch('marketing.templates.delete.before', $id); + + parent::delete($id); + + Event::dispatch('marketing.templates.delete.after', $id); + } +} From 75ec3d276c911e27bc21b36d9022e35eeac95387 Mon Sep 17 00:00:00 2001 From: Devansh Date: Tue, 11 Jan 2022 12:53:14 +0530 Subject: [PATCH 6/7] Some Issue Fixed --- .../Http/Controllers/CurrencyController.php | 38 +++-------- .../src/Repositories/CurrencyRepository.php | 67 +++++++++++++++---- .../src/Repositories/EventRepository.php | 2 +- 3 files changed, 66 insertions(+), 41 deletions(-) diff --git a/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php b/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php index fdad9a68b..59d3917c3 100755 --- a/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php +++ b/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php @@ -2,20 +2,19 @@ namespace Webkul\Core\Http\Controllers; -use Illuminate\Support\Facades\Event; use Webkul\Core\Repositories\CurrencyRepository; class CurrencyController extends Controller { /** - * Contains route related configuration + * Contains route related configuration. * * @var array */ protected $_config; /** - * CurrencyRepository object + * Currency repository instance. * * @var \Webkul\Core\Repositories\CurrencyRepository */ @@ -66,11 +65,7 @@ class CurrencyController extends Controller 'name' => 'required', ]); - Event::dispatch('core.currency.create.before'); - - $currency = $this->currencyRepository->create(request()->all()); - - Event::dispatch('core.currency.create.after', $currency); + $this->currencyRepository->create(request()->all()); session()->flash('success', trans('admin::app.settings.currencies.create-success')); @@ -103,11 +98,7 @@ class CurrencyController extends Controller 'name' => 'required', ]); - Event::dispatch('core.currency.update.before', $id); - - $currency = $this->currencyRepository->update(request()->all(), $id); - - Event::dispatch('core.currency.update.after', $currency); + $this->currencyRepository->update(request()->all(), $id); session()->flash('success', trans('admin::app.settings.currencies.update-success')); @@ -122,18 +113,14 @@ class CurrencyController extends Controller */ public function destroy($id) { - $currency = $this->currencyRepository->findOrFail($id); + $this->currencyRepository->findOrFail($id); if ($this->currencyRepository->count() == 1) { session()->flash('warning', trans('admin::app.settings.currencies.last-delete-error')); } else { try { - Event::dispatch('core.currency.delete.before', $id); - $this->currencyRepository->delete($id); - Event::dispatch('core.currency.delete.after', $id); - session()->flash('success', trans('admin::app.settings.currencies.delete-success')); return response()->json(['message' => true], 200); @@ -147,7 +134,7 @@ class CurrencyController extends Controller } /** - * Remove the specified resources from database + * Remove the specified resources from database. * * @return \Illuminate\Http\Response */ @@ -160,22 +147,19 @@ class CurrencyController extends Controller foreach ($indexes as $key => $value) { try { - Event::dispatch('core.currency.delete.before', $value); - $this->currencyRepository->delete($value); - - Event::dispatch('core.currency.delete.after', $value); - } catch(\Exception $e) { + } catch (\Exception $e) { $suppressFlash = true; continue; } } - if (! $suppressFlash) + if (! $suppressFlash) { session()->flash('success', trans('admin::app.datagrid.mass-ops.delete-success', ['resource' => 'currencies'])); - else + } else { session()->flash('info', trans('admin::app.datagrid.mass-ops.partial-action', ['resource' => 'currencies'])); + } return redirect()->back(); } else { @@ -184,4 +168,4 @@ class CurrencyController extends Controller return redirect()->back(); } } -} \ No newline at end of file +} diff --git a/packages/Webkul/Core/src/Repositories/CurrencyRepository.php b/packages/Webkul/Core/src/Repositories/CurrencyRepository.php index bda254f82..d21f28d0f 100755 --- a/packages/Webkul/Core/src/Repositories/CurrencyRepository.php +++ b/packages/Webkul/Core/src/Repositories/CurrencyRepository.php @@ -2,38 +2,79 @@ namespace Webkul\Core\Repositories; -use Webkul\Core\Eloquent\Repository; +use Illuminate\Support\Facades\Event; use Prettus\Repository\Traits\CacheableRepository; +use Webkul\Core\Eloquent\Repository; class CurrencyRepository extends Repository { use CacheableRepository; /** - * Specify Model class name + * Specify model class name. * * @return mixed */ - function model() + public function model() { - return 'Webkul\Core\Contracts\Currency'; + return \Webkul\Core\Contracts\Currency::class; } /** - * Specify Model class name + * Save a new entity in repository + * + * @param array $attributes + * @return mixed + */ + public function create(array $attributes) + { + Event::dispatch('core.currency.create.before'); + + $currency = parent::create($attributes); + + Event::dispatch('core.currency.create.after', $currency); + + return $currency; + } + + /** + * Update. + * + * @param array $attributes + * @param $id + * @return mixed + */ + public function update(array $attributes, $id) + { + Event::dispatch('core.currency.update.before', $id); + + $currency = parent::update($attributes, $id); + + Event::dispatch('core.currency.update.after', $currency); + + return $currency; + } + + /** + * Delete. * * @param int $id * @return bool */ - public function delete($id) { + public function delete($id) + { + Event::dispatch('core.currency.delete.before', $id); + if ($this->model->count() == 1) { return false; - } else { - if ($this->model->destroy($id)) { - return true; - } else { - return false; - } } + + if ($this->model->destroy($id)) { + Event::dispatch('core.currency.delete.after', $id); + + return true; + } + + return false; } -} \ No newline at end of file +} diff --git a/packages/Webkul/Marketing/src/Repositories/EventRepository.php b/packages/Webkul/Marketing/src/Repositories/EventRepository.php index 0c3ee8dd2..1bf3e3bb8 100644 --- a/packages/Webkul/Marketing/src/Repositories/EventRepository.php +++ b/packages/Webkul/Marketing/src/Repositories/EventRepository.php @@ -14,7 +14,7 @@ class EventRepository extends Repository */ public function model() { - return Webkul\Marketing\Contracts\Event::class; + return \Webkul\Marketing\Contracts\Event::class; } /** From 3f9c0ac6cc36abfc975690f60f61019298ec1c41 Mon Sep 17 00:00:00 2001 From: Devansh Date: Tue, 11 Jan 2022 14:20:24 +0530 Subject: [PATCH 7/7] Some More Events Moved --- .../Controllers/ExchangeRateController.php | 34 +++------- .../src/Http/Controllers/LocaleController.php | 27 +++----- .../src/Repositories/CurrencyRepository.php | 2 +- .../Repositories/ExchangeRateRepository.php | 61 ++++++++++++++++-- .../src/Repositories/LocaleRepository.php | 61 ++++++++++++++++-- .../Controllers/InventorySourceController.php | 19 +----- .../InventorySourceRepository.php | 59 +++++++++++++++-- .../Controllers/TaxCategoryController.php | 38 +++-------- .../Http/Controllers/TaxRateController.php | 49 ++++++--------- .../Repositories/TaxCategoryRepository.php | 63 +++++++++++++++++-- .../src/Repositories/TaxRateRepository.php | 59 +++++++++++++++-- .../src/Http/Controllers/RoleController.php | 19 +----- .../src/Http/Controllers/UserController.php | 22 +------ .../User/src/Repositories/AdminRepository.php | 57 ++++++++++++++++- .../User/src/Repositories/RoleRepository.php | 49 ++++++++++++--- 15 files changed, 433 insertions(+), 186 deletions(-) diff --git a/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php b/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php index 43c3f049c..84444a04a 100755 --- a/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php +++ b/packages/Webkul/Core/src/Http/Controllers/ExchangeRateController.php @@ -2,28 +2,27 @@ namespace Webkul\Core\Http\Controllers; -use Illuminate\Support\Facades\Event; -use Webkul\Core\Repositories\ExchangeRateRepository; use Webkul\Core\Repositories\CurrencyRepository; +use Webkul\Core\Repositories\ExchangeRateRepository; class ExchangeRateController extends Controller { /** - * Contains route related configuration + * Contains route related configuration. * * @var array */ protected $_config; /** - * ExchangeRateRepository instance + * Exchange rate repository instance. * * @var \Webkul\Core\Repositories\ExchangeRateRepository */ protected $exchangeRateRepository; /** - * CurrencyRepository object + * Currency repository instance. * * @var \Webkul\Core\Repositories\CurrencyRepository */ @@ -39,8 +38,7 @@ class ExchangeRateController extends Controller public function __construct( ExchangeRateRepository $exchangeRateRepository, CurrencyRepository $currencyRepository - ) - { + ) { $this->exchangeRateRepository = $exchangeRateRepository; $this->currencyRepository = $currencyRepository; @@ -82,11 +80,7 @@ class ExchangeRateController extends Controller 'rate' => 'required|numeric', ]); - Event::dispatch('core.exchange_rate.create.before'); - - $exchangeRate = $this->exchangeRateRepository->create(request()->all()); - - Event::dispatch('core.exchange_rate.create.after', $exchangeRate); + $this->exchangeRateRepository->create(request()->all()); session()->flash('success', trans('admin::app.settings.exchange_rates.create-success')); @@ -121,11 +115,7 @@ class ExchangeRateController extends Controller 'rate' => 'required|numeric', ]); - Event::dispatch('core.exchange_rate.update.before', $id); - - $exchangeRate = $this->exchangeRateRepository->update(request()->all(), $id); - - Event::dispatch('core.exchange_rate.update.after', $exchangeRate); + $this->exchangeRateRepository->update(request()->all(), $id); session()->flash('success', trans('admin::app.settings.exchange_rates.update-success')); @@ -143,7 +133,7 @@ class ExchangeRateController extends Controller app(config('services.exchange-api.' . config('services.exchange-api.default') . '.class'))->updateRates(); session()->flash('success', trans('admin::app.settings.exchange_rates.update-success')); - } catch(\Exception $e) { + } catch (\Exception $e) { session()->flash('error', $e->getMessage()); } @@ -158,21 +148,17 @@ class ExchangeRateController extends Controller */ public function destroy($id) { - $exchangeRate = $this->exchangeRateRepository->findOrFail($id); + $this->exchangeRateRepository->findOrFail($id); try { - Event::dispatch('core.exchange_rate.delete.before', $id); - $this->exchangeRateRepository->delete($id); session()->flash('success', trans('admin::app.settings.exchange_rates.delete-success')); - Event::dispatch('core.exchange_rate.delete.after', $id); - return response()->json(['message' => true], 200); } catch (\Exception $e) { report($e); - + session()->flash('error', trans('admin::app.response.delete-error', ['name' => 'Exchange rate'])); } diff --git a/packages/Webkul/Core/src/Http/Controllers/LocaleController.php b/packages/Webkul/Core/src/Http/Controllers/LocaleController.php index 5ba4bc37b..73126af01 100755 --- a/packages/Webkul/Core/src/Http/Controllers/LocaleController.php +++ b/packages/Webkul/Core/src/Http/Controllers/LocaleController.php @@ -2,20 +2,19 @@ namespace Webkul\Core\Http\Controllers; -use Illuminate\Support\Facades\Event; use Webkul\Core\Repositories\LocaleRepository; class LocaleController extends Controller { /** - * Contains route related configuration + * Contains route related configuration. * * @var array */ protected $_config; /** - * LocaleRepository object + * Locale repository instance. * * @var \Webkul\Core\Repositories\LocaleRepository */ @@ -67,11 +66,7 @@ class LocaleController extends Controller 'direction' => 'in:ltr,rtl', ]); - Event::dispatch('core.locale.create.before'); - - $locale = $this->localeRepository->create(request()->all()); - - Event::dispatch('core.locale.create.after', $locale); + $this->localeRepository->create(request()->all()); session()->flash('success', trans('admin::app.settings.locales.create-success')); @@ -105,11 +100,7 @@ class LocaleController extends Controller 'direction' => 'in:ltr,rtl', ]); - Event::dispatch('core.locale.update.before', $id); - - $locale = $this->localeRepository->update(request()->all(), $id); - - Event::dispatch('core.locale.update.after', $locale); + $this->localeRepository->update(request()->all(), $id); session()->flash('success', trans('admin::app.settings.locales.update-success')); @@ -124,26 +115,22 @@ class LocaleController extends Controller */ public function destroy($id) { - $locale = $this->localeRepository->findOrFail($id); + $this->localeRepository->findOrFail($id); if ($this->localeRepository->count() == 1) { session()->flash('warning', trans('admin::app.settings.locales.last-delete-error')); } else { try { - Event::dispatch('core.locale.delete.before', $id); - $this->localeRepository->delete($id); - Event::dispatch('core.locale.delete.after', $id); - session()->flash('success', trans('admin::app.settings.locales.delete-success')); return response()->json(['message' => true], 200); - } catch(\Exception $e) { + } catch (\Exception $e) { session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Locale'])); } } return response()->json(['message' => false], 400); } -} \ No newline at end of file +} diff --git a/packages/Webkul/Core/src/Repositories/CurrencyRepository.php b/packages/Webkul/Core/src/Repositories/CurrencyRepository.php index d21f28d0f..c3f042a37 100755 --- a/packages/Webkul/Core/src/Repositories/CurrencyRepository.php +++ b/packages/Webkul/Core/src/Repositories/CurrencyRepository.php @@ -21,7 +21,7 @@ class CurrencyRepository extends Repository } /** - * Save a new entity in repository + * Create. * * @param array $attributes * @return mixed diff --git a/packages/Webkul/Core/src/Repositories/ExchangeRateRepository.php b/packages/Webkul/Core/src/Repositories/ExchangeRateRepository.php index be1c97bdf..4ee1862f4 100755 --- a/packages/Webkul/Core/src/Repositories/ExchangeRateRepository.php +++ b/packages/Webkul/Core/src/Repositories/ExchangeRateRepository.php @@ -2,20 +2,71 @@ namespace Webkul\Core\Repositories; -use Webkul\Core\Eloquent\Repository; +use Illuminate\Support\Facades\Event; use Prettus\Repository\Traits\CacheableRepository; +use Webkul\Core\Eloquent\Repository; class ExchangeRateRepository extends Repository { use CacheableRepository; /** - * Specify Model class name + * Specify model class name. * * @return mixed */ - function model() + public function model() { - return 'Webkul\Core\Contracts\CurrencyExchangeRate'; + return \Webkul\Core\Contracts\CurrencyExchangeRate::class; } -} \ No newline at end of file + + /** + * Create. + * + * @param array $attributes + * @return mixed + */ + public function create(array $attributes) + { + Event::dispatch('core.exchange_rate.create.before'); + + $exchangeRate = parent::create($attributes); + + Event::dispatch('core.exchange_rate.create.after', $exchangeRate); + + return $exchangeRate; + } + + /** + * Update. + * + * @param array $attributes + * @param $id + * @return mixed + */ + public function update(array $attributes, $id) + { + Event::dispatch('core.exchange_rate.update.before', $id); + + $exchangeRate = parent::update($attributes, $id); + + Event::dispatch('core.exchange_rate.update.after', $exchangeRate); + + return $exchangeRate; + } + + /** + * Delete. + * + * @param int $id + * @return bool + */ + public function delete($id) + { + Event::dispatch('core.exchange_rate.delete.before', $id); + + parent::delete($id); + + Event::dispatch('core.exchange_rate.delete.after', $id); + } +} diff --git a/packages/Webkul/Core/src/Repositories/LocaleRepository.php b/packages/Webkul/Core/src/Repositories/LocaleRepository.php index 260b74b17..645ad3f33 100755 --- a/packages/Webkul/Core/src/Repositories/LocaleRepository.php +++ b/packages/Webkul/Core/src/Repositories/LocaleRepository.php @@ -2,20 +2,71 @@ namespace Webkul\Core\Repositories; -use Webkul\Core\Eloquent\Repository; +use Illuminate\Support\Facades\Event; use Prettus\Repository\Traits\CacheableRepository; +use Webkul\Core\Eloquent\Repository; class LocaleRepository extends Repository { use CacheableRepository; /** - * Specify Model class name + * Specify model class name. * * @return mixed */ - function model() + public function model() { - return 'Webkul\Core\Contracts\Locale'; + return \Webkul\Core\Contracts\Locale::class; } -} \ No newline at end of file + + /** + * Create. + * + * @param array $attributes + * @return mixed + */ + public function create(array $attributes) + { + Event::dispatch('core.locale.create.before'); + + $locale = parent::create($attributes); + + Event::dispatch('core.locale.create.after', $locale); + + return $locale; + } + + /** + * Update. + * + * @param array $attributes + * @param $id + * @return mixed + */ + public function update(array $attributes, $id) + { + Event::dispatch('core.locale.update.before', $id); + + $locale = parent::update($attributes, $id); + + Event::dispatch('core.locale.update.after', $locale); + + return $locale; + } + + /** + * Delete. + * + * @param int $id + * @return bool + */ + public function delete($id) + { + Event::dispatch('core.locale.delete.before', $id); + + parent::delete($id); + + Event::dispatch('core.locale.delete.after', $id); + } +} diff --git a/packages/Webkul/Inventory/src/Http/Controllers/InventorySourceController.php b/packages/Webkul/Inventory/src/Http/Controllers/InventorySourceController.php index fa568f1f2..b2af08a87 100755 --- a/packages/Webkul/Inventory/src/Http/Controllers/InventorySourceController.php +++ b/packages/Webkul/Inventory/src/Http/Controllers/InventorySourceController.php @@ -2,7 +2,6 @@ namespace Webkul\Inventory\Http\Controllers; -use Illuminate\Support\Facades\Event; use Webkul\Inventory\Http\Requests\InventorySourceRequest; use Webkul\Inventory\Repositories\InventorySourceRepository; @@ -66,11 +65,7 @@ class InventorySourceController extends Controller $data['status'] = ! isset($data['status']) ? 0 : 1; - Event::dispatch('inventory.inventory_source.create.before'); - - $inventorySource = $this->inventorySourceRepository->create($data); - - Event::dispatch('inventory.inventory_source.create.after', $inventorySource); + $this->inventorySourceRepository->create($data); session()->flash('success', trans('admin::app.settings.inventory_sources.create-success')); @@ -102,11 +97,7 @@ class InventorySourceController extends Controller $data['status'] = ! isset($data['status']) ? 0 : 1; - Event::dispatch('inventory.inventory_source.update.before', $id); - - $inventorySource = $this->inventorySourceRepository->update($data, $id); - - Event::dispatch('inventory.inventory_source.update.after', $inventorySource); + $this->inventorySourceRepository->update($data, $id); session()->flash('success', trans('admin::app.settings.inventory_sources.update-success')); @@ -121,18 +112,14 @@ class InventorySourceController extends Controller */ public function destroy($id) { - $inventorySource = $this->inventorySourceRepository->findOrFail($id); + $this->inventorySourceRepository->findOrFail($id); if ($this->inventorySourceRepository->count() == 1) { session()->flash('error', trans('admin::app.settings.inventory_sources.last-delete-error')); } else { try { - Event::dispatch('inventory.inventory_source.delete.before', $id); - $this->inventorySourceRepository->delete($id); - Event::dispatch('inventory.inventory_source.delete.after', $id); - session()->flash('success', trans('admin::app.settings.inventory_sources.delete-success')); return response()->json(['message' => true], 200); diff --git a/packages/Webkul/Inventory/src/Repositories/InventorySourceRepository.php b/packages/Webkul/Inventory/src/Repositories/InventorySourceRepository.php index 4dfd98ac6..1939c13bc 100755 --- a/packages/Webkul/Inventory/src/Repositories/InventorySourceRepository.php +++ b/packages/Webkul/Inventory/src/Repositories/InventorySourceRepository.php @@ -2,18 +2,69 @@ namespace Webkul\Inventory\Repositories; +use Illuminate\Support\Facades\Event; use Webkul\Core\Eloquent\Repository; class InventorySourceRepository extends Repository { /** - * Specify Model class name + * Specify model class name. * * @return mixed */ - function model() + public function model() { - return 'Webkul\Inventory\Contracts\InventorySource'; + return \Webkul\Inventory\Contracts\InventorySource::class; + } + + /** + * Create. + * + * @param array $attributes + * @return mixed + */ + public function create(array $attributes) + { + Event::dispatch('inventory.inventory_source.create.before'); + + $inventorySource = parent::create($attributes); + + Event::dispatch('inventory.inventory_source.create.after', $inventorySource); + + return $inventorySource; + } + + /** + * Update. + * + * @param array $attributes + * @param $id + * @return mixed + */ + public function update(array $attributes, $id) + { + Event::dispatch('inventory.inventory_source.update.before', $id); + + $inventorySource = parent::update($attributes, $id); + + Event::dispatch('inventory.inventory_source.update.after', $inventorySource); + + return $inventorySource; + } + + /** + * Delete. + * + * @param int $id + * @return bool + */ + public function delete($id) + { + Event::dispatch('inventory.inventory_source.delete.before', $id); + + parent::delete($id); + + Event::dispatch('inventory.inventory_source.delete.after', $id); } /** @@ -35,4 +86,4 @@ class InventorySourceRepository extends Repository return $channelInventorySourceIds = ($found ? $found : collect([])); } -} \ No newline at end of file +} diff --git a/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php b/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php index 4c1f6cf11..c6d0ad0ca 100755 --- a/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php +++ b/packages/Webkul/Tax/src/Http/Controllers/TaxCategoryController.php @@ -2,28 +2,27 @@ namespace Webkul\Tax\Http\Controllers; -use Illuminate\Support\Facades\Event; use Webkul\Tax\Repositories\TaxCategoryRepository; use Webkul\Tax\Repositories\TaxRateRepository; class TaxCategoryController extends Controller { /** - * Contains route related configuration + * Contains route related configuration. * * @var array */ protected $_config; /** - * TaxCategoryRepository + * Tax category repository instance. * * @var \Webkul\Tax\Repositories\TaxCategoryRepository */ protected $taxCategoryRepository; /** - * TaxRateRepository + * Tax rate repository instance. * * @var \Webkul\Tax\Repositories\TaxRateRepository */ @@ -39,8 +38,7 @@ class TaxCategoryController extends Controller public function __construct( TaxCategoryRepository $taxCategoryRepository, TaxRateRepository $taxRateRepository - ) - { + ) { $this->taxCategoryRepository = $taxCategoryRepository; $this->taxRateRepository = $taxRateRepository; @@ -49,7 +47,7 @@ class TaxCategoryController extends Controller } /** - * Function to show the tax category form + * Function to show the tax category form. * * @return \Illuminate\View\View */ @@ -74,22 +72,17 @@ class TaxCategoryController extends Controller 'taxrates' => 'array|required', ]); - Event::dispatch('tax.tax_category.create.before'); - $taxCategory = $this->taxCategoryRepository->create($data); - //attach the categories in the tax map table $this->taxCategoryRepository->attachOrDetach($taxCategory, $data['taxrates']); - Event::dispatch('tax.tax_category.create.after', $taxCategory); - 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 + * To show the edit form for the tax category. * * @param int $id * @return \Illuminate\View\View @@ -102,7 +95,7 @@ class TaxCategoryController extends Controller } /** - * To update the tax category + * To update the tax category. * * @param int $id * @return \Illuminate\Http\Response @@ -118,22 +111,15 @@ class TaxCategoryController extends Controller $data = request()->input(); - Event::dispatch('tax.tax_category.update.before', $id); - $taxCategory = $this->taxCategoryRepository->update($data, $id); - Event::dispatch('tax.tax_category.update.after', $taxCategory); - if (! $taxCategory) { session()->flash('error', trans('admin::app.settings.tax-categories.update-error')); return redirect()->back(); } - $taxRates = $data['taxrates']; - - //attach the categories in the tax map table - $this->taxCategoryRepository->attachOrDetach($taxCategory, $taxRates); + $this->taxCategoryRepository->attachOrDetach($taxCategory, $data['taxrates']); session()->flash('success', trans('admin::app.settings.tax-categories.update-success')); @@ -148,19 +134,15 @@ class TaxCategoryController extends Controller */ public function destroy($id) { - $taxCategory = $this->taxCategoryRepository->findOrFail($id); + $this->taxCategoryRepository->findOrFail($id); try { - Event::dispatch('tax.tax_category.delete.before', $id); - $this->taxCategoryRepository->delete($id); - Event::dispatch('tax.tax_category.delete.after', $id); - session()->flash('success', trans('admin::app.response.delete-success', ['name' => 'Tax Category'])); return response()->json(['message' => true], 200); - } catch(Exception $e) { + } catch (Exception $e) { session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Tax Category'])); } diff --git a/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php b/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php index e790801df..c868e1eed 100755 --- a/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php +++ b/packages/Webkul/Tax/src/Http/Controllers/TaxRateController.php @@ -2,10 +2,9 @@ namespace Webkul\Tax\Http\Controllers; -use Illuminate\Support\Facades\Event; -use Webkul\Admin\Imports\DataGridImport; use Illuminate\Support\Facades\Validator; use Maatwebsite\Excel\Validators\Failure; +use Webkul\Admin\Imports\DataGridImport; use Webkul\Tax\Repositories\TaxRateRepository; class TaxRateController extends Controller @@ -18,7 +17,7 @@ class TaxRateController extends Controller protected $_config; /** - * TaxRateRepository object + * Tax rate repository instance. * * @var \Webkul\Tax\Repositories\TaxRateRepository */ @@ -82,11 +81,7 @@ class TaxRateController extends Controller unset($data['zip_code']); } - Event::dispatch('tax.tax_rate.create.before'); - - $taxRate = $this->taxRateRepository->create($data); - - Event::dispatch('tax.tax_rate.create.after', $taxRate); + $this->taxRateRepository->create($data); session()->flash('success', trans('admin::app.settings.tax-rates.create-success')); @@ -115,7 +110,7 @@ class TaxRateController extends Controller public function update($id) { $this->validate(request(), [ - 'identifier' => 'required|string|unique:tax_rates,identifier,'.$id, + 'identifier' => 'required|string|unique:tax_rates,identifier,' . $id, 'is_zip' => 'sometimes', 'zip_from' => 'nullable|required_with:is_zip', 'zip_to' => 'nullable|required_with:is_zip,zip_from', @@ -123,11 +118,7 @@ class TaxRateController extends Controller 'tax_rate' => 'required|numeric|min:0.0001', ]); - Event::dispatch('tax.tax_rate.update.before', $id); - - $taxRate = $this->taxRateRepository->update(request()->input(), $id); - - Event::dispatch('tax.tax_rate.update.after', $taxRate); + $this->taxRateRepository->update(request()->input(), $id); session()->flash('success', trans('admin::app.settings.tax-rates.update-success')); @@ -142,19 +133,15 @@ class TaxRateController extends Controller */ public function destroy($id) { - $taxRate = $this->taxRateRepository->findOrFail($id); + $this->taxRateRepository->findOrFail($id); try { - Event::dispatch('tax.tax_rate.delete.before', $id); - $this->taxRateRepository->delete($id); - Event::dispatch('tax.tax_rate.delete.after', $id); - session()->flash('success', trans('admin::app.response.delete-success', ['name' => 'Tax Rate'])); return response()->json(['message' => true], 200); - } catch(\Exception $e) { + } catch (\Exception $e) { session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Tax Rate'])); } @@ -162,7 +149,7 @@ class TaxRateController extends Controller } /** - * import function for the upload. + * Import function for the upload. * * @return \Illuminate\Http\Response */ @@ -179,7 +166,7 @@ class TaxRateController extends Controller foreach ($excelData as $data) { foreach ($data as $column => $uploadData) { - if (! is_null($uploadData['zip_from']) && !is_null($uploadData['zip_to'])) { + if (! is_null($uploadData['zip_from']) && ! is_null($uploadData['zip_to'])) { $uploadData['is_zip'] = 1; } @@ -195,10 +182,10 @@ class TaxRateController extends Controller ]); if ($validator->fails()) { - $failedRules[$column+1] = $validator->errors(); + $failedRules[$column + 1] = $validator->errors(); } - $identiFier[$column+1] = $uploadData['identifier']; + $identiFier[$column + 1] = $uploadData['identifier']; } $identiFierCount = array_count_values($identiFier); @@ -213,7 +200,7 @@ class TaxRateController extends Controller $message[] = trans('admin::app.export.duplicate-error', ['identifier' => $identifier, 'position' => $position]); } - $finalMsg = implode(" ", $message); + $finalMsg = implode(' ', $message); session()->flash('error', $finalMsg); } else { @@ -221,7 +208,7 @@ class TaxRateController extends Controller if (isset($failedRules)) { foreach ($failedRules as $coulmn => $fail) { - if ($fail->first('identifier')){ + if ($fail->first('identifier')) { $errorMsg[$coulmn] = $fail->first('identifier'); } elseif ($fail->first('tax_rate')) { $errorMsg[$coulmn] = $fail->first('tax_rate'); @@ -239,11 +226,11 @@ class TaxRateController extends Controller } foreach ($errorMsg as $key => $msg) { - $msg = str_replace(".", "", $msg); - $message[] = $msg. ' at Row ' .$key . '.'; + $msg = str_replace('.', '', $msg); + $message[] = $msg . ' at Row ' . $key . '.'; } - $finalMsg = implode(" ", $message); + $finalMsg = implode(' ', $message); session()->flash('error', $finalMsg); } else { @@ -257,7 +244,7 @@ class TaxRateController extends Controller foreach ($data as $column => $uploadData) { if (! is_null($uploadData['zip_from']) && ! is_null($uploadData['zip_to'])) { $uploadData['is_zip'] = 1; - $uploadData['zip_code'] = NULL; + $uploadData['zip_code'] = null; } if (isset($rateIdentifier)) { @@ -287,4 +274,4 @@ class TaxRateController extends Controller return redirect()->route($this->_config['redirect']); } -} \ No newline at end of file +} diff --git a/packages/Webkul/Tax/src/Repositories/TaxCategoryRepository.php b/packages/Webkul/Tax/src/Repositories/TaxCategoryRepository.php index 89b40ec46..e3ebfb8ec 100755 --- a/packages/Webkul/Tax/src/Repositories/TaxCategoryRepository.php +++ b/packages/Webkul/Tax/src/Repositories/TaxCategoryRepository.php @@ -2,31 +2,84 @@ namespace Webkul\Tax\Repositories; +use Illuminate\Support\Facades\Event; use Webkul\Core\Eloquent\Repository; class TaxCategoryRepository extends Repository { /** - * Specify Model class name + * Specify model class name. * * @return string */ - function model() + public function model() { - return 'Webkul\Tax\Contracts\TaxCategory'; + return \Webkul\Tax\Contracts\TaxCategory::class; } /** + * Create. + * + * @param array $attributes + * @return mixed + */ + public function create(array $attributes) + { + Event::dispatch('tax.tax_category.create.before'); + + $taxCategory = parent::create($attributes); + + Event::dispatch('tax.tax_category.create.after', $taxCategory); + + return $taxCategory; + } + + /** + * Update. + * + * @param array $attributes + * @param $id + * @return mixed + */ + public function update(array $attributes, $id) + { + Event::dispatch('tax.tax_category.update.before', $id); + + $taxCategory = parent::update($attributes, $id); + + Event::dispatch('tax.tax_category.update.after', $taxCategory); + + return $taxCategory; + } + + /** + * Delete. + * + * @param int $id + * @return bool + */ + public function delete($id) + { + Event::dispatch('tax.tax_category.delete.before', $id); + + parent::delete($id); + + Event::dispatch('tax.tax_category.delete.after', $id); + } + + /** + * Attach or detach. + * * @param \Webkul\Tax\Contracts\TaxCategory $taxCategory * @param array $data * @return bool */ public function attachOrDetach($taxCategory, $data) { - $taxRates = $taxCategory->tax_rates; + $taxCategory->tax_rates; $this->model->findOrFail($taxCategory->id)->tax_rates()->sync($data); return true; } -} \ No newline at end of file +} diff --git a/packages/Webkul/Tax/src/Repositories/TaxRateRepository.php b/packages/Webkul/Tax/src/Repositories/TaxRateRepository.php index be71f0f75..a3a5f5084 100755 --- a/packages/Webkul/Tax/src/Repositories/TaxRateRepository.php +++ b/packages/Webkul/Tax/src/Repositories/TaxRateRepository.php @@ -2,17 +2,68 @@ namespace Webkul\Tax\Repositories; +use Illuminate\Support\Facades\Event; use Webkul\Core\Eloquent\Repository; class TaxRateRepository extends Repository { /** - * Specify Model class name + * Specify model class name. * * @return mixed */ - function model() + public function model() { - return 'Webkul\Tax\Contracts\TaxRate'; + return \Webkul\Tax\Contracts\TaxRate::class; } -} \ No newline at end of file + + /** + * Create. + * + * @param array $attributes + * @return mixed + */ + public function create(array $attributes) + { + Event::dispatch('tax.tax_rate.create.before'); + + $taxRate = parent::create($attributes); + + Event::dispatch('tax.tax_rate.create.after', $taxRate); + + return $taxRate; + } + + /** + * Update. + * + * @param array $attributes + * @param $id + * @return mixed + */ + public function update(array $attributes, $id) + { + Event::dispatch('tax.tax_rate.update.before', $id); + + $taxRate = parent::update($attributes, $id); + + Event::dispatch('tax.tax_rate.update.after', $taxRate); + + return $taxRate; + } + + /** + * Delete. + * + * @param int $id + * @return bool + */ + public function delete($id) + { + Event::dispatch('tax.tax_rate.delete.before', $id); + + parent::delete($id); + + Event::dispatch('tax.tax_rate.delete.after', $id); + } +} diff --git a/packages/Webkul/User/src/Http/Controllers/RoleController.php b/packages/Webkul/User/src/Http/Controllers/RoleController.php index d8ef1c6ab..19946a57d 100755 --- a/packages/Webkul/User/src/Http/Controllers/RoleController.php +++ b/packages/Webkul/User/src/Http/Controllers/RoleController.php @@ -2,7 +2,6 @@ namespace Webkul\User\Http\Controllers; -use Illuminate\Support\Facades\Event; use Webkul\User\Repositories\AdminRepository; use Webkul\User\Repositories\RoleRepository; @@ -81,11 +80,7 @@ class RoleController extends Controller 'permission_type' => 'required', ]); - Event::dispatch('user.role.create.before'); - - $role = $this->roleRepository->create(request()->all()); - - Event::dispatch('user.role.create.after', $role); + $this->roleRepository->create(request()->all()); session()->flash('success', trans('admin::app.response.create-success', ['name' => 'Role'])); @@ -123,7 +118,7 @@ class RoleController extends Controller /** * Check for other admins if the role has been changed from all to custom. */ - $isChangedFromAll = $params['permission_type'] == "custom" && $this->roleRepository->find($id)->permission_type == 'all'; + $isChangedFromAll = $params['permission_type'] == 'custom' && $this->roleRepository->find($id)->permission_type == 'all'; if ($isChangedFromAll && $this->adminRepository->countAdminsWithAllAccess() === 1) { session()->flash('error', trans('admin::app.response.being-used', ['name' => 'Role', 'source' => 'Admin User'])); @@ -131,11 +126,7 @@ class RoleController extends Controller return redirect()->route($this->_config['redirect']); } - Event::dispatch('user.role.update.before', $id); - - $role = $this->roleRepository->update($params, $id); - - Event::dispatch('user.role.update.after', $role); + $this->roleRepository->update($params, $id); session()->flash('success', trans('admin::app.response.update-success', ['name' => 'Role'])); @@ -158,12 +149,8 @@ class RoleController extends Controller session()->flash('error', trans('admin::app.response.last-delete-error', ['name' => 'Role'])); } else { try { - Event::dispatch('user.role.delete.before', $id); - $this->roleRepository->delete($id); - Event::dispatch('user.role.delete.after', $id); - session()->flash('success', trans('admin::app.response.delete-success', ['name' => 'Role'])); return response()->json(['message' => true], 200); diff --git a/packages/Webkul/User/src/Http/Controllers/UserController.php b/packages/Webkul/User/src/Http/Controllers/UserController.php index 99d87084b..6e813a2ae 100755 --- a/packages/Webkul/User/src/Http/Controllers/UserController.php +++ b/packages/Webkul/User/src/Http/Controllers/UserController.php @@ -2,8 +2,8 @@ namespace Webkul\User\Http\Controllers; -use Hash; use Illuminate\Support\Facades\Event; +use Illuminate\Support\Facades\Hash; use Illuminate\Support\Str; use Webkul\User\Http\Requests\UserForm; use Webkul\User\Repositories\AdminRepository; @@ -89,11 +89,7 @@ class UserController extends Controller $data['api_token'] = Str::random(80); } - Event::dispatch('user.admin.create.before'); - - $admin = $this->adminRepository->create($data); - - Event::dispatch('user.admin.create.after', $admin); + $this->adminRepository->create($data); session()->flash('success', trans('admin::app.response.create-success', ['name' => 'User'])); @@ -130,15 +126,7 @@ class UserController extends Controller return $data; } - Event::dispatch('user.admin.update.before', $id); - - $admin = $this->adminRepository->update($data, $id); - - if (isset($data['password']) && $data['password']) { - Event::dispatch('user.admin.update-password', $admin); - } - - Event::dispatch('user.admin.update.after', $admin); + $this->adminRepository->update($data, $id); session()->flash('success', trans('admin::app.response.update-success', ['name' => 'User'])); @@ -158,8 +146,6 @@ class UserController extends Controller if ($this->adminRepository->count() == 1) { session()->flash('error', trans('admin::app.response.last-delete-error', ['name' => 'Admin'])); } else { - Event::dispatch('user.admin.delete.before', $id); - if (auth()->guard('admin')->user()->id == $id) { return response()->json([ 'redirect' => route('super.users.confirm', ['id' => $id]), @@ -171,8 +157,6 @@ class UserController extends Controller session()->flash('success', trans('admin::app.response.delete-success', ['name' => 'Admin'])); - Event::dispatch('user.admin.delete.after', $id); - return response()->json(['message' => true], 200); } catch (\Exception $e) { session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Admin'])); diff --git a/packages/Webkul/User/src/Repositories/AdminRepository.php b/packages/Webkul/User/src/Repositories/AdminRepository.php index db0cb3008..48e2af2d3 100755 --- a/packages/Webkul/User/src/Repositories/AdminRepository.php +++ b/packages/Webkul/User/src/Repositories/AdminRepository.php @@ -2,6 +2,7 @@ namespace Webkul\User\Repositories; +use Illuminate\Support\Facades\Event; use Webkul\Core\Eloquent\Repository; class AdminRepository extends Repository @@ -11,11 +12,65 @@ class AdminRepository extends Repository * * @return mixed */ - function model(): string + public function model(): string { return \Webkul\User\Contracts\Admin::class; } + /** + * Create. + * + * @param array $attributes + * @return mixed + */ + public function create(array $attributes) + { + Event::dispatch('user.admin.create.before'); + + $admin = parent::create($attributes); + + Event::dispatch('user.admin.create.after', $admin); + + return $admin; + } + + /** + * Update. + * + * @param array $attributes + * @param $id + * @return mixed + */ + public function update(array $attributes, $id) + { + Event::dispatch('user.admin.update.before', $id); + + $admin = parent::update($attributes, $id); + + if (isset($attributes['password']) && $attributes['password']) { + Event::dispatch('user.admin.update-password', $admin); + } + + Event::dispatch('user.admin.update.after', $admin); + + return $admin; + } + + /** + * Delete. + * + * @param int $id + * @return bool + */ + public function delete($id) + { + Event::dispatch('user.admin.delete.before', $id); + + parent::delete($id); + + Event::dispatch('user.admin.delete.after', $id); + } + /** * Count admins with all access. * diff --git a/packages/Webkul/User/src/Repositories/RoleRepository.php b/packages/Webkul/User/src/Repositories/RoleRepository.php index edffa5eae..e26f2e7c4 100755 --- a/packages/Webkul/User/src/Repositories/RoleRepository.php +++ b/packages/Webkul/User/src/Repositories/RoleRepository.php @@ -2,18 +2,36 @@ namespace Webkul\User\Repositories; +use Illuminate\Support\Facades\Event; use Webkul\Core\Eloquent\Repository; class RoleRepository extends Repository { /** - * Specify Model class name + * Specify model class name. * * @return mixed */ - function model() + public function model() { - return 'Webkul\User\Contracts\Role'; + return \Webkul\User\Contracts\Role::class; + } + + /** + * Create. + * + * @param array $attributes + * @return mixed + */ + public function create(array $attributes) + { + Event::dispatch('user.role.create.before'); + + $role = parent::create($attributes); + + Event::dispatch('user.role.create.after', $role); + + return $role; } /** @@ -21,11 +39,12 @@ class RoleRepository extends Repository * * @param array $data * @param int $id - * - * @return \Webkul\User\Model\Role + * @return \Webkul\User\Contracts\Role */ public function update(array $data, $id) { + Event::dispatch('user.role.update.before', $id); + /* making collection for ease */ $requestedData = collect($data); @@ -37,7 +56,23 @@ class RoleRepository extends Repository $role->permissions = $requestedData->has('permissions') ? $requestedData['permissions'] : []; $role->update(); - /* returning updated role */ + Event::dispatch('user.role.update.after', $role); + return $role; } -} \ No newline at end of file + + /** + * Delete. + * + * @param int $id + * @return bool + */ + public function delete($id) + { + Event::dispatch('user.role.delete.before', $id); + + parent::delete($id); + + Event::dispatch('user.role.delete.after', $id); + } +}