HysteriaController.php 2.8 KB

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