UserService.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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\Services;
  11. use App\Contracts\Repositories\UserRepository;
  12. use App\Repositories\Criteria\UserCriteria;
  13. use App\Repositories\Eloquent\UserRepositoryEloquent;
  14. use App\Repositories\Presenters\UserPresenter;
  15. use Illuminate\Http\Request;
  16. class UserService
  17. {
  18. private $repository;
  19. /**
  20. * UserService constructor.
  21. *
  22. * @param UserRepositoryEloquent $repository
  23. */
  24. public function __construct(UserRepository $repository)
  25. {
  26. $this->repository = $repository;
  27. }
  28. public function handleSearchList(Request $request)
  29. {
  30. $this->repository->pushCriteria(new UserCriteria($request));
  31. $this->repository->setPresenter(UserPresenter::class);
  32. return $this->repository->paginate($request->get('limit'));
  33. }
  34. public function handleSearchSimpleList(Request $request)
  35. {
  36. $this->repository->pushCriteria(new UserCriteria($request));
  37. $this->repository->setPresenter(UserPresenter::class);
  38. return $this->repository->simplePaginate($request->get('limit'));
  39. }
  40. public function handleSearchCursorList(Request $request)
  41. {
  42. $this->repository->pushCriteria(new UserCriteria($request));
  43. $this->repository->setPresenter(UserPresenter::class);
  44. return $this->repository->cursorPaginate($request->get('limit'));
  45. }
  46. public function handleSearchItem($id)
  47. {
  48. $this->repository->setPresenter(UserPresenter::class);
  49. return $this->repository->find($id);
  50. }
  51. public function handleCreateItem(Request $request)
  52. {
  53. return $this->repository->insertUser($request->all());
  54. }
  55. }