Path: blob/1.0-develop/app/Http/Requests/Admin/Egg/EggFormRequest.php
10277 views
<?php12namespace Pterodactyl\Http\Requests\Admin\Egg;34use Pterodactyl\Http\Requests\Admin\AdminFormRequest;56class EggFormRequest extends AdminFormRequest7{8public function rules(): array9{10$rules = [11'name' => 'required|string|max:191',12'description' => 'nullable|string',13'docker_images' => ['required', 'string', 'regex:/^[\w#\.\/\- ]*\|?~?[\w\.\/\-:@ ]*$/im'],14'force_outgoing_ip' => 'sometimes|boolean',15'file_denylist' => 'array',16'features' => 'sometimes|array',17'startup' => 'required|string',18'config_from' => 'sometimes|bail|nullable|numeric',19'config_stop' => 'required_without:config_from|nullable|string|max:191',20'config_startup' => 'required_without:config_from|nullable|json',21'config_logs' => 'required_without:config_from|nullable|json',22'config_files' => 'required_without:config_from|nullable|json',23];2425if ($this->method() === 'POST') {26$rules['nest_id'] = 'required|numeric|exists:nests,id';27}2829return $rules;30}3132public function withValidator($validator)33{34$validator->sometimes('config_from', 'exists:eggs,id', function () {35return (int) $this->input('config_from') !== 0;36});37}3839public function validated($key = null, $default = null): array40{41$data = parent::validated();4243return array_merge($data, [44'force_outgoing_ip' => array_get($data, 'force_outgoing_ip', false),45'features' => array_get($data, 'features', []),46]);47}48}495051