Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pterodactyl
GitHub Repository: pterodactyl/panel
Path: blob/1.0-develop/app/Http/Requests/Admin/Egg/EggFormRequest.php
10277 views
1
<?php
2
3
namespace Pterodactyl\Http\Requests\Admin\Egg;
4
5
use Pterodactyl\Http\Requests\Admin\AdminFormRequest;
6
7
class EggFormRequest extends AdminFormRequest
8
{
9
public function rules(): array
10
{
11
$rules = [
12
'name' => 'required|string|max:191',
13
'description' => 'nullable|string',
14
'docker_images' => ['required', 'string', 'regex:/^[\w#\.\/\- ]*\|?~?[\w\.\/\-:@ ]*$/im'],
15
'force_outgoing_ip' => 'sometimes|boolean',
16
'file_denylist' => 'array',
17
'features' => 'sometimes|array',
18
'startup' => 'required|string',
19
'config_from' => 'sometimes|bail|nullable|numeric',
20
'config_stop' => 'required_without:config_from|nullable|string|max:191',
21
'config_startup' => 'required_without:config_from|nullable|json',
22
'config_logs' => 'required_without:config_from|nullable|json',
23
'config_files' => 'required_without:config_from|nullable|json',
24
];
25
26
if ($this->method() === 'POST') {
27
$rules['nest_id'] = 'required|numeric|exists:nests,id';
28
}
29
30
return $rules;
31
}
32
33
public function withValidator($validator)
34
{
35
$validator->sometimes('config_from', 'exists:eggs,id', function () {
36
return (int) $this->input('config_from') !== 0;
37
});
38
}
39
40
public function validated($key = null, $default = null): array
41
{
42
$data = parent::validated();
43
44
return array_merge($data, [
45
'force_outgoing_ip' => array_get($data, 'force_outgoing_ip', false),
46
'features' => array_get($data, 'features', []),
47
]);
48
}
49
}
50
51