UsersController.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /*
  3. * This file is part of the Jiannei/lumen-api-starter.
  4. *
  5. * (c) Jiannei <longjian.huang@foxmail.com>
  6. *
  7. * This source file is subject to the MIT license that is bundled
  8. * with this source code in the file LICENSE.
  9. */
  10. namespace App\Http\Controllers;
  11. use App\Http\Resources\UserResource;
  12. use App\Services\UserService;
  13. use Illuminate\Http\Request;
  14. use Jiannei\Response\Laravel\Support\Facades\Response;
  15. class UsersController extends Controller
  16. {
  17. /**
  18. * @var UserService
  19. */
  20. private $userService;
  21. public function __construct(UserService $userService)
  22. {
  23. $this->userService = $userService;
  24. $this->middleware('auth:api', ['except' => ['store', 'show']]);
  25. }
  26. public function index(Request $request)
  27. {
  28. $users = $this->userService->handleSearchList($request);
  29. return Response::success($users);
  30. }
  31. public function simple(Request $request)
  32. {
  33. $users = $this->userService->handleSearchSimpleList($request);
  34. return Response::success($users);
  35. }
  36. public function cursor(Request $request)
  37. {
  38. $this->validate($request, [
  39. 'cursor' => 'sometimes|integer',
  40. 'prev' => 'sometimes|integer',
  41. ]);
  42. $users = $this->userService->handleSearchCursorList($request);
  43. return Response::success($users);
  44. }
  45. public function show($id)
  46. {
  47. $user = $this->userService->handleSearchItem($id);
  48. return Response::success($user);
  49. }
  50. public function store(Request $request)
  51. {
  52. $this->validate($request, [
  53. 'name' => 'required|string|max:100',
  54. 'email' => 'required|email|unique:users,email',
  55. 'password' => 'required|min:8',
  56. ]);
  57. $user = $this->userService->handleCreateItem($request);
  58. return Response::created(new UserResource($user));
  59. }
  60. }