HysteriaController.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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. 'tags' => 'nullable|array',
  24. 'rate' => 'required|numeric',
  25. 'up_mbps' => 'required|numeric|min:1',
  26. 'down_mbps' => 'required|numeric|min:1',
  27. 'server_name' => 'nullable',
  28. 'insecure' => 'required|in:0,1'
  29. ]);
  30. if ($request->input('id')) {
  31. $server = ServerHysteria::find($request->input('id'));
  32. if (!$server) {
  33. abort(500, '服务器不存在');
  34. }
  35. try {
  36. $server->update($params);
  37. } catch (\Exception $e) {
  38. abort(500, '保存失败');
  39. }
  40. return response([
  41. 'data' => true
  42. ]);
  43. }
  44. if (!ServerHysteria::create($params)) {
  45. abort(500, '创建失败');
  46. }
  47. return response([
  48. 'data' => true
  49. ]);
  50. }
  51. public function drop(Request $request)
  52. {
  53. if ($request->input('id')) {
  54. $server = ServerHysteria::find($request->input('id'));
  55. if (!$server) {
  56. abort(500, '节点ID不存在');
  57. }
  58. }
  59. return response([
  60. 'data' => $server->delete()
  61. ]);
  62. }
  63. public function update(Request $request)
  64. {
  65. $request->validate([
  66. 'show' => 'in:0,1'
  67. ], [
  68. 'show.in' => '显示状态格式不正确'
  69. ]);
  70. $params = $request->only([
  71. 'show',
  72. ]);
  73. $server = ServerHysteria::find($request->input('id'));
  74. if (!$server) {
  75. abort(500, '该服务器不存在');
  76. }
  77. try {
  78. $server->update($params);
  79. } catch (\Exception $e) {
  80. abort(500, '保存失败');
  81. }
  82. return response([
  83. 'data' => true
  84. ]);
  85. }
  86. public function copy(Request $request)
  87. {
  88. $server = ServerHysteria::find($request->input('id'));
  89. $server->show = 0;
  90. if (!$server) {
  91. abort(500, '服务器不存在');
  92. }
  93. if (!ServerHysteria::create($server->toArray())) {
  94. abort(500, '复制失败');
  95. }
  96. return response([
  97. 'data' => true
  98. ]);
  99. }
  100. }