Issues (197)

src/Commands/EnableCommand.php (1 issue)

Severity
1
<?php
2
3
namespace Salah3id\Domains\Commands;
4
5
use Illuminate\Console\Command;
6
use Salah3id\Domains\Domain;
7
use Symfony\Component\Console\Input\InputArgument;
8
9
class EnableCommand extends Command
10
{
11
    /**
12
     * The console command name.
13
     *
14
     * @var string
15
     */
16
    protected $name = 'domain:enable';
17
18
    /**
19
     * The console command description.
20
     *
21
     * @var string
22
     */
23
    protected $description = 'Enable the specified domain.';
24
25
    /**
26
     * Execute the console command.
27
     */
28
    public function handle(): int
29
    {
30
31
        $this->components->info('Enabling domain ...');
32
33
        if ($name = $this->argument('domain') ) {
34
            $this->enable($name);
35
36
            return 0;
37
        }
38
39
        $this->enableAll();
40
41
        return 0;
42
    }
43
44
    /**
45
     * enableAll
46
     *
47
     * @return void
48
     */
49
    public function enableAll()
50
    {
51
        /** @var Domains $domains */
52
        $domains = $this->laravel['domains']->all();
53
54
        foreach ($domains as $domain) {
55
            $this->enable($domain);
56
        }
57
    }
58
59
    /**
60
     * enable
61
     *
62
     * @param string $name
63
     * @return void
64
     */
65
    public function enable($name)
66
    {
67
        if ($name instanceof Domain) {
0 ignored issues
show
$name is never a sub-type of Salah3id\Domains\Domain.
Loading history...
68
            $domain = $name;
69
        }else {
70
            $domain = $this->laravel['domains']->findOrFail($name);
71
        }
72
73
        if ($domain->isDisabled()) {
74
            $domain->enable();
75
76
            $this->components->info("Domain [{$domain}] enabled successful.");
77
        }else {
78
            $this->components->warn("Domain [{$domain}] has already enabled.");
79
        }
80
81
    }
82
83
    /**
84
     * Get the console command arguments.
85
     *
86
     * @return array
87
     */
88
    protected function getArguments()
89
    {
90
        return [
91
            ['domain', InputArgument::OPTIONAL, 'Domain name.'],
92
        ];
93
    }
94
}
95