NodeRequest.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace App\Http\Requests\Admin;
  3. use Illuminate\Foundation\Http\FormRequest;
  4. class NodeRequest extends FormRequest
  5. {
  6. public function rules(): array
  7. {
  8. return [
  9. 'is_ddns' => 'required|boolean',
  10. 'name' => 'required|string',
  11. 'server' => 'required_if:is_ddns,1|nullable|ends_with:'.implode(',', config('domains')),
  12. 'ip' => 'required_if:is_ddns,0|nullable',
  13. 'ipv6' => 'nullable',
  14. 'push_port' => 'numeric|between:0,65535',
  15. 'traffic_rate' => 'required|numeric|min:0',
  16. 'level' => 'required|numeric|exists:level,level',
  17. 'rule_group_id' => 'nullable|exists:rule_group,id',
  18. 'speed_limit' => 'required|numeric|min:0',
  19. 'client_limit' => 'required|numeric|min:0',
  20. 'labels' => 'nullable|exists:label,id',
  21. 'country_code' => 'required|exists:country,code',
  22. 'description' => 'nullable|string',
  23. 'sort' => 'required|numeric|between:0,255',
  24. 'is_udp' => 'required|boolean',
  25. 'status' => 'required|boolean',
  26. 'type' => 'required|numeric|between:0,4',
  27. 'method' => 'required|exists:ss_config,name',
  28. 'protocol' => 'required_if:type,1,4|exists:ss_config,name',
  29. 'protocol_param' => 'nullable|string',
  30. 'obfs' => 'required_if:type,1,4|exists:ss_config,name',
  31. 'obfs_param' => 'nullable|string',
  32. 'compatible' => 'required|boolean',
  33. 'is_subscribe' => 'required|boolean',
  34. 'detection_type' => 'required|numeric|between:0,3',
  35. 'single' => 'required|boolean',
  36. 'port' => 'required_if:single,1,type,2,type,3|numeric|between:1,65535|nullable',
  37. 'passwd' => 'exclude_unless:type,1,type,4|required_if:single,1|string|nullable',
  38. 'v2_alter_id' => 'required_if:type,2|numeric|between:0,65535',
  39. 'v2_method' => 'required_if:type,2',
  40. 'v2_net' => 'required_if:type,2',
  41. 'v2_type' => 'required_if:type,2',
  42. 'v2_host' => 'string|nullable',
  43. 'v2_path' => 'string|nullable',
  44. 'v2_sni' => 'string|nullable',
  45. 'v2_tls' => 'required_if:type,2|boolean',
  46. 'tls_provider' => 'json|nullable',
  47. 'is_relay' => 'required|boolean',
  48. 'relay_server' => 'required_if:is_relay,1',
  49. 'relay_port' => 'required_if:is_relay,1|numeric|between:1,65535',
  50. 'vless' => 'required_if:type,2|boolean',
  51. 'vless_privateKey' => 'string|nullable',
  52. 'vless_pulkey' => 'string|nullable',
  53. 'shortIds' => 'string|nullable',
  54. ];
  55. }
  56. public function messages()
  57. {
  58. return [
  59. 'server.required_if' => '开启DDNS, 域名不能为空',
  60. ];
  61. }
  62. }