VmessController.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. namespace App\Http\Controllers\V1\Admin\Server;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\Admin\ServerVmessSave;
  5. use App\Http\Requests\Admin\ServerVmessUpdate;
  6. use App\Models\ServerVmess;
  7. use Illuminate\Http\Request;
  8. class VmessController extends Controller
  9. {
  10. public function save(ServerVmessSave $request)
  11. {
  12. $params = $request->validated();
  13. if ($request->input('id')) {
  14. $server = ServerVmess::find($request->input('id'));
  15. if (!$server) {
  16. abort(500, '服务器不存在');
  17. }
  18. try {
  19. $server->update($params);
  20. } catch (\Exception $e) {
  21. abort(500, '保存失败');
  22. }
  23. return response([
  24. 'data' => true
  25. ]);
  26. }
  27. if (!ServerVmess::create($params)) {
  28. abort(500, '创建失败');
  29. }
  30. return response([
  31. 'data' => true
  32. ]);
  33. }
  34. public function drop(Request $request)
  35. {
  36. if ($request->input('id')) {
  37. $server = ServerVmess::find($request->input('id'));
  38. if (!$server) {
  39. abort(500, '节点ID不存在');
  40. }
  41. }
  42. return response([
  43. 'data' => $server->delete()
  44. ]);
  45. }
  46. public function update(ServerVmessUpdate $request)
  47. {
  48. $params = $request->only([
  49. 'show',
  50. ]);
  51. $server = ServerVmess::find($request->input('id'));
  52. if (!$server) {
  53. abort(500, '该服务器不存在');
  54. }
  55. try {
  56. $server->update($params);
  57. } catch (\Exception $e) {
  58. abort(500, '保存失败');
  59. }
  60. return response([
  61. 'data' => true
  62. ]);
  63. }
  64. public function copy(Request $request)
  65. {
  66. $server = ServerVmess::find($request->input('id'));
  67. $server->show = 0;
  68. if (!$server) {
  69. abort(500, '服务器不存在');
  70. }
  71. if (!ServerVmess::create($server->toArray())) {
  72. abort(500, '复制失败');
  73. }
  74. return response([
  75. 'data' => true
  76. ]);
  77. }
  78. }