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