ServerController.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Server;
  5. use Exception;
  6. use Illuminate\Contracts\Pagination\LengthAwarePaginator;
  7. use Illuminate\Http\JsonResponse;
  8. use Illuminate\Http\Request;
  9. class ServerController extends Controller
  10. {
  11. /**
  12. * Display a listing of the resource.
  13. *
  14. * @param Request $request
  15. * @return LengthAwarePaginator
  16. */
  17. public function index(Request $request)
  18. {
  19. return Server::with('product')->paginate($request->query('per_page') ?? 50);
  20. }
  21. /**
  22. * Display the specified resource.
  23. *
  24. * @param Server $server
  25. * @return Server
  26. */
  27. public function show(Server $server)
  28. {
  29. return $server->load('product');
  30. }
  31. /**
  32. * Remove the specified resource from storage.
  33. *
  34. * @param Server $server
  35. * @return Server
  36. */
  37. public function destroy(Server $server)
  38. {
  39. $server->delete();
  40. return $server;
  41. }
  42. /**
  43. * suspend server
  44. * @param Server $server
  45. * @return Server|JsonResponse
  46. */
  47. public function suspend(Server $server)
  48. {
  49. try {
  50. $server->suspend();
  51. } catch (Exception $exception) {
  52. return response()->json(['message' => $exception->getMessage()], 500);
  53. }
  54. return $server->load('product');
  55. }
  56. /**
  57. * unsuspend server
  58. * @param Server $server
  59. * @return Server|JsonResponse
  60. */
  61. public function unSuspend(Server $server)
  62. {
  63. try {
  64. $server->unSuspend();
  65. } catch (Exception $exception) {
  66. return response()->json(['message' => $exception->getMessage()], 500);
  67. }
  68. return $server->load('product');
  69. }
  70. }