CreateServerRequest   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 40
c 0
b 0
f 0
dl 0
loc 50
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A rules() 0 48 1
1
<?php
2
3
namespace Gameap\Http\Requests\Admin;
4
5
use Gameap\Http\Requests\Request;
6
use Illuminate\Validation\Rule;
7
8
class CreateServerRequest extends Request
9
{
10
    public function rules()
11
    {
12
        $portRules = ['nullable', 'numeric', 'digits_between:1,65535',
13
            Rule::unique('servers', 'server_port')
14
                ->ignore($this->route('server'))
15
                ->where(function ($query) {
16
                    return $query
17
                        ->where('ds_id', $this->ds_id)
18
                        ->where('server_ip', $this->server_ip)
19
                        ->whereNull('deleted_at');
20
                }),
21
            Rule::unique('servers', 'query_port')
22
                ->ignore($this->route('server'))
23
                ->where(function ($query) {
24
                    return $query
25
                        ->where('ds_id', $this->ds_id)
26
                        ->where('server_ip', $this->server_ip)
27
                        ->whereNull('deleted_at');
28
                }),
29
            Rule::unique('servers', 'rcon_port')
30
                ->ignore($this->route('server'))
31
                ->where(function ($query) {
32
                    return $query
33
                        ->where('ds_id', $this->ds_id)
34
                        ->where('server_ip', $this->server_ip)
35
                        ->whereNull('deleted_at');
36
                }),
37
        ];
38
39
        return [
40
            'enabled'     => '',
41
            'blocked'     => '',
42
            'installed'   => '',
43
            'name'        => 'required|max:128',
44
            'game_id'     => 'required',
45
            'ds_id'       => 'required',
46
            'game_mod_id' => 'required|exists:game_mods,id',
47
            'server_ip'   => 'required',
48
49
            'server_port' => array_merge(['required'], $portRules),
50
            'query_port'  => array_merge(['nullable'], $portRules),
51
            'rcon_port'   => array_merge(['nullable'], $portRules),
52
53
            'dir' => ['nullable', 'string', Rule::unique('servers', 'dir')
54
                ->ignore($this->route('server'))
55
                ->where(function ($query) {
56
                    return $query->where('ds_id', $this->ds_id)
57
                        ->whereNull('deleted_at');
58
                }), ],
59
        ];
60
    }
61
}
62