ServerControlService::start()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 6
c 1
b 0
f 0
dl 0
loc 11
ccs 0
cts 3
cp 0
rs 10
cc 2
nc 2
nop 1
crap 6
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