Passed
Push — master ( d2ddcd...7d7316 )
by Reza
04:17
created

DeleteCRUD   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 20
dl 0
loc 37
rs 10
c 0
b 0
f 0
wmc 8

2 Methods

Rating   Name   Duplication   Size   Complexity  
A handle() 0 19 6
A askResult() 0 7 2
1
<?php
2
3
namespace EasyPanel\Commands\Actions;
4
5
use Illuminate\Console\Command;
6
use Illuminate\Support\Facades\File;
7
use Symfony\Component\Console\Exception\CommandNotFoundException;
8
9
class DeleteCRUD extends Command
10
{
11
12
    protected $signature = 'panel:delete {name?} {--force : Force mode}';
13
    protected $description = 'Create all action for CRUDs';
14
15
    public function handle()
16
    {
17
        $names = (array) $this->argument('name') ?: config('easy_panel.actions', []);
18
        if($names == null) {
19
            throw new CommandNotFoundException("There is no action in config file");
20
        }
21
22
        foreach ($names as $name) {
23
            if (!in_array($name, config('easy_panel.actions'))) {
24
                $this->line("$name does not exist in config file");
25
                continue;
26
            }
27
28
            if ($this->askResult($name)) {
29
                File::deleteDirectory(resource_path("/views/livewire/admin/$name"));
30
                File::deleteDirectory(app_path("/Http/Livewire/Admin/" . ucfirst($name)));
31
                $this->info("{$name} files were deleted, make sure you will delete {$name} value from actions in config");
32
            } else {
33
                $this->line("process for {$name} action was canceled.");
34
            }
35
36
        }
37
    }
38
39
    public function askResult($name)
40
    {
41
        if($this->option('force')) {
42
            return true;
43
        }
44
        $result = $this->confirm("Do you really want to delete {$name} files ?", true);
45
        return $result;
46
    }
47
48
}
49