Passed
Push — develop ( fc9ba3...3655e4 )
by Nikita
04:54
created

EditGameServer::__invoke()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 22
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 17
c 1
b 0
f 0
dl 0
loc 22
rs 9.7
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Gameap\UseCases;
4
5
use Gameap\Models\Server;
6
use Gameap\Repositories\ServerRepository;
7
use Gameap\UseCases\Commands\EditGameServerCommand;
8
9
class EditGameServer
10
{
11
    /**
12
     * @var ServerRepository
13
     */
14
    private $serverRepository;
15
16
    public function __construct(ServerRepository $serverRepository)
17
    {
18
        $this->serverRepository = $serverRepository;
19
    }
20
21
    public function __invoke(EditGameServerCommand $command): Server
22
    {
23
        $server = $this->serverRepository->find($command->id);
24
25
        $server->name = $command->name;
26
        $server->installed = $command->installed ?? $server->installed;
27
        $server->blocked = $command->blocked ?? $server->blocked;
28
        $server->enabled = $command->enabled ?? $server->enabled;
29
        $server->game_id = $command->gameId ?? $server->game_id;
30
        $server->game_mod_id = $command->gameModId;
31
        $server->server_ip = $command->serverIp;
32
        $server->server_port = $command->serverPort;
33
        $server->query_port = $command->queryPort;
34
        $server->rcon_port = $command->rconPort;
35
        $server->start_command = $command->startCommand;
36
        $server->dir = $command->dir;
37
        $server->su_user = $command->suUser;
38
        $server->rcon = $command->rcon ?? $server->rcon;
39
40
        $this->serverRepository->save($server);
41
42
        return $server;
43
    }
44
}
45