HysteriaController.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. namespace App\Http\Controllers\Admin\Server;
  3. use App\Http\Requests\Admin\ServerVmessSave;
  4. use App\Http\Requests\Admin\ServerVmessUpdate;
  5. use App\Models\ServerHysteria;
  6. use App\Services\ServerService;
  7. use Illuminate\Http\Request;
  8. use App\Http\Controllers\Controller;
  9. use App\Models\ServerVmess;
  10. class HysteriaController extends Controller
  11. {
  12. public function save(Request $request)
  13. {
  14. $params = $request->validate([
  15. 'show' => '',
  16. 'name' => 'required',
  17. 'group_id' => 'required|array',
  18. 'route_id' => 'nullable|array',
  19. 'parent_id' => 'nullable|integer',
  20. 'host' => 'required',
  21. 'port' => 'required',
  22. 'server_port' => 'required',
  23. 'tls' => 'required',
  24. 'tags' => 'nullable|array',
  25. 'rate' => 'required|numeric',
  26. 'up_mbps' => 'required|numeric|min:1',
  27. 'down_mbps' => 'required|numeric|min:1',
  28. 'server_name' => 'nullable',
  29. 'insecure' => 'required|in:0,1'
  30. ]);
  31. if ($request->input('id')) {
  32. $server = ServerHysteria::find($request->input('id'));
  33. if (!$server) {
  34. abort(500, '服务器不存在');
  35. }
  36. try {
  37. $server->update($params);
  38. } catch (\Exception $e) {
  39. abort(500, '保存失败');
  40. }
  41. return response([
  42. 'data' => true
  43. ]);
  44. }
  45. if (!ServerHysteria::create($params)) {
  46. abort(500, '创建失败');
  47. }
  48. return response([
  49. 'data' => true
  50. ]);
  51. }
  52. public function drop(Request $request)
  53. {
  54. if ($request->input('id')) {
  55. $server = ServerHysteria::find($request->input('id'));
  56. if (!$server) {
  57. abort(500, '节点ID不存在');
  58. }
  59. }
  60. return response([
  61. 'data' => $server->delete()
  62. ]);
  63. }
  64. public function update(Request $request)
  65. {
  66. $request->validate([
  67. 'show' => 'in:0,1'
  68. ], [
  69. 'show.in' => '显示状态格式不正确'
  70. ]);
  71. $params = $request->only([
  72. 'show',
  73. ]);
  74. $server = ServerHysteria::find($request->input('id'));
  75. if (!$server) {
  76. abort(500, '该服务器不存在');
  77. }
  78. try {
  79. $server->update($params);
  80. } catch (\Exception $e) {
  81. abort(500, '保存失败');
  82. }
  83. return response([
  84. 'data' => true
  85. ]);
  86. }
  87. public function copy(Request $request)
  88. {
  89. $server = ServerHysteria::find($request->input('id'));
  90. $server->show = 0;
  91. if (!$server) {
  92. abort(500, '服务器不存在');
  93. }
  94. if (!ServerHysteria::create($server->toArray())) {
  95. abort(500, '复制失败');
  96. }
  97. return response([
  98. 'data' => true
  99. ]);
  100. }
  101. }