Issues (61)

app/Services/ServerControlService.php (1 issue)

1
<?php
2
3
namespace Gameap\Services;
4
5
use Gameap\Exceptions\Repositories\GdaemonTaskRepository\EmptyServerStartCommandException;
6
use Gameap\Exceptions\Repositories\GdaemonTaskRepository\InvalidServerStartCommandException;
7
use Gameap\Exceptions\Repositories\RecordExistExceptions;
8
use Gameap\Models\Server;
9
use Gameap\Models\ServerSetting;
10
use Gameap\Repositories\GdaemonTaskRepository;
11
12
class ServerControlService
13
{
14
    /**
15
     * The GdaemonTaskRepository instance.
16
     *
17
     * @var GdaemonTaskRepository
18
     */
19
    public $gdaemonTaskRepository;
20
21
    public function __construct(GdaemonTaskRepository $gdaemonTaskRepository)
22
    {
23
        $this->gdaemonTaskRepository = $gdaemonTaskRepository;
24
    }
25
26
    public function start(Server $server): int
27
    {
28
        $autostartSetting = $server->getSetting(Server::AUTOSTART_SETTING_KEY);
29
30
        if ($autostartSetting->value == true) {
0 ignored issues
show
Bug Best Practice introduced by
It seems like you are loosely comparing $autostartSetting->value of type string to the boolean true. If you are specifically checking for a non-empty string, consider using the more explicit !== '' instead.
Loading history...
31
            $autostartCurrentSetting = $server->getSetting(Server::AUTOSTART_CURRENT_SETTING_KEY);
32
            $autostartCurrentSetting->value = true;
33
            $autostartCurrentSetting->save();
34
        }
35
36
        return $this->gdaemonTaskRepository->addServerStart($server);
37
    }
38
39
    public function stop(Server $server): int
40
    {
41
        $autostartCurrentSetting = $server->getSetting(Server::AUTOSTART_CURRENT_SETTING_KEY);
42
        $autostartCurrentSetting->value = false;
43
        $autostartCurrentSetting->save();
44
45
        return $this->gdaemonTaskRepository->addServerStop($server);
46
    }
47
48
    public function restart(Server $server): int
49
    {
50
        $autostartSetting = $server->getSetting(Server::AUTOSTART_SETTING_KEY);
51
52
        if ($autostartSetting->value) {
53
            $autostartCurrentSetting = $server->getSetting(Server::AUTOSTART_CURRENT_SETTING_KEY);
54
            $autostartCurrentSetting->value = true;
55
            $autostartCurrentSetting->save();
56
        }
57
58
        return $this->gdaemonTaskRepository->addServerRestart($server);
59
    }
60
61
    public function update(Server $server): int
62
    {
63
        $gdaemonTaskId = $this->gdaemonTaskRepository->addServerUpdate($server);
64
        return $gdaemonTaskId;
65
    }
66
67
    public function install(Server $server): int
68
    {
69
        $gdaemonTaskId = $this->gdaemonTaskRepository->addServerInstall($server);
70
        return $gdaemonTaskId;
71
    }
72
}
73