PermissionService.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace App\Services\Base;
  3. use App\Contracts\Repositories\Base\PermissionRepository;
  4. use App\Repositories\Criteria\Base\PermissionCriteria;
  5. use App\Repositories\Eloquent\Base\PermissionRepositoryEloquent;
  6. use App\Repositories\Presenters\Base\PermissionPresenter;
  7. use Illuminate\Http\Request;
  8. class PermissionService
  9. {
  10. /**
  11. * @var PermissionRepositoryEloquent
  12. */
  13. private $permissionRepository;
  14. /**
  15. * PermissionService constructor.
  16. *
  17. * @param PermissionRepositoryEloquent $permissionRepositoryEloquent
  18. */
  19. public function __construct(PermissionRepositoryEloquent $permissionRepositoryEloquent)
  20. {
  21. $this->permissionRepository = $permissionRepositoryEloquent;
  22. }
  23. /**
  24. * @param Request $request
  25. *
  26. * @return mixed
  27. * @throws \Prettus\Repository\Exceptions\RepositoryException
  28. */
  29. public function handleList(Request $request)
  30. {
  31. $this->permissionRepository->pushCriteria(new PermissionCriteria($request));
  32. $this->permissionRepository->setPresenter(PermissionPresenter::class);
  33. return $this->permissionRepository->searchPermissionsByPage();
  34. }
  35. public function handleListNoPage(Request $request)
  36. {
  37. $this->permissionRepository->pushCriteria(new PermissionCriteria($request));
  38. $this->permissionRepository->setPresenter(PermissionPresenter::class);
  39. return $this->permissionRepository->searchPermissions();
  40. }
  41. /**
  42. * @param $id
  43. *
  44. * @return \Illuminate\Database\Eloquent\Model
  45. */
  46. public function handleProfile($id)
  47. {
  48. $this->permissionRepository->setPresenter(PermissionPresenter::class);
  49. return $this->permissionRepository->searchPermissionBy($id);
  50. }
  51. /**
  52. * @param Request $request
  53. *
  54. * @return mixed
  55. * @throws \Prettus\Validator\Exceptions\ValidatorException
  56. */
  57. public function handleStore(Request $request)
  58. {
  59. $permission = $this->permissionRepository->create($request->all());
  60. return $permission;
  61. }
  62. /**
  63. * @param Request $request
  64. *
  65. * @return mixed
  66. * @throws \Prettus\Validator\Exceptions\ValidatorException
  67. */
  68. public function handleUpdate(Request $request)
  69. {
  70. $permission = $this->permissionRepository->update($request->all(), $request->get('id'));
  71. return $permission;
  72. }
  73. /**
  74. * @param Request $request
  75. *
  76. * @return mixed
  77. * @throws \Prettus\Validator\Exceptions\ValidatorException
  78. */
  79. public function handleDelete($id)
  80. {
  81. return $this->permissionRepository->delete($id);
  82. }
  83. }