Merge pull request #5578 from devansh-webkul/repo-moved

Some Events Moved To Repository For Consistency Of Project
This commit is contained in:
Devansh 2022-01-11 15:29:24 +05:30 committed by GitHub
commit a4a92d17ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 1074 additions and 587 deletions

View File

@ -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();

View File

@ -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,15 +62,17 @@ class CustomerController extends Controller
CustomerAddressRepository $customerAddressRepository,
CustomerGroupRepository $customerGroupRepository,
ChannelRepository $channelRepository
)
{
) {
$this->_config = request('_config');
$this->middleware('admin');
$this->customerRepository = $customerRepository;
$this->customerAddressRepository = $customerAddressRepository;
$this->customerGroupRepository = $customerGroupRepository;
$this->channelRepository = $channelRepository;
}
@ -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]);

View File

@ -3,20 +3,19 @@
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
*/
@ -73,11 +72,7 @@ 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']));
@ -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,16 +128,12 @@ 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']));
}
}

View File

@ -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]);
}
@ -153,7 +148,6 @@ class CartRuleController extends Controller
* Show the form for editing the specified resource.
*
* @param int $id
*
* @return \Illuminate\Http\Response
*/
public function edit($id)
@ -168,7 +162,6 @@ class CartRuleController extends Controller
*
* @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]);
}
@ -223,20 +211,15 @@ class CartRuleController extends Controller
* Remove the specified resource from storage.
*
* @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
*/

View File

@ -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
*/

View File

@ -3,28 +3,27 @@
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
*/
@ -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();
@ -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,19 +146,15 @@ 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']));
}

View File

@ -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
*/

View File

@ -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
*/
@ -91,16 +90,12 @@ class ChannelController extends Controller
/* 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'));
@ -160,21 +155,17 @@ class ChannelController extends Controller
/* 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']));
}
}

View File

@ -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 {

View File

@ -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,17 +148,13 @@ 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);

View File

@ -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,22 +115,18 @@ 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']));
}
}

View File

@ -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,6 +134,7 @@ class ChannelRepository extends Repository
}
$channel->{$type} = null;
$channel->save();
}
}

View File

@ -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');
}
/**

View File

@ -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
* Create.
*
* @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)) {
Event::dispatch('core.currency.delete.after', $id);
return true;
} else {
}
return false;
}
}
}
}

View File

@ -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;
}
/**
* 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);
}
}

View File

@ -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;
}
/**
* 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);
}
}

View File

@ -2,45 +2,73 @@
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);
return $customer;
$customerGroup = $customer->update($data);
Event::dispatch('customer.customer_group.update.after', $customerGroup);
return $customerGroup;
}
/**
* 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);
}
/**

View File

@ -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();

View File

@ -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);

View File

@ -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);
}
/**

View File

@ -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,19 +119,15 @@ 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']));
}

View File

@ -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']));
}

View File

@ -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,19 +115,15 @@ 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']));
}

View File

@ -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;
}
/**
* 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);
}
}

View File

@ -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;
}
/**
* 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);
}
}

View File

@ -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;
}
/**
* 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);
}
}

View File

@ -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
*/
@ -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;

View File

@ -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,11 +55,11 @@ 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;
}

View File

@ -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']));
}

View File

@ -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)) {

View File

@ -2,28 +2,81 @@
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);

View File

@ -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;
}
/**
* 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);
}
}

View File

@ -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);

View File

@ -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']));

View File

@ -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.
*

View File

@ -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;
}
/**
* 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);
}
}