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

LaravelModulesV6Migrator   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 27
ccs 0
cts 14
cp 0
rs 10
c 0
b 0
f 0
wmc 4
lcom 0
cbo 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A handle() 0 21 4
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