UserService.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace App\Services;
  3. use Illuminate\Database\Eloquent\Collection;
  4. use App\Repositories\UserRepositoryInterface;
  5. use App\DataTransferObjects\UserDto;
  6. use App\DataTransferObjects\UserLanguageDto;
  7. use App\Models\User;
  8. class UserService
  9. {
  10. public function __construct(
  11. protected UserRepositoryInterface $userRepository,
  12. ) {
  13. }
  14. public function all(): ?Collection
  15. {
  16. return $this->userRepository->all();
  17. }
  18. public function find(int $id): ?User
  19. {
  20. return $this->userRepository->find($id);
  21. }
  22. public function store(UserDto $userDto): User
  23. {
  24. return $this->userRepository->store($userDto);
  25. }
  26. public function update(UserDto $userDto, int $id): ?User
  27. {
  28. return $this->userRepository->update($userDto, $id);
  29. }
  30. public function delete(int $id): bool
  31. {
  32. return $this->userRepository->delete($id);
  33. }
  34. public function findByEmail(string $email): ?User
  35. {
  36. return $this->userRepository->findByEmail($email);
  37. }
  38. public function updateLanguage(UserLanguageDto $language, int $id): ?User
  39. {
  40. return $this->userRepository->updateLanguage($language, $id);
  41. }
  42. }