From 7fd3917d633df63520e5c5dba8b1d4d26cd95391 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Mon, 6 Sep 2021 14:46:42 +0300 Subject: [PATCH] use jobs in seeds --- app/Jobs/Common/CreateDashboard.php | 26 ++++++++++++++++---------- app/Jobs/Common/CreateWidget.php | 2 -- database/seeds/Accounts.php | 9 ++++++--- database/seeds/Categories.php | 7 +++++-- database/seeds/Currencies.php | 7 +++++-- database/seeds/Modules.php | 2 +- database/seeds/Reports.php | 7 +++++-- 7 files changed, 38 insertions(+), 22 deletions(-) diff --git a/app/Jobs/Common/CreateDashboard.php b/app/Jobs/Common/CreateDashboard.php index 241bd4faf..9408138f0 100644 --- a/app/Jobs/Common/CreateDashboard.php +++ b/app/Jobs/Common/CreateDashboard.php @@ -5,6 +5,7 @@ namespace App\Jobs\Common; use App\Abstracts\Job; use App\Interfaces\Job\HasOwner; use App\Interfaces\Job\ShouldCreate; +use App\Jobs\Common\CreateWidget; use App\Models\Auth\User; use App\Models\Common\Company; use App\Models\Common\Dashboard; @@ -110,16 +111,21 @@ class CreateDashboard extends Job implements HasOwner, ShouldCreate $name = (new $class())->getDefaultName(); } - Widget::firstOrCreate([ - 'company_id' => $this->model->company_id, - 'dashboard_id' => $this->model->id, - 'class' => $class, - ], [ - 'name' => $name, - 'sort' => $sort, - 'settings' => (new $class())->getDefaultSettings(), - 'created_by' => $this->model->created_by, - ]); + $widget = Widget::companyId($this->model->company_id) + ->where('dashboard_id', $this->model->id) + ->where('class', $class) + ->first(); + + if (! $widget) { + $this->dispatch(new CreateWidget([ + 'company_id' => $this->model->company_id, + 'dashboard_id' => $this->model->id, + 'class' => $class, + 'name' => $name, + 'sort' => $sort, + 'settings' => (new $class())->getDefaultSettings(), + ])); + } $sort++; } diff --git a/app/Jobs/Common/CreateWidget.php b/app/Jobs/Common/CreateWidget.php index 8dbb87061..11c7ee563 100644 --- a/app/Jobs/Common/CreateWidget.php +++ b/app/Jobs/Common/CreateWidget.php @@ -11,8 +11,6 @@ class CreateWidget extends Job implements HasOwner, ShouldCreate { public function handle(): Widget { - $this->request['enabled'] = $this->request['enabled'] ?? 1; - \DB::transaction(function () { $this->widget = Widget::create($this->request->all()); }); diff --git a/database/seeds/Accounts.php b/database/seeds/Accounts.php index 18dccfa48..7caa995e1 100644 --- a/database/seeds/Accounts.php +++ b/database/seeds/Accounts.php @@ -3,11 +3,14 @@ namespace Database\Seeds; use App\Abstracts\Model; -use App\Models\Banking\Account; +use App\Jobs\Banking\CreateAccount; +use App\Traits\Jobs; use Illuminate\Database\Seeder; class Accounts extends Seeder { + use Jobs; + /** * Run the database seeds. * @@ -26,14 +29,14 @@ class Accounts extends Seeder { $company_id = $this->command->argument('company'); - $account = Account::create([ + $account = $this->dispatch(new CreateAccount([ 'company_id' => $company_id, 'name' => trans('demo.accounts.cash'), 'number' => '1', 'currency_code' => 'USD', 'bank_name' => trans('demo.accounts.cash'), 'enabled' => '1', - ]); + ])); setting()->set('default.account', $account->id); } diff --git a/database/seeds/Categories.php b/database/seeds/Categories.php index bd55df5f0..2c64e44cc 100644 --- a/database/seeds/Categories.php +++ b/database/seeds/Categories.php @@ -3,11 +3,14 @@ namespace Database\Seeds; use App\Abstracts\Model; -use App\Models\Setting\Category; +use App\Jobs\Setting\CreateCategory; +use App\Traits\Jobs; use Illuminate\Database\Seeder; class Categories extends Seeder { + use Jobs; + /** * Run the database seeds. * @@ -67,7 +70,7 @@ class Categories extends Seeder $income_category_id = $expense_category_id = 0; foreach ($rows as $row) { - $category = Category::create($row); + $category = $this->dispatch(new CreateCategory($row)); switch ($category->type) { case 'income': diff --git a/database/seeds/Currencies.php b/database/seeds/Currencies.php index 4438cc3fa..40012985c 100644 --- a/database/seeds/Currencies.php +++ b/database/seeds/Currencies.php @@ -3,11 +3,14 @@ namespace Database\Seeds; use App\Abstracts\Model; -use App\Models\Setting\Currency; +use App\Jobs\Setting\CreateCurrency; +use App\Traits\Jobs; use Illuminate\Database\Seeder; class Currencies extends Seeder { + use Jobs; + /** * Run the database seeds. * @@ -75,7 +78,7 @@ class Currencies extends Seeder ]; foreach ($rows as $row) { - Currency::create($row); + $this->dispatch(new CreateCurrency($row)); } } } diff --git a/database/seeds/Modules.php b/database/seeds/Modules.php index eb04841a5..918ae09d7 100644 --- a/database/seeds/Modules.php +++ b/database/seeds/Modules.php @@ -3,8 +3,8 @@ namespace Database\Seeds; use App\Abstracts\Model; -use Artisan; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\Artisan; class Modules extends Seeder { diff --git a/database/seeds/Reports.php b/database/seeds/Reports.php index 7e8a28102..73f9ca963 100644 --- a/database/seeds/Reports.php +++ b/database/seeds/Reports.php @@ -3,11 +3,14 @@ namespace Database\Seeds; use App\Abstracts\Model; -use App\Models\Common\Report; +use App\Jobs\Common\CreateReport; +use App\Traits\Jobs; use Illuminate\Database\Seeder; class Reports extends Seeder { + use Jobs; + /** * Run the database seeds. * @@ -65,7 +68,7 @@ class Reports extends Seeder ]; foreach ($rows as $row) { - Report::create($row); + $this->dispatch(new CreateReport($row)); } } }