Passed
Push — master ( 5cca9a...5e004b )
by Nikita
10:18 queued 03:43
created

EditGameServer   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 20
c 1
b 0
f 0
dl 0
loc 34
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A __invoke() 0 22 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