Completed
Push — master ( b43fec...a70af0 )
by Nicolas
04:26 queued 02:45
created

LaravelModulesV6Migrator::handle()   A

Complexity

Conditions 4
Paths 5

Size

Total Lines 21

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 0
Metric Value
cc 4
nc 5
nop 0
dl 0
loc 21
ccs 0
cts 14
cp 0
crap 20
rs 9.584
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Nwidart\Modules\Commands;
6
7
use Illuminate\Console\Command;
8
use Nwidart\Modules\Contracts\RepositoryInterface;
9
use Nwidart\Modules\Module;
10
11
class LaravelModulesV6Migrator extends Command
12
{
13
    protected $name = 'module:v6:migrate';
14
    protected $description = 'Migrate laravel-modules v5 modules statuses to v6.';
15
16
    public function handle()
17
    {
18
        $moduleStatuses = [];
19
        /** @var RepositoryInterface $modules */
20
        $modules = $this->laravel['modules'];
21
22
        $modules = $modules->all();
23
        /** @var Module $module */
24
        foreach ($modules as $module) {
25
            if ($module->json()->get('active') === 1) {
26
                $module->enable();
27
                $moduleStatuses[] = [$module->getName(), 'Enabled'];
28
            }
29
            if ($module->json()->get('active') === 0) {
30
                $module->disable();
31
                $moduleStatuses[] = [$module->getName(), 'Disabled'];
32
            }
33
        }
34
        $this->info('All modules have been migrated.');
35
        $this->table(['Module name', 'Status'], $moduleStatuses);
36
    }
37
}
38