| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <?php
- namespace App\Services;
- use Illuminate\Database\Eloquent\Collection;
- use App\Repositories\UserRepositoryInterface;
- use App\DTO\UserDTO;
- use App\Enums\UserTypeEnum;
- use App\Models\User;
- class UserService
- {
- public function __construct(
- protected UserRepositoryInterface $userRepository,
- ) {}
- public function me(): ?User
- {
- return $this->userRepository->me();
- }
- public function all(): ?Collection
- {
- return $this->userRepository->all();
- }
- public function find(int $id): ?User
- {
- return $this->userRepository->find(id: $id);
- }
- public function store(UserDTO $userDTO): User
- {
- return $this->userRepository->store(userDTO: $userDTO);
- }
- public function update(UserDTO $userDTO, int $id): ?User
- {
- return $this->userRepository->update(id: $id, dto: $userDTO, fieldsToUpdate: request()->keys());
- }
- public function delete(int $id): bool
- {
- return $this->userRepository->delete(id: $id);
- }
- public function findByEmail(string $email): ?User
- {
- return $this->userRepository->findByEmail(email: $email);
- }
- public function updateLanguage(UserDTO $dto, int $id): ?User
- {
- return $this->userRepository->update(id: $id, dto: $dto, fieldsToUpdate: ['language']);
- }
- public function getUserTypes(): array
- {
- return UserTypeEnum::toArray();
- }
- }
|