From d8a0948faf3d430b151cbff942bd5ed934af1dc2 Mon Sep 17 00:00:00 2001 From: denisdulici Date: Fri, 21 Feb 2020 11:12:52 +0300 Subject: [PATCH 1/3] removed construct function --- app/Console/Commands/BillReminder.php | 8 -------- app/Console/Commands/FinishUpdate.php | 8 -------- app/Console/Commands/InvoiceReminder.php | 8 -------- app/Console/Commands/RecurringCheck.php | 12 ++---------- app/Console/Commands/SampleData.php | 12 +----------- app/Console/Commands/Update.php | 8 -------- app/Console/Commands/UserSeed.php | 10 ---------- 7 files changed, 3 insertions(+), 63 deletions(-) diff --git a/app/Console/Commands/BillReminder.php b/app/Console/Commands/BillReminder.php index c0d14b9ec..b3a3df581 100644 --- a/app/Console/Commands/BillReminder.php +++ b/app/Console/Commands/BillReminder.php @@ -24,14 +24,6 @@ class BillReminder extends Command * @var string */ protected $description = 'Send reminders for bills'; - - /** - * Create a new command instance. - */ - public function __construct() - { - parent::__construct(); - } /** * Execute the console command. diff --git a/app/Console/Commands/FinishUpdate.php b/app/Console/Commands/FinishUpdate.php index 86d37f444..8d3b32f06 100644 --- a/app/Console/Commands/FinishUpdate.php +++ b/app/Console/Commands/FinishUpdate.php @@ -22,14 +22,6 @@ class FinishUpdate extends Command */ protected $description = 'Finish the update process through CLI'; - /** - * Create a new command instance. - */ - public function __construct() - { - parent::__construct(); - } - /** * Execute the console command. * diff --git a/app/Console/Commands/InvoiceReminder.php b/app/Console/Commands/InvoiceReminder.php index b03216960..7c76f1fe0 100644 --- a/app/Console/Commands/InvoiceReminder.php +++ b/app/Console/Commands/InvoiceReminder.php @@ -24,14 +24,6 @@ class InvoiceReminder extends Command * @var string */ protected $description = 'Send reminders for invoices'; - - /** - * Create a new command instance. - */ - public function __construct() - { - parent::__construct(); - } /** * Execute the console command. diff --git a/app/Console/Commands/RecurringCheck.php b/app/Console/Commands/RecurringCheck.php index bb945e904..68d0d646a 100644 --- a/app/Console/Commands/RecurringCheck.php +++ b/app/Console/Commands/RecurringCheck.php @@ -38,14 +38,6 @@ class RecurringCheck extends Command */ protected $today; - /** - * Create a new command instance. - */ - public function __construct() - { - parent::__construct(); - } - /** * Execute the console command. * @@ -118,7 +110,7 @@ class RecurringCheck extends Command if ($this->today->eq(Date::parse($model->paid_at->format('Y-m-d')))) { break; } - + $model->cloneable_relations = []; // Create new record @@ -162,7 +154,7 @@ class RecurringCheck extends Command $clone->$date_field = $this->today->format('Y-m-d'); $clone->due_at = $this->today->copy()->addDays($diff_days)->format('Y-m-d'); $clone->save(); - + return $clone; } } diff --git a/app/Console/Commands/SampleData.php b/app/Console/Commands/SampleData.php index e5017865a..43cf3d266 100755 --- a/app/Console/Commands/SampleData.php +++ b/app/Console/Commands/SampleData.php @@ -12,7 +12,7 @@ class SampleData extends Command * * @var string */ - protected $signature = 'sample-data:seed {--count=100 : total records for each item}'; + protected $signature = 'sample-data:seed {--count=100 : total records for each item}'; /** * The console command description. @@ -21,16 +21,6 @@ class SampleData extends Command */ protected $description = 'Seed for sample data'; - /** - * Create a new command instance. - * - * @return void - */ - public function __construct() - { - parent::__construct(); - } - /** * Execute the console command. * diff --git a/app/Console/Commands/Update.php b/app/Console/Commands/Update.php index 5747777d9..20cbfb2d2 100644 --- a/app/Console/Commands/Update.php +++ b/app/Console/Commands/Update.php @@ -32,14 +32,6 @@ class Update extends Command */ protected $description = 'Allows to update Akaunting and modules directly through CLI'; - /** - * Create a new command instance. - */ - public function __construct() - { - parent::__construct(); - } - /** * Execute the console command. * diff --git a/app/Console/Commands/UserSeed.php b/app/Console/Commands/UserSeed.php index f3af20276..d7e63618f 100644 --- a/app/Console/Commands/UserSeed.php +++ b/app/Console/Commands/UserSeed.php @@ -20,16 +20,6 @@ class UserSeed extends Command */ protected $description = 'Seed for specific user'; - /** - * Create a new command instance. - * - * @return void - */ - public function __construct() - { - parent::__construct(); - } - /** * Execute the console command. * From 4b0e836e213675fb8d54e3e479aa2deb7ec64cd9 Mon Sep 17 00:00:00 2001 From: denisdulici Date: Fri, 21 Feb 2020 11:45:37 +0300 Subject: [PATCH 2/3] improved version checker --- app/Console/Commands/Update.php | 16 ++++++---------- app/Utilities/Updater.php | 2 +- app/Utilities/Versions.php | 27 +++++++++++++++++++++++++-- 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/app/Console/Commands/Update.php b/app/Console/Commands/Update.php index 20cbfb2d2..dbd02ff15 100644 --- a/app/Console/Commands/Update.php +++ b/app/Console/Commands/Update.php @@ -43,7 +43,11 @@ class Update extends Command $this->alias = $this->argument('alias'); - $this->new = $this->getNewVersion(); + if (false === $this->new = $this->getNewVersion()) { + $this->error('Not able to get the latest version of ' . $this->alias . '!'); + + return self::CMD_ERROR; + } $this->old = $this->getOldVersion(); @@ -71,15 +75,7 @@ class Update extends Command public function getNewVersion() { - $new = $this->argument('new'); - - if ($new == 'latest') { - $modules = ($this->alias == 'core') ? [] : [$this->alias]; - - $new = Versions::latest($modules)[$this->alias]->data->latest; - } - - return $new; + return ($this->argument('new') == 'latest') ? Versions::latest($this->alias) : $this->argument('new'); } public function getOldVersion() diff --git a/app/Utilities/Updater.php b/app/Utilities/Updater.php index 106f94232..973741677 100644 --- a/app/Utilities/Updater.php +++ b/app/Utilities/Updater.php @@ -158,7 +158,7 @@ class Updater $modules = module()->all(); - $versions = Versions::latest($modules); + $versions = Versions::all($modules); foreach ($versions as $alias => $latest_version) { $installed_version = ($alias == 'core') ? version('short') : module($alias)->get('version'); diff --git a/app/Utilities/Versions.php b/app/Utilities/Versions.php index e6c6c3aa6..de798909e 100644 --- a/app/Utilities/Versions.php +++ b/app/Utilities/Versions.php @@ -2,9 +2,11 @@ namespace App\Utilities; +use Akaunting\Module\Module; use App\Traits\SiteApi; use Cache; use Date; +use Illuminate\Support\Arr; use Parsedown; class Versions @@ -52,7 +54,18 @@ class Versions return $output; } - public static function latest($modules = []) + public static function latest($alias) + { + $versions = static::all($alias); + + if (empty($versions[$alias]) || empty($versions[$alias]->data)) { + return false; + } + + return $versions[$alias]->data->latest; + } + + public static function all($modules = null) { // Get data from cache $versions = Cache::get('versions'); @@ -70,8 +83,18 @@ class Versions $versions['core'] = static::getLatestVersion($url, $info['akaunting']); + $modules = Arr::wrap($modules); + // Then modules foreach ($modules as $module) { + if (is_string($module)) { + $module = module($module); + } + + if (!$module instanceof Module) { + continue; + } + $alias = $module->get('alias'); $version = $module->get('version'); @@ -85,7 +108,7 @@ class Versions return $versions; } - public static function getLatestVersion($url, $latest) + protected static function getLatestVersion($url, $latest) { if (!$data = static::getResponseData('GET', $url, ['timeout' => 10])) { return $latest; From 98dd75b9550610a6343935e96bc37557adc74939 Mon Sep 17 00:00:00 2001 From: denisdulici Date: Fri, 21 Feb 2020 11:48:01 +0300 Subject: [PATCH 3/3] added update:all command --- app/Console/Commands/UpdateAll.php | 74 ++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 app/Console/Commands/UpdateAll.php diff --git a/app/Console/Commands/UpdateAll.php b/app/Console/Commands/UpdateAll.php new file mode 100644 index 000000000..c61167ad0 --- /dev/null +++ b/app/Console/Commands/UpdateAll.php @@ -0,0 +1,74 @@ +info('Starting update...'); + + // Update core + if ($this->runUpdate('core') !== true) { + $this->error('Not able to update core!'); + + return; + } + + // Update modules + $modules = module()->all(); + + foreach ($modules as $module) { + $alias = $module->get('alias'); + + if ($this->runUpdate($alias) !== true) { + $this->error('Not able to update ' . $alias . '!'); + } + } + + $this->info('Update finished.'); + } + + protected function runUpdate($alias) + { + $this->info('Updating ' . $alias . '...'); + + $company_id = $this->argument('company'); + + $command = "php artisan update {$alias} {$company_id}"; + + if (true !== $result = Console::run($command, true)) { + $message = !empty($result) ? $result : trans('modules.errors.finish', ['module' => $alias]); + + $this->error($message); + + return false; + } + + return true; + } +}